Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
EDepSim::HitSegment Class Reference

#include <EDepSimHitSegment.hh>

Inheritance diagram for EDepSim::HitSegment:

Public Types

typedef G4THitsCollection< EDepSim::HitSegmentHitSegmentCollection
 

Public Member Functions

 HitSegment (double maxSagitta=1 *CLHEP::mm, double maxLength=5 *CLHEP::mm)
 
 HitSegment (const EDepSim::HitSegment &rhs)
 
virtual ~HitSegment ()
 
void * operator new (size_t)
 
void operator delete (void *)
 
virtual void AddStep (G4Step *theStep)
 Add the effects of a part of a step to this hit. More...
 
virtual bool SameHit (G4Step *theStep)
 
virtual void Draw ()
 
virtual void Print ()
 
virtual void Draw (const char *)
 
virtual void Print (const char *) const
 
std::vector< int > & GetContributors ()
 Provide public access to the contributors for internal G4 classes. More...
 
virtual double GetLength () const
 
int GetContributor (int i) const
 
int GetContributorCount () const
 
int GetPrimaryTrajectoryId (void) const
 
double GetEnergyDeposit (void) const
 Get the total energy deposited in this hit. More...
 
double GetSecondaryDeposit (void) const
 
double GetTrackLength (void) const
 
const G4LorentzVector & GetStart () const
 The position of the starting point. More...
 
const G4LorentzVector & GetStop () const
 The position of the stopping point. More...
 
void ls (std::string="") const
 Print the hit information. More...
 

Protected Member Functions

int FindPrimaryId (G4Track *theTrack)
 
double FindSagitta (G4Step *theStep)
 
double FindSeparation (G4Step *theStep)
 

Private Attributes

double fMaxSagitta
 The sagitta tolerance for the segment. More...
 
double fMaxLength
 The maximum length between the start and stop points of the segment. More...
 
std::vector< int > fContributors
 
int fPrimaryId
 The track id of the primary particle. More...
 
double fEnergyDeposit
 The total energy deposit in this hit. More...
 
double fSecondaryDeposit
 
double fTrackLength
 
G4LorentzVector fStart
 The starting position of the segment. More...
 
G4LorentzVector fStop
 The stopping position of the segment. More...
 
EDepSim::VolumeId fHitVolume
 The G4 physical volume that contains the hit. More...
 
std::vector< G4ThreeVector > fPath
 

Detailed Description

Definition at line 31 of file EDepSimHitSegment.hh.

Member Typedef Documentation

Definition at line 42 of file EDepSimHitSegment.hh.

Constructor & Destructor Documentation

EDepSim::HitSegment::HitSegment ( double  maxSagitta = 1*CLHEP::mm,
double  maxLength = 5*CLHEP::mm 
)

Create a new hit segment with a maximum allowed sagitta and length. The default values are set so that normally, a scintillator element will only have a single hit for a through going track (& delta-rays).

Definition at line 36 of file EDepSimHitSegment.cc.

37  : fMaxSagitta(maxSagitta), fMaxLength(maxLength),
39  fStart(0,0,0,0), fStop(0,0,0,0) {
40  fPath.reserve(500);
41 }
double fEnergyDeposit
The total energy deposit in this hit.
int fPrimaryId
The track id of the primary particle.
G4LorentzVector fStart
The starting position of the segment.
double fMaxSagitta
The sagitta tolerance for the segment.
std::vector< G4ThreeVector > fPath
double fMaxLength
The maximum length between the start and stop points of the segment.
G4LorentzVector fStop
The stopping position of the segment.
EDepSim::HitSegment::HitSegment ( const EDepSim::HitSegment rhs)

Definition at line 43 of file EDepSimHitSegment.cc.

44  : G4VHit(rhs),
50  fStart(rhs.fStart), fStop(rhs.fStop) {}
double fEnergyDeposit
The total energy deposit in this hit.
int fPrimaryId
The track id of the primary particle.
std::vector< int > fContributors
G4LorentzVector fStart
The starting position of the segment.
double fMaxSagitta
The sagitta tolerance for the segment.
double fMaxLength
The maximum length between the start and stop points of the segment.
G4LorentzVector fStop
The stopping position of the segment.
EDepSim::HitSegment::~HitSegment ( )
virtual

Definition at line 53 of file EDepSimHitSegment.cc.

53 { }

Member Function Documentation

void EDepSim::HitSegment::AddStep ( G4Step *  theStep)
virtual

Add the effects of a part of a step to this hit.

First make sure the step has been initialized.

Definition at line 104 of file EDepSimHitSegment.cc.

104  {
105  G4TouchableHandle touchable
106  = theStep->GetPreStepPoint()->GetTouchableHandle();
107  G4ThreeVector prePos = theStep->GetPreStepPoint()->GetPosition();
108  G4ThreeVector postPos = theStep->GetPostStepPoint()->GetPosition();
109  G4StepStatus stepStatus = theStep->GetPostStepPoint()->GetStepStatus();
110  G4ParticleDefinition* particle = theStep->GetTrack()->GetDefinition();
111  double energyDeposit = theStep->GetTotalEnergyDeposit();
112  double stepLength = (prePos-postPos).mag();
113  double trackLength = theStep->GetStepLength();
114  double nonIonizingDeposit = theStep->GetNonIonizingEnergyDeposit();
115 
116  if (trackLength < 0.75*stepLength || trackLength < stepLength - 1*mm) {
117  EDepSimWarn("Track length shorter than step: "
118  << trackLength/mm << " mm "
119  << "<" << stepLength/mm << " mm");
120  EDepSimWarn(" Volume: "
121  << theStep->GetTrack()->GetVolume()->GetName());
122  EDepSimWarn(" Particle: " << particle->GetParticleName()
123  << " Depositing " << energyDeposit/MeV << " MeV");
124  EDepSimWarn(" Total Energy: "
125  << theStep->GetTrack()->GetTotalEnergy());
126  }
127 
128  trackLength = std::max(trackLength,stepLength);
129 
130  EDepSimTrace("Add Step with " << energyDeposit
131  << " in " << theStep->GetTrack()->GetVolume()->GetName());
132 
133  if (energyDeposit <= 0.) {
134  EDepSimWarn("EDepSim::HitSegment:: No energy deposited: " << energyDeposit);
135  }
136 
137  if (trackLength <= 0.) {
138  EDepSimWarn("EDepSim::HitSegment:: No track length: " << trackLength);
139  }
140 
141  // Occasionally, a neutral particle will produce a particle below
142  // threshold, and it will be recorded as generating the hit. All of the
143  // energy should be deposited at the stopping point of the track.
144  if (stepStatus == fPostStepDoItProc
145  && std::abs(particle->GetPDGCharge()) < 0.1) {
146  double origStep = stepLength;
147  G4ThreeVector dir = (postPos - prePos).unit();
148  stepLength = trackLength = std::min(0.5*mm,0.8*origStep);
149  prePos = postPos - stepLength*mm*dir;
150  EDepSimDebug("EDepSim::HitSegment:: " << particle->GetParticleName()
151  << " Deposited " << energyDeposit/MeV << " MeV");
152  EDepSimDebug(" Original step: " << origStep/mm << " mm");
153  EDepSimDebug(" New step: " << stepLength/mm << " mm");
154  }
155 
156  if (stepLength>fMaxLength || trackLength>fMaxLength) {
157  G4Track* trk = theStep->GetTrack();
158  EDepSimWarn("EDepSim::HitSegment:: Long step in "
159  << trk->GetVolume()->GetName());
160  EDepSimWarn(" Step Length is "
161  << stepLength/mm
162  << " mm and track length is "
163  << trackLength/mm << " mm");
164 
165  EDepSimWarn(" PID: " << particle->GetParticleName()
166  << " E: " << trk->GetTotalEnergy()/MeV << " MeV"
167  << " (kin: " << trk->GetKineticEnergy()/MeV << " MeV"
168  << " Deposit: "
169  << energyDeposit/MeV << "MeV"
170  << " Status: " << theStep->GetPreStepPoint()->GetStepStatus()
171  << " -> " << theStep->GetPostStepPoint()->GetStepStatus());
172 
173  const G4VProcess* proc = theStep->GetPostStepPoint()
174  ->GetProcessDefinedStep();
175  if (!proc) {
176  EDepSimWarn(" Step Limit Reached");
177  }
178  else {
179  EDepSimWarn(" Process: " << proc->GetProcessName()
180  <<"/"<< proc->GetProcessTypeName(proc->GetProcessType()));
181  }
182  }
183 
184  /// First make sure the step has been initialized.
185  if (!fHitVolume) {
186  fHitVolume = touchable;
187  fPrimaryId = FindPrimaryId(theStep->GetTrack());
188  fStart.set(prePos.x(),prePos.y(),prePos.z(),
189  theStep->GetPreStepPoint()->GetGlobalTime());
190  fPath.push_back(fStart.vect());
191  fStop.set(postPos.x(),postPos.y(),postPos.z(),
192  theStep->GetPostStepPoint()->GetGlobalTime());
193  fPath.push_back(fStop.vect());
194  fContributors.push_back(theStep->GetTrack()->GetTrackID());
195  }
196  else {
197  // Record the tracks that contribute to this hit.
198  int trackId = theStep->GetTrack()->GetTrackID();
199  if (trackId != fContributors.front()) fContributors.push_back(trackId);
200 
201  // Check to see if we have a new stopping point.
202  if (trackId == fContributors.front()
203  && (fPath.back()-prePos).mag()<0.1*mm) {
204  fStop.set(postPos.x(),postPos.y(),postPos.z(),
205  theStep->GetPostStepPoint()->GetGlobalTime());
206  fPath.push_back(G4ThreeVector(fStop.x(),fStop.y(),fStop.z()));
207  }
208  }
209 
210  fEnergyDeposit += energyDeposit;
211  fSecondaryDeposit += nonIonizingDeposit;
212  fTrackLength += trackLength;
213 
214  EDepSimDebug("EDepSim::HitSegment:: Deposit " << particle->GetParticleName()
215  << " adds " << energyDeposit/MeV << " MeV"
216  << " to " << fContributors.front()
217  << " w/ " << fEnergyDeposit
218  << " L " << trackLength
219  << " " << fTrackLength);
220 }
double fEnergyDeposit
The total energy deposit in this hit.
int fPrimaryId
The track id of the primary particle.
static constexpr double MeV
Definition: Units.h:129
string dir
std::vector< int > fContributors
T abs(T value)
G4LorentzVector fStart
The starting position of the segment.
std::vector< G4ThreeVector > fPath
double fMaxLength
The maximum length between the start and stop points of the segment.
#define EDepSimTrace(outStream)
Definition: EDepSimLog.hh:653
#define EDepSimDebug(outStream)
Definition: EDepSimLog.hh:614
static int max(int a, int b)
int FindPrimaryId(G4Track *theTrack)
G4LorentzVector fStop
The stopping position of the segment.
T min(sqlite3 *const db, std::string const &table_name, std::string const &column_name)
Definition: statistics.h:55
#define EDepSimWarn(outStream)
Definition: EDepSimLog.hh:576
static constexpr double mm
Definition: Units.h:65
EDepSim::VolumeId fHitVolume
The G4 physical volume that contains the hit.
void EDepSim::HitSegment::Draw ( void  )
virtual

Disambiguate the draw and print methods to distinguish between the G4VHit and TObject definitions.

Definition at line 284 of file EDepSimHitSegment.cc.

284  {
285  G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
286  if(pVVisManager) {
287  G4Polyline line;
288  line.push_back(G4Point3D(fStart.x(), fStart.y(), fStart.z()));
289  line.push_back(G4Point3D(fStop.x(), fStop.y(), fStop.z()));
290  G4Color color(1.,0.,1.);
291  G4VisAttributes attribs(color);
292  line.SetVisAttributes(attribs);
293  pVVisManager->Draw(line);
294  }
295 }
G4LorentzVector fStart
The starting position of the segment.
std::size_t color(std::string const &procname)
G4LorentzVector fStop
The stopping position of the segment.
void line(double t, double *p, double &x, double &y, double &z)
virtual void EDepSim::HitSegment::Draw ( const char *  )
inlinevirtual

Definition at line 58 of file EDepSimHitSegment.hh.

58 {}
int EDepSim::HitSegment::FindPrimaryId ( G4Track *  theTrack)
protected

Find the primary track ID for the current track. This is the primary that is the ultimate parent of the current track.

Definition at line 100 of file EDepSimHitSegment.cc.

100  {
101  return EDepSim::TrajectoryMap::FindPrimaryId(theTrack->GetTrackID());
102 }
static int FindPrimaryId(int trackId)
double EDepSim::HitSegment::FindSagitta ( G4Step *  theStep)
protected

Find the maximum separation (the sagitta) between the current hit segment path points, and the straight line connecting the start and proposed new stop point.

Definition at line 222 of file EDepSimHitSegment.cc.

222  {
223  const G4ThreeVector& point = fPath.back();
224  const G4ThreeVector& preStep = theStep->GetPreStepPoint()->GetPosition();
225 
226  // Make sure that the step began at the end of the current segment. If
227  // not, return a ridiculously large sagitta.
228  if ((point-preStep).mag()>0.01*mm) return 10*m;
229 
230  const G4ThreeVector& postStep = theStep->GetPostStepPoint()->GetPosition();
231  // The proposed new segment direction;
232  G4ThreeVector newDir = (postStep-point).unit();
233 
234  // Initialize the maximum sagitta found.
235  double maxSagitta = 0.0;
236 
237  G4ThreeVector& front = fPath.front();
238 
239  // Loop over the existing path points and see if any would fall outside of
240  // the tolerance.
242  p != fPath.end();
243  ++p) {
244  G4ThreeVector delta = ((*p)-front);
245  double dist = (delta*newDir);
246  maxSagitta = std::max(maxSagitta,(delta - dist*newDir).mag());
247  if (maxSagitta > fMaxSagitta) break;
248  }
249 
250  return maxSagitta;
251 }
intermediate_table::iterator iterator
double fMaxSagitta
The sagitta tolerance for the segment.
std::vector< G4ThreeVector > fPath
p
Definition: test.py:223
static int max(int a, int b)
constexpr double dist(const TReal *x, const TReal *y, const unsigned int dimension)
static constexpr double mm
Definition: Units.h:65
double EDepSim::HitSegment::FindSeparation ( G4Step *  theStep)
protected

Find the maximum distance from the hit segment to the new step that is proposed to be added to the hit segment. This is used to combine secondaries with a parent track.

Definition at line 253 of file EDepSimHitSegment.cc.

253  {
254  G4ThreeVector& front = fPath.front();
255  const G4ThreeVector& back = fPath.back();
256  const G4ThreeVector& preStep = theStep->GetPreStepPoint()->GetPosition();
257  const G4ThreeVector& postStep = theStep->GetPostStepPoint()->GetPosition();
258  G4ThreeVector dir = (back-front).unit();
259 
260  // Check to make sure the beginning of the new step isn't after the
261  // end of this segment.
262  if ((preStep-back)*dir>0.0) return 1000*m;
263 
264  // Check to make sure the beginning of the new step isn't before the
265  // beginning of this segment.
266  G4ThreeVector frontDelta = preStep-front;
267  double cosDelta = frontDelta*dir;
268  if (cosDelta<0.0) return 1000*m;
269 
270  // Find the distance from the segment center line to the initial point of
271  // the new step.
272  double s1 = (frontDelta - cosDelta*dir).mag();
273 
274 
275  // Find the distance from the segment center line to the final point of
276  // the new step.
277  G4ThreeVector rearDelta = postStep-front;
278  cosDelta = rearDelta*dir;
279  double s2 = (rearDelta - cosDelta*dir).mag();
280 
281  return std::max(s1,s2);
282 }
string dir
std::vector< G4ThreeVector > fPath
static int max(int a, int b)
int EDepSim::HitSegment::GetContributor ( int  i) const
inline

Return a list of track identifiers that contributed to this hit. These track ids can be used as indicies to find trajectories in the TG4TrajectoryContainer object associated with an MC event.

Definition at line 71 of file EDepSimHitSegment.hh.

71  {
72  return fContributors[i];
73  }
std::vector< int > fContributors
int EDepSim::HitSegment::GetContributorCount ( ) const
inline

Return a list of track identifiers that contributed to this hit. These track ids can be used as indicies to find trajectories in the TG4TrajectoryContainer object associated with an MC event.

Definition at line 78 of file EDepSimHitSegment.hh.

78  {
79  return fContributors.size();
80  }
std::vector< int > fContributors
std::vector<int>& EDepSim::HitSegment::GetContributors ( )
inline

Provide public access to the contributors for internal G4 classes.

Definition at line 62 of file EDepSimHitSegment.hh.

62 {return fContributors;}
std::vector< int > fContributors
double EDepSim::HitSegment::GetEnergyDeposit ( void  ) const
inline

Get the total energy deposited in this hit.

Definition at line 95 of file EDepSimHitSegment.hh.

95 {return fEnergyDeposit;}
double fEnergyDeposit
The total energy deposit in this hit.
double EDepSim::HitSegment::GetLength ( void  ) const
virtual

Find the distance from the starting point to stoping point of the track.

Definition at line 303 of file EDepSimHitSegment.cc.

303  {
304  return (fStop.vect()- fStart.vect()).mag();
305 }
G4LorentzVector fStart
The starting position of the segment.
G4LorentzVector fStop
The stopping position of the segment.
int EDepSim::HitSegment::GetPrimaryTrajectoryId ( void  ) const
inline

Get the TrackId of the "primary" particle that is associated with this hit. This is slightly complicated since the "interesting" primary particle is saved. For instance, if the primary particle is a pizero, The TrackId of the gamma-rays from the decay is saved. Likewise, the electron from a muon decay is used as the primary particle. You can find the "really truly" primary particle by finding the trajectory associated with this PrimaryId, and then working backwards to the associated G4PrimaryParticle (You can tell that a trajectory comes from a primary particle by checking if it's ParentID is zero. If it is zero, the trajectory came from a primary).

Definition at line 92 of file EDepSimHitSegment.hh.

92 {return fPrimaryId;}
int fPrimaryId
The track id of the primary particle.
double EDepSim::HitSegment::GetSecondaryDeposit ( void  ) const
inline

Get the secondary energy deposited in this hit (see the field documentation).

Definition at line 99 of file EDepSimHitSegment.hh.

const G4LorentzVector& EDepSim::HitSegment::GetStart ( ) const
inline

The position of the starting point.

Definition at line 107 of file EDepSimHitSegment.hh.

107 {return fStart;}
G4LorentzVector fStart
The starting position of the segment.
const G4LorentzVector& EDepSim::HitSegment::GetStop ( ) const
inline

The position of the stopping point.

Definition at line 110 of file EDepSimHitSegment.hh.

110 {return fStop;}
G4LorentzVector fStop
The stopping position of the segment.
double EDepSim::HitSegment::GetTrackLength ( void  ) const
inline

Get the total charged track length in this hit. This includes all of the contributions from secondary particles that got lumped into this hit (e.g. the contributions from delta-rays).

Definition at line 104 of file EDepSimHitSegment.hh.

104 {return fTrackLength;}
void EDepSim::HitSegment::ls ( std::string  = "") const

Print the hit information.

void EDepSim::HitSegment::operator delete ( void *  aHit)
inline

Definition at line 242 of file EDepSimHitSegment.hh.

242  {
243  edepHitSegmentAllocator.FreeSingle((EDepSim::HitSegment*) aHit);
244 }
G4Allocator< EDepSim::HitSegment > edepHitSegmentAllocator
void * EDepSim::HitSegment::operator new ( size_t  )
inline

Definition at line 236 of file EDepSimHitSegment.hh.

236  {
237  void *aHit;
238  aHit = (void *) edepHitSegmentAllocator.MallocSingle();
239  return aHit;
240 }
G4Allocator< EDepSim::HitSegment > edepHitSegmentAllocator
void EDepSim::HitSegment::Print ( void  )
virtual

Definition at line 297 of file EDepSimHitSegment.cc.

297  {
298  std::cout << "Hit Energy Deposit: "
299  << G4BestUnit(fEnergyDeposit,"Energy")
300  << std::endl;
301 }
double fEnergyDeposit
The total energy deposit in this hit.
QTextStream & endl(QTextStream &s)
virtual void EDepSim::HitSegment::Print ( const char *  ) const
inlinevirtual

Definition at line 59 of file EDepSimHitSegment.hh.

59 {}
bool EDepSim::HitSegment::SameHit ( G4Step *  theStep)
virtual

Hits for the same primary particle, in the same physical volume belong in the same hit.

Definition at line 55 of file EDepSimHitSegment.cc.

55  {
56  // Check that the hit and new step are in the same volume
57  G4TouchableHandle touchable
58  = theStep->GetPreStepPoint()->GetTouchableHandle();
59  if (fHitVolume != touchable) {
60  return false;
61  }
62 
63  int trackId = theStep->GetTrack()->GetTrackID();
64 
65  // Check that the hit and new step are close together.
66  double endToEnd
67  = (theStep->GetPostStepPoint()->GetPosition() - fPath.front()).mag();
68  if (endToEnd > fMaxLength) {
69  return false;
70  }
71 
72  const double epsilon = 0.01;
73  double deltaT = std::abs(theStep->GetPostStepPoint()->GetGlobalTime()
74  - fStop.t());
75  if (deltaT>epsilon) {
76  return false;
77  }
78 
79  if (fContributors.front() == trackId) {
80  // This is still the same track that initially created this hit.
81  // Check to see if the hit should be extended, or if we should start a
82  // new segment.
83  double sagitta = FindSagitta(theStep);
84  if (sagitta > fMaxSagitta) {
85  return false;
86  }
87  }
88  else {
89  // This is not the same track that started this hit, but check to see
90  // if it is a delta-ray that should be added to this segment.
91  double separation = FindSeparation(theStep);
92  if (separation > fMaxSagitta) {
93  return false;
94  }
95  }
96 
97  return true;
98 }
std::vector< int > fContributors
T abs(T value)
double fMaxSagitta
The sagitta tolerance for the segment.
std::vector< G4ThreeVector > fPath
double fMaxLength
The maximum length between the start and stop points of the segment.
double FindSeparation(G4Step *theStep)
G4LorentzVector fStop
The stopping position of the segment.
EDepSim::VolumeId fHitVolume
The G4 physical volume that contains the hit.
double FindSagitta(G4Step *theStep)

Member Data Documentation

std::vector<int> EDepSim::HitSegment::fContributors
private

The TrackID for each trajectory that contributed to this hit. This could contain the TrackID of the primary particle, but not necessarily.

Definition at line 191 of file EDepSimHitSegment.hh.

double EDepSim::HitSegment::fEnergyDeposit
private

The total energy deposit in this hit.

Definition at line 197 of file EDepSimHitSegment.hh.

EDepSim::VolumeId EDepSim::HitSegment::fHitVolume
private

The G4 physical volume that contains the hit.

Definition at line 225 of file EDepSimHitSegment.hh.

double EDepSim::HitSegment::fMaxLength
private

The maximum length between the start and stop points of the segment.

Definition at line 186 of file EDepSimHitSegment.hh.

double EDepSim::HitSegment::fMaxSagitta
private

The sagitta tolerance for the segment.

Definition at line 183 of file EDepSimHitSegment.hh.

std::vector<G4ThreeVector> EDepSim::HitSegment::fPath
private

The end points of the steps that make up this hit. This is used to make sure that the current hit stays inside of it's allowed tolerances.

Definition at line 230 of file EDepSimHitSegment.hh.

int EDepSim::HitSegment::fPrimaryId
private

The track id of the primary particle.

Definition at line 194 of file EDepSimHitSegment.hh.

double EDepSim::HitSegment::fSecondaryDeposit
private

The "secondary" energy deposit in this hit. This is used to help simulate the recombination of electrons, and is part of the total energy deposit.

DETSIM is expected to use this field to save the amount of energy deposited as opticalphotons. The remaining energy will be deposited as ionization. In this model (in argon), the mean number of quanta created will be <N_q> = (fEnergyDeposit)/(19.5*eV), N_q should be fluctuated around <N_q>, N_ph = N_q*fSecondaryDeposit/fEnergyDeposit, and N_e = N_q - N_ph. Thd fSecondaryDeposit value already includes the binomial fluctuation, so don't fluctuate N_ph or N_e.

Definition at line 210 of file EDepSimHitSegment.hh.

G4LorentzVector EDepSim::HitSegment::fStart
private

The starting position of the segment.

Definition at line 218 of file EDepSimHitSegment.hh.

G4LorentzVector EDepSim::HitSegment::fStop
private

The stopping position of the segment.

Definition at line 221 of file EDepSimHitSegment.hh.

double EDepSim::HitSegment::fTrackLength
private

The total charged track length in this hit. This includes the contribution from all of the secondary particles (e.g. delta-rays) that are included in this hit.

Definition at line 215 of file EDepSimHitSegment.hh.


The documentation for this class was generated from the following files: