CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes
FP420SD Class Reference

#include <FP420SD.h>

Inheritance diagram for FP420SD:
SensitiveTkDetector Observer< const BeginOfRun * > Observer< const BeginOfEvent * > Observer< const EndOfEvent * > SensitiveDetector

Public Member Functions

virtual void clear ()
 
virtual void DrawAll ()
 
virtual void EndOfEvent (G4HCofThisEvent *eventHC)
 
void fillHits (edm::PSimHitContainer &, std::string use)
 
 FP420SD (std::string, const DDCompactView &, SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
 
virtual double getEnergyDeposit (G4Step *step)
 
std::vector< std::string > getNames ()
 
virtual void Initialize (G4HCofThisEvent *HCE)
 
virtual void PrintAll ()
 
virtual bool ProcessHits (G4Step *, G4TouchableHistory *)
 
virtual uint32_t setDetUnitId (G4Step *)
 
virtual ~FP420SD ()
 
- Public Member Functions inherited from SensitiveTkDetector
 SensitiveTkDetector (std::string &iname, const DDCompactView &cpv, SensitiveDetectorCatalog &clg, edm::ParameterSet const &p)
 
- Public Member Functions inherited from SensitiveDetector
virtual void AssignSD (std::string &vname)
 
Local3DPoint ConvertToLocal3DPoint (G4ThreeVector point)
 
Local3DPoint FinalStepPosition (G4Step *s, coordinates)
 
Local3DPoint InitialStepPosition (G4Step *s, coordinates)
 
std::string nameOfSD ()
 
void NaNTrap (G4Step *step)
 
void Register ()
 
 SensitiveDetector (std::string &iname, const DDCompactView &cpv, SensitiveDetectorCatalog &, edm::ParameterSet const &p)
 
virtual ~SensitiveDetector ()
 
- Public Member Functions inherited from Observer< const BeginOfRun * >
 Observer ()
 
void slotForUpdate (const BeginOfRun *iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const BeginOfEvent * >
 Observer ()
 
void slotForUpdate (const BeginOfEvent *iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const EndOfEvent * >
 Observer ()
 
void slotForUpdate (const EndOfEvent *iT)
 
virtual ~Observer ()
 

Protected Attributes

float edepositEM
 
float edepositHAD
 
G4int emPDG
 
G4int epPDG
 
G4int gammaPDG
 

Private Member Functions

virtual void clearHits ()
 
void CreateNewHit ()
 
void GetStepInfo (G4Step *aStep)
 
G4bool HitExists ()
 
void ResetForNewPrimary ()
 
G4ThreeVector SetToLocal (G4ThreeVector global)
 
G4ThreeVector SetToLocalExit (G4ThreeVector globalPoint)
 
void StoreHit (FP420G4Hit *)
 
void Summarize ()
 
void update (const BeginOfRun *)
 This routine will be called when the appropriate signal arrives. More...
 
void update (const BeginOfEvent *)
 This routine will be called when the appropriate signal arrives. More...
 
void update (const ::EndOfEvent *)
 
void UpdateHit ()
 

Private Attributes

FP420G4HitcurrentHit
 
G4VPhysicalVolume * currentPV
 
float edeposit
 
float Eloss
 
G4ThreeVector entrancePoint
 
int eventno
 
G4ThreeVector exitPoint
 
G4int hcID
 
G4ThreeVector hitPoint
 
G4ThreeVector hitPointExit
 
G4ThreeVector hitPointLocal
 
G4ThreeVector hitPointLocalExit
 
float incidentEnergy
 
std::string name
 
FP420NumberingSchemenumberingScheme
 
float Pabs
 
int ParentId
 
short ParticleType
 
float PhiAtEntry
 
G4StepPoint * postStepPoint
 
G4StepPoint * preStepPoint
 
uint32_t previousUnitID
 
unsigned int primaryID
 
unsigned int primID
 
TrackingSlaveSDslave
 
G4ThreeVector theEntryPoint
 
G4ThreeVector theExitPoint
 
FP420G4HitCollectiontheHC
 
const SimTrackManagertheManager
 
float ThetaAtEntry
 
G4Track * theTrack
 
float Tof
 
G4int tsID
 
G4double tSlice
 
G4int tSliceID
 
uint32_t unitID
 
float Vx
 
float Vy
 
float Vz
 
float X
 
float Y
 
float Z
 

Additional Inherited Members

- Public Types inherited from SensitiveDetector
enum  coordinates { WorldCoordinates, LocalCoordinates }
 
- Protected Member Functions inherited from Observer< const EndOfEvent * >
virtual void update (const EndOfEvent *)=0
 This routine will be called when the appropriate signal arrives. More...
 

Detailed Description

Definition at line 55 of file FP420SD.h.

Constructor & Destructor Documentation

FP420SD::FP420SD ( std::string  name,
const DDCompactView cpv,
SensitiveDetectorCatalog clg,
edm::ParameterSet const &  p,
const SimTrackManager manager 
)

Definition at line 55 of file FP420SD.cc.

References SensitiveDetector::AssignSD(), gather_cfg::cout, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), LogDebug, SensitiveDetectorCatalog::logicalNames(), numberingScheme, SensitiveDetector::Register(), and slave.

57  :
59  hcID(-1), theHC(0), theManager(manager), currentHit(0), theTrack(0),
61  postStepPoint(0), eventno(0){
62 //-------------------------------------------------------------------
63 /*
64 FP420SD::FP420SD(G4String name, const DDCompactView & cpv,
65  edm::ParameterSet const & p, const SimTrackManager* manager) :
66  CaloSD(name, cpv, p, manager), numberingScheme(0), name(name),hcID(-1),
67  theHC(0), currentHit(0), theTrack(0), currentPV(0),
68  unitID(0), previousUnitID(0), preStepPoint(0), postStepPoint(0), eventno(0){
69 */
70 //-------------------------------------------------------------------
71 
72 
73 
74  //Add FP420 Sentitive Detector Name
75  collectionName.insert(name);
76 
77 
78  //Parameters
79  edm::ParameterSet m_p = p.getParameter<edm::ParameterSet>("FP420SD");
80  int verbn = m_p.getUntrackedParameter<int>("Verbosity");
81  //int verbn = 1;
82 
83  SetVerboseLevel(verbn);
84  LogDebug("FP420Sim")
85  << "*******************************************************\n"
86  << "* *\n"
87  << "* Constructing a FP420SD with name " << name << "\n"
88  << "* *\n"
89  << "*******************************************************";
90 
91 
92  slave = new TrackingSlaveSD(name);
93 
94  //
95  // attach detectors (LogicalVolumes)
96  //
97  std::vector<std::string> lvNames = clg.logicalNames(name);
98 
99  this->Register();
100 
101  for (std::vector<std::string>::iterator it=lvNames.begin();
102  it !=lvNames.end(); it++) {
103  this->AssignSD(*it);
104  edm::LogInfo("FP420Sim") << "FP420SD : Assigns SD to LV " << (*it);
105  }
106 
107  if (name == "FP420SI") {
108  if (verbn > 0) {
109  edm::LogInfo("FP420Sim") << "name = FP420SI and new FP420NumberingSchem";
110  std::cout << "name = FP420SI and new FP420NumberingSchem"<< std::endl;
111  }
113  } else {
114  edm::LogWarning("FP420Sim") << "FP420SD: ReadoutName not supported\n";
115  std::cout << "FP420SD: ReadoutName not supported"<< std::endl;
116  }
117 
118  edm::LogInfo("FP420Sim") << "FP420SD: Instantiation completed";
119  std::cout << "FP420SD: Instantiation completed"<< std::endl;
120  }
#define LogDebug(id)
int eventno
Definition: FP420SD.h:178
T getUntrackedParameter(std::string const &, T const &) const
std::vector< std::string > logicalNames(std::string &readoutName)
TrackingSlaveSD * slave
Definition: FP420SD.h:122
G4StepPoint * preStepPoint
Definition: FP420SD.h:153
G4int hcID
Definition: FP420SD.h:138
SensitiveTkDetector(std::string &iname, const DDCompactView &cpv, SensitiveDetectorCatalog &clg, edm::ParameterSet const &p)
std::string name
Definition: FP420SD.h:137
FP420G4HitCollection * theHC
Definition: FP420SD.h:139
G4Track * theTrack
Definition: FP420SD.h:144
uint32_t previousUnitID
Definition: FP420SD.h:147
G4VPhysicalVolume * currentPV
Definition: FP420SD.h:145
uint32_t unitID
Definition: FP420SD.h:147
virtual void AssignSD(std::string &vname)
FP420NumberingScheme * numberingScheme
Definition: FP420SD.h:123
tuple cout
Definition: gather_cfg.py:41
const SimTrackManager * theManager
Definition: FP420SD.h:140
G4StepPoint * postStepPoint
Definition: FP420SD.h:154
FP420G4Hit * currentHit
Definition: FP420SD.h:143
FP420SD::~FP420SD ( )
virtual

Definition at line 125 of file FP420SD.cc.

References numberingScheme, and slave.

125  {
126  //AZ:
127  if (slave) delete slave;
128 
129  if (numberingScheme)
130  delete numberingScheme;
131 
132 }
TrackingSlaveSD * slave
Definition: FP420SD.h:122
FP420NumberingScheme * numberingScheme
Definition: FP420SD.h:123

Member Function Documentation

void FP420SD::clear ( void  )
virtual
void FP420SD::clearHits ( )
privatevirtual

Implements SensitiveDetector.

Definition at line 531 of file FP420SD.cc.

References TrackingSlaveSD::Initialize(), and slave.

Referenced by update().

531  {
532  //AZ:
533  slave->Initialize();
534 }
TrackingSlaveSD * slave
Definition: FP420SD.h:122
virtual void Initialize()
void FP420SD::CreateNewHit ( )
private

Definition at line 297 of file FP420SD.cc.

References currentHit, currentPV, Eloss, hitPoint, hitPointLocal, hitPointLocalExit, incidentEnergy, LogDebug, NULL, Pabs, ParentId, ParticleType, PhiAtEntry, previousUnitID, primaryID, primID, FP420G4Hit::setEnergyLoss(), FP420G4Hit::setEntry(), FP420G4Hit::setEntryLocalP(), FP420G4Hit::setExitLocalP(), FP420G4Hit::setIncidentEnergy(), FP420G4Hit::setPabs(), FP420G4Hit::setParentId(), FP420G4Hit::setParticleType(), FP420G4Hit::setPhiAtEntry(), FP420G4Hit::setThetaAtEntry(), FP420G4Hit::setTimeSlice(), FP420G4Hit::setTof(), FP420G4Hit::setTrackID(), FP420G4Hit::setUnitID(), FP420G4Hit::setVx(), FP420G4Hit::setVy(), FP420G4Hit::setVz(), FP420G4Hit::setX(), FP420G4Hit::setY(), FP420G4Hit::setZ(), StoreHit(), ThetaAtEntry, theTrack, Tof, tsID, tSlice, tSliceID, unitID, Vx, Vy, Vz, X, Y, and Z.

Referenced by ProcessHits().

297  {
298 
299 #ifdef debug
300  // << " MVid = " << currentPV->GetMother()->GetCopyNo()
301  LogDebug("FP420Sim") << "FP420SD CreateNewHit for"
302  << " PV " << currentPV->GetName()
303  << " PVid = " << currentPV->GetCopyNo()
304  << " Unit " << unitID <<std::endl;
305  LogDebug("FP420Sim") << " primary " << primaryID
306  << " time slice " << tSliceID
307  << " For Track " << theTrack->GetTrackID()
308  << " which is a " << theTrack->GetDefinition()->GetParticleName();
309 
310  if (theTrack->GetTrackID()==1) {
311  LogDebug("FP420Sim") << " of energy " << theTrack->GetTotalEnergy();
312  } else {
313  LogDebug("FP420Sim") << " daughter of part. " << theTrack->GetParentID();
314  }
315 
316  LogDebug("FP420Sim") << " and created by " ;
317  if (theTrack->GetCreatorProcess()!=NULL)
318  LogDebug("FP420Sim") << theTrack->GetCreatorProcess()->GetProcessName() ;
319  else
320  LogDebug("FP420Sim") << "NO process";
321  LogDebug("FP420Sim") << std::endl;
322 #endif
323 
324 
325  currentHit = new FP420G4Hit;
330 
337 
338 // currentHit->setEntry(entrancePoint);
340 
343 
345  currentHit->setVx(Vx);
346  currentHit->setVy(Vy);
347  currentHit->setVz(Vz);
348 
349  currentHit->setX(X);
350  currentHit->setY(Y);
351  currentHit->setZ(Z);
352  //AZ:12.10.2007
353  // UpdateHit();
354  // buffer for next steps:
355  tsID = tSliceID;
356  primID = primaryID;
358 
360 }
#define LogDebug(id)
void setY(float t)
Definition: FP420G4Hit.cc:169
void setEntry(G4ThreeVector xyz)
Definition: FP420G4Hit.cc:116
void setPhiAtEntry(float f)
Definition: FP420G4Hit.cc:163
float ThetaAtEntry
Definition: FP420SD.h:167
void setVz(float p)
Definition: FP420G4Hit.cc:184
void setZ(float t)
Definition: FP420G4Hit.cc:172
float Pabs
Definition: FP420SD.h:162
void setPabs(float e)
Definition: FP420G4Hit.cc:153
#define NULL
Definition: scimark2.h:8
void setVx(float p)
Definition: FP420G4Hit.cc:178
void setTrackID(int i)
Definition: FP420G4Hit.cc:134
G4int tsID
Definition: FP420SD.h:142
unsigned int primaryID
Definition: FP420SD.h:149
float Eloss
Definition: FP420SD.h:164
unsigned int primID
Definition: FP420SD.h:149
void setEnergyLoss(float e)
Definition: FP420G4Hit.cc:156
void setTof(float e)
Definition: FP420G4Hit.cc:154
float Vz
Definition: FP420SD.h:171
G4Track * theTrack
Definition: FP420SD.h:144
G4int tSliceID
Definition: FP420SD.h:148
void setTimeSlice(double d)
Definition: FP420G4Hit.cc:140
void setIncidentEnergy(double e)
Definition: FP420G4Hit.cc:131
uint32_t previousUnitID
Definition: FP420SD.h:147
G4VPhysicalVolume * currentPV
Definition: FP420SD.h:145
void setX(float t)
Definition: FP420G4Hit.cc:166
float Tof
Definition: FP420SD.h:163
uint32_t unitID
Definition: FP420SD.h:147
float PhiAtEntry
Definition: FP420SD.h:168
short ParticleType
Definition: FP420SD.h:165
void setExitLocalP(G4ThreeVector xyz1)
Definition: FP420G4Hit.cc:122
void setParticleType(short i)
Definition: FP420G4Hit.cc:157
void setThetaAtEntry(float t)
Definition: FP420G4Hit.cc:162
G4ThreeVector hitPointLocalExit
Definition: FP420SD.h:161
G4double tSlice
Definition: FP420SD.h:151
float incidentEnergy
Definition: FP420SD.h:134
void setUnitID(unsigned int i)
Definition: FP420G4Hit.cc:137
int ParentId
Definition: FP420SD.h:170
float Z
Definition: FP420SD.h:172
float Vy
Definition: FP420SD.h:171
void setParentId(int p)
Definition: FP420G4Hit.cc:175
float X
Definition: FP420SD.h:172
FP420G4Hit * currentHit
Definition: FP420SD.h:143
G4ThreeVector hitPointLocal
Definition: FP420SD.h:160
G4ThreeVector hitPoint
Definition: FP420SD.h:157
float Y
Definition: FP420SD.h:172
void StoreHit(FP420G4Hit *)
Definition: FP420SD.cc:285
void setVy(float p)
Definition: FP420G4Hit.cc:181
void setEntryLocalP(G4ThreeVector xyz1)
Definition: FP420G4Hit.cc:119
float Vx
Definition: FP420SD.h:171
void FP420SD::DrawAll ( )
virtual

Definition at line 486 of file FP420SD.cc.

486  {
487 }
void FP420SD::EndOfEvent ( G4HCofThisEvent *  eventHC)
virtual

Reimplemented from SensitiveDetector.

Definition at line 403 of file FP420SD.cc.

References FP420G4Hit::getEnergyLoss(), FP420G4Hit::getEntry(), FP420G4Hit::getEntryLocalP(), FP420G4Hit::getExitLocalP(), FP420G4Hit::getPabs(), FP420G4Hit::getParticleType(), FP420G4Hit::getPhiAtEntry(), FP420G4Hit::getThetaAtEntry(), FP420G4Hit::getTof(), FP420G4Hit::getTrackID(), FP420G4Hit::getUnitID(), j, LogDebug, TrackingSlaveSD::processHits(), slave, Summarize(), and theHC.

403  {
404 
405  // here we loop over transient hits and make them persistent
406 
407  // if(theHC->entries() > 100){
408  // LogDebug("FP420Sim") << "FP420SD: warning!!! Number of hits exceed 100 and =" << theHC->entries() << "\n";
409  // }
410  // for (int j=0; j<theHC->entries() && j<100; j++) {
411  int nhits=0;
412  for (int j=0; j<theHC->entries(); j++) {
413  FP420G4Hit* aHit = (*theHC)[j];
414  if(fabs(aHit->getTof()) < 1700.) {
415  ++nhits;
416  if(nhits<200.){
417 #ifdef ddebug
418  // LogDebug("FP420SD") << " FP420Hit " << j << " " << *aHit << std::endl;
419  LogDebug("FP420Sim") << "hit number" << j << "unit ID = "<<aHit->getUnitID()<< "\n";
420  LogDebug("FP420Sim") << "entry z " << aHit->getEntry().z()<< "\n";
421  LogDebug("FP420Sim") << "entr theta " << aHit->getThetaAtEntry()<< "\n";
422 #endif
423 
424  // Local3DPoint locExitPoint(0,0,0);
425  // Local3DPoint locEntryPoint(aHit->getEntry().x(),
426  // aHit->getEntry().y(),
427  // aHit->getEntry().z());
428  Local3DPoint locExitPoint(aHit->getExitLocalP().x(),
429  aHit->getExitLocalP().y(),
430  aHit->getExitLocalP().z());
431  Local3DPoint locEntryPoint(aHit->getEntryLocalP().x(),
432  aHit->getEntryLocalP().y(),
433  aHit->getEntryLocalP().z());
434  // implicit conversion (slicing) to PSimHit!!!
435  slave->processHits(PSimHit(locEntryPoint,locExitPoint,//entryPoint(), exitPoint() Local3DPoint
436  aHit->getPabs(),// pabs() float
437  aHit->getTof(), // tof() float
438  aHit->getEnergyLoss(), // energyLoss() float
439  aHit->getParticleType(),// particleType() int
440  aHit->getUnitID(), // detUnitId() unsigned int
441  aHit->getTrackID(),// trackId() unsigned int
442  aHit->getThetaAtEntry(),// thetaAtEntry() float
443  aHit->getPhiAtEntry())); // phiAtEntry() float
444 
445  //PSimHit( const Local3DPoint& entry, const Local3DPoint& exit,
446  // float pabs, float tof, float eloss, int particleType,
447  // unsigned int detId, unsigned int trackId,
448  // float theta, float phi, unsigned short processType=0) :
449 
450  // LocalVector direction = hit.exitPoint() - hit.entryPoint();
451  //hit.energyLoss
452 
453 
454  /*
455  aHit->getEM(), -
456  aHit->getHadr(), -
457  aHit->getIncidentEnergy(), -
458  aHit->getTimeSlice(), -
459  aHit->getEntry(), -
460  aHit->getParentId(),
461  aHit->getEntryLocalP(), -
462  aHit->getExitLocalP(), -
463  aHit->getX(), -
464  aHit->getY(), -
465  aHit->getZ(), -
466  aHit->getVx(), -
467  aHit->getVy(), -
468  aHit->getVz())); -
469  */
470  }//if nhits<100
471  }//if Tof<1600.
472  } // for loop on hits
473 
474  Summarize();
475 }
#define LogDebug(id)
float getTof() const
Definition: FP420G4Hit.cc:149
G4ThreeVector getExitLocalP() const
Definition: FP420G4Hit.cc:121
TrackingSlaveSD * slave
Definition: FP420SD.h:122
float getPabs() const
Definition: FP420G4Hit.cc:148
unsigned int getTrackID() const
Definition: FP420G4Hit.cc:133
float getPhiAtEntry() const
Definition: FP420G4Hit.cc:160
unsigned int getUnitID() const
Definition: FP420G4Hit.cc:136
FP420G4HitCollection * theHC
Definition: FP420SD.h:139
void Summarize()
Definition: FP420SD.cc:478
int j
Definition: DBlmapReader.cc:9
G4ThreeVector getEntryLocalP() const
Definition: FP420G4Hit.cc:118
float getEnergyLoss() const
Definition: FP420G4Hit.cc:150
int getParticleType() const
Definition: FP420G4Hit.cc:151
virtual bool processHits(const PSimHit &)
G4ThreeVector getEntry() const
Definition: FP420G4Hit.cc:115
float getThetaAtEntry() const
Definition: FP420G4Hit.cc:159
void FP420SD::fillHits ( edm::PSimHitContainer c,
std::string  use 
)
virtual

Implements SensitiveTkDetector.

Definition at line 504 of file FP420SD.cc.

References gather_cfg::cout, TrackingSlaveSD::hits(), n, TrackingSlaveSD::name(), name, and slave.

504  {
505  if (slave->name() == n) {
506  c=slave->hits();
507  std::cout << "FP420SD: fillHits to PSimHitContainer for name= " << name << std::endl;
508  }
509 }
std::string name() const
TrackingSlaveSD * slave
Definition: FP420SD.h:122
std::vector< PSimHit > & hits()
std::string name
Definition: FP420SD.h:137
tuple cout
Definition: gather_cfg.py:41
double FP420SD::getEnergyDeposit ( G4Step *  step)
virtual

Definition at line 134 of file FP420SD.cc.

Referenced by GetStepInfo().

134  {
135  return aStep->GetTotalEnergyDeposit();
136 }
std::vector< std::string > FP420SD::getNames ( )
virtual

Reimplemented from SensitiveDetector.

Definition at line 536 of file FP420SD.cc.

References TrackingSlaveSD::name(), slave, and cond::rpcobtemp::temp.

536  {
537  std::vector<std::string> temp;
538  temp.push_back(slave->name());
539  return temp;
540 }
std::string name() const
TrackingSlaveSD * slave
Definition: FP420SD.h:122
void FP420SD::GetStepInfo ( G4Step *  aStep)
private

Definition at line 177 of file FP420SD.cc.

References currentPV, edeposit, edepositEM, edepositHAD, Eloss, emPDG, epPDG, gammaPDG, getEnergyDeposit(), hitPoint, hitPointExit, hitPointLocal, hitPointLocalExit, LogDebug, Pabs, ParentId, ParticleType, PhiAtEntry, postStepPoint, preStepPoint, primaryID, setDetUnitId(), ThetaAtEntry, theTrack, Tof, tSlice, tSliceID, unitID, Vx, Vy, Vz, X, Y, and Z.

Referenced by ProcessHits().

177  {
178 
179  preStepPoint = aStep->GetPreStepPoint();
180  postStepPoint= aStep->GetPostStepPoint();
181  theTrack = aStep->GetTrack();
182  hitPoint = preStepPoint->GetPosition();
183  currentPV = preStepPoint->GetPhysicalVolume();
184  hitPointExit = postStepPoint->GetPosition();
185 
186  hitPointLocal = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPoint);
187  hitPointLocalExit = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPointExit);
188 
189 
190  G4int particleCode = theTrack->GetDefinition()->GetPDGEncoding();
191  if (particleCode == emPDG ||
192  particleCode == epPDG ||
193  particleCode == gammaPDG ) {
194  edepositEM = getEnergyDeposit(aStep); edepositHAD = 0.;
195  } else {
196  edepositEM = 0.; edepositHAD = getEnergyDeposit(aStep);
197  }
198  edeposit = aStep->GetTotalEnergyDeposit();
199  tSlice = (postStepPoint->GetGlobalTime() )/nanosecond;
200  tSliceID = (int) tSlice;
201  unitID = setDetUnitId(aStep);
202 #ifdef debug
203  LogDebug("FP420Sim") << "unitID=" << unitID <<std::endl;
204 #endif
205  primaryID = theTrack->GetTrackID();
206  // Position = hitPoint;
207  Pabs = aStep->GetPreStepPoint()->GetMomentum().mag()/GeV;
208  //Tof = 1400. + aStep->GetPostStepPoint()->GetGlobalTime()/nanosecond;
209  Tof = aStep->GetPostStepPoint()->GetGlobalTime()/nanosecond;
210  Eloss = aStep->GetTotalEnergyDeposit()/GeV;
211  ParticleType = theTrack->GetDefinition()->GetPDGEncoding();
212  ThetaAtEntry = aStep->GetPreStepPoint()->GetPosition().theta()/deg;
213  PhiAtEntry = aStep->GetPreStepPoint()->GetPosition().phi()/deg;
214 
215  ParentId = theTrack->GetParentID();
216  Vx = theTrack->GetVertexPosition().x();
217  Vy = theTrack->GetVertexPosition().y();
218  Vz = theTrack->GetVertexPosition().z();
219  X = hitPoint.x();
220  Y = hitPoint.y();
221  Z = hitPoint.z();
222 }
#define LogDebug(id)
G4int emPDG
Definition: FP420SD.h:183
float ThetaAtEntry
Definition: FP420SD.h:167
virtual double getEnergyDeposit(G4Step *step)
Definition: FP420SD.cc:134
G4ThreeVector hitPointExit
Definition: FP420SD.h:159
float Pabs
Definition: FP420SD.h:162
G4StepPoint * preStepPoint
Definition: FP420SD.h:153
unsigned int primaryID
Definition: FP420SD.h:149
float Eloss
Definition: FP420SD.h:164
virtual uint32_t setDetUnitId(G4Step *)
Definition: FP420SD.cc:224
float edeposit
Definition: FP420SD.h:155
float edepositHAD
Definition: FP420SD.h:182
float Vz
Definition: FP420SD.h:171
G4int gammaPDG
Definition: FP420SD.h:185
G4Track * theTrack
Definition: FP420SD.h:144
G4int tSliceID
Definition: FP420SD.h:148
G4VPhysicalVolume * currentPV
Definition: FP420SD.h:145
float Tof
Definition: FP420SD.h:163
uint32_t unitID
Definition: FP420SD.h:147
float PhiAtEntry
Definition: FP420SD.h:168
float edepositEM
Definition: FP420SD.h:182
short ParticleType
Definition: FP420SD.h:165
G4ThreeVector hitPointLocalExit
Definition: FP420SD.h:161
G4double tSlice
Definition: FP420SD.h:151
int ParentId
Definition: FP420SD.h:170
float Z
Definition: FP420SD.h:172
float Vy
Definition: FP420SD.h:171
G4int epPDG
Definition: FP420SD.h:184
G4StepPoint * postStepPoint
Definition: FP420SD.h:154
float X
Definition: FP420SD.h:172
G4ThreeVector hitPointLocal
Definition: FP420SD.h:160
G4ThreeVector hitPoint
Definition: FP420SD.h:157
float Y
Definition: FP420SD.h:172
float Vx
Definition: FP420SD.h:171
G4bool FP420SD::HitExists ( )
private

Definition at line 230 of file FP420SD.cc.

References currentHit, newFWLiteAna::found, FP420G4Hit::getTimeSliceID(), FP420G4Hit::getTrackID(), FP420G4Hit::getUnitID(), j, previousUnitID, primaryID, primID, ResetForNewPrimary(), theHC, tsID, tSliceID, unitID, and UpdateHit().

Referenced by ProcessHits().

230  {
231  if (primaryID<1) {
232  edm::LogWarning("FP420Sim") << "***** FP420SD error: primaryID = "
233  << primaryID
234  << " maybe detector name changed";
235  }
236 
237  // Update if in the same detector, time-slice and for same track
238  // if (primaryID == primID && tSliceID == tsID && unitID==previousUnitID) {
239  if (tSliceID == tsID && unitID==previousUnitID) {
240  //AZ:
241  UpdateHit();
242  return true;
243  }
244  // Reset entry point for new primary
245  if (primaryID != primID)
247 
248  //look in the HitContainer whether a hit with the same primID, unitID,
249  //tSliceID already exists:
250 
251  G4bool found = false;
252 
253  // LogDebug("FP420Sim") << "FP420SD: HCollection= " << theHC->entries() <<std::endl;
254 
255  for (int j=0; j<theHC->entries()&&!found; j++) {
256  FP420G4Hit* aPreviousHit = (*theHC)[j];
257  if (aPreviousHit->getTrackID() == primaryID &&
258  aPreviousHit->getTimeSliceID() == tSliceID &&
259  aPreviousHit->getUnitID() == unitID ) {
260  //AZ:
261  currentHit = aPreviousHit;
262  found = true;
263  }
264  }
265 
266  if (found) {
267  //AZ:
268  UpdateHit();
269  return true;
270  } else {
271  return false;
272  }
273 }
void ResetForNewPrimary()
Definition: FP420SD.cc:276
unsigned int getTrackID() const
Definition: FP420G4Hit.cc:133
G4int tsID
Definition: FP420SD.h:142
unsigned int primaryID
Definition: FP420SD.h:149
unsigned int primID
Definition: FP420SD.h:149
unsigned int getUnitID() const
Definition: FP420G4Hit.cc:136
FP420G4HitCollection * theHC
Definition: FP420SD.h:139
int j
Definition: DBlmapReader.cc:9
G4int tSliceID
Definition: FP420SD.h:148
uint32_t previousUnitID
Definition: FP420SD.h:147
int getTimeSliceID() const
Definition: FP420G4Hit.cc:141
uint32_t unitID
Definition: FP420SD.h:147
void UpdateHit()
Definition: FP420SD.cc:363
FP420G4Hit * currentHit
Definition: FP420SD.h:143
void FP420SD::Initialize ( G4HCofThisEvent *  HCE)
virtual

Reimplemented from SensitiveDetector.

Definition at line 138 of file FP420SD.cc.

References hcID, LogDebug, name, primID, theHC, and tsID.

138  {
139 #ifdef debug
140  LogDebug("FP420Sim") << "FP420SD : Initialize called for " << name << std::endl;
141 #endif
142 
143  theHC = new FP420G4HitCollection(name, collectionName[0]);
144  if (hcID<0)
145  hcID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]);
146  HCE->AddHitsCollection(hcID, theHC);
147 
148  tsID = -2;
149  // primID = -2;
150  primID = 0;
151 
153 }
#define LogDebug(id)
G4int hcID
Definition: FP420SD.h:138
G4int tsID
Definition: FP420SD.h:142
unsigned int primID
Definition: FP420SD.h:149
std::string name
Definition: FP420SD.h:137
FP420G4HitCollection * theHC
Definition: FP420SD.h:139
G4THitsCollection< FP420G4Hit > FP420G4HitCollection
void FP420SD::PrintAll ( )
virtual

Definition at line 490 of file FP420SD.cc.

References LogDebug, and theHC.

490  {
491  LogDebug("FP420Sim") << "FP420SD: Collection " << theHC->GetName() << "\n";
492  theHC->PrintAllHits();
493 }
#define LogDebug(id)
FP420G4HitCollection * theHC
Definition: FP420SD.h:139
bool FP420SD::ProcessHits ( G4Step *  aStep,
G4TouchableHistory *   
)
virtual

Implements SensitiveDetector.

Definition at line 156 of file FP420SD.cc.

References CreateNewHit(), edeposit, GetStepInfo(), HitExists(), LogDebug, NULL, and theHC.

156  {
157 
158  if (aStep == NULL) {
159  return true;
160  } else {
161  GetStepInfo(aStep);
162  // LogDebug("FP420Sim") << edeposit <<std::endl;
163 
164  //AZ
165 #ifdef debug
166  LogDebug("FP420Sim") << "FP420SD : number of hits = " << theHC->entries() << std::endl;
167 #endif
168 
169  if (HitExists() == false && edeposit>0. && theHC->entries()< 200 ){
170  CreateNewHit();
171  return true;
172  }
173  }
174  return true;
175 }
#define LogDebug(id)
#define NULL
Definition: scimark2.h:8
float edeposit
Definition: FP420SD.h:155
void GetStepInfo(G4Step *aStep)
Definition: FP420SD.cc:177
FP420G4HitCollection * theHC
Definition: FP420SD.h:139
void CreateNewHit()
Definition: FP420SD.cc:297
G4bool HitExists()
Definition: FP420SD.cc:230
void FP420SD::ResetForNewPrimary ( )
private

Definition at line 276 of file FP420SD.cc.

References entrancePoint, exitPoint, hitPoint, hitPointExit, incidentEnergy, preStepPoint, SetToLocal(), and SetToLocalExit().

Referenced by HitExists().

276  {
277 
280  incidentEnergy = preStepPoint->GetKineticEnergy();
281 
282 }
G4ThreeVector hitPointExit
Definition: FP420SD.h:159
G4ThreeVector SetToLocal(G4ThreeVector global)
Definition: FP420SD.cc:387
G4StepPoint * preStepPoint
Definition: FP420SD.h:153
G4ThreeVector exitPoint
Definition: FP420SD.h:125
G4ThreeVector SetToLocalExit(G4ThreeVector globalPoint)
Definition: FP420SD.cc:395
float incidentEnergy
Definition: FP420SD.h:134
G4ThreeVector entrancePoint
Definition: FP420SD.h:125
G4ThreeVector hitPoint
Definition: FP420SD.h:157
uint32_t FP420SD::setDetUnitId ( G4Step *  aStep)
virtual

Implements SensitiveDetector.

Definition at line 224 of file FP420SD.cc.

References FP420NumberingScheme::getUnitID(), and numberingScheme.

Referenced by GetStepInfo().

224  {
225 
226  return (numberingScheme == 0 ? 0 : numberingScheme->getUnitID(aStep));
227 }
virtual unsigned int getUnitID(const G4Step *aStep) const
FP420NumberingScheme * numberingScheme
Definition: FP420SD.h:123
G4ThreeVector FP420SD::SetToLocal ( G4ThreeVector  global)
private

Definition at line 387 of file FP420SD.cc.

References preStepPoint, and theEntryPoint.

Referenced by ResetForNewPrimary().

387  {
388 
389  const G4VTouchable* touch= preStepPoint->GetTouchable();
390  theEntryPoint = touch->GetHistory()->GetTopTransform().TransformPoint(global);
391  return theEntryPoint;
392 }
G4StepPoint * preStepPoint
Definition: FP420SD.h:153
G4ThreeVector theEntryPoint
Definition: FP420SD.h:126
G4ThreeVector FP420SD::SetToLocalExit ( G4ThreeVector  globalPoint)
private

Definition at line 395 of file FP420SD.cc.

References postStepPoint, and theExitPoint.

Referenced by ResetForNewPrimary().

395  {
396 
397  const G4VTouchable* touch= postStepPoint->GetTouchable();
398  theExitPoint = touch->GetHistory()->GetTopTransform().TransformPoint(globalPoint);
399  return theExitPoint;
400 }
G4ThreeVector theExitPoint
Definition: FP420SD.h:127
G4StepPoint * postStepPoint
Definition: FP420SD.h:154
void FP420SD::StoreHit ( FP420G4Hit hit)
private

Definition at line 285 of file FP420SD.cc.

References theHC.

Referenced by CreateNewHit().

285  {
286 
287  // if (primID<0) return;
288  if (hit == 0 ) {
289  edm::LogWarning("FP420Sim") << "FP420SD: hit to be stored is NULL !!";
290  return;
291  }
292 
293  theHC->insert( hit );
294 }
FP420G4HitCollection * theHC
Definition: FP420SD.h:139
void FP420SD::Summarize ( )
private

Definition at line 478 of file FP420SD.cc.

Referenced by EndOfEvent().

478  {
479 }
void FP420SD::update ( const BeginOfRun )
privatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfRun * >.

Definition at line 518 of file FP420SD.cc.

References emPDG, epPDG, and gammaPDG.

Referenced by python.Vispa.Gui.VispaWidget.VispaWidget::autosize(), python.Vispa.Views.LineDecayView.LineDecayContainer::createObject(), python.Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), python.Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), python.Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), python.Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), python.Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), python.Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), python.Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), python.Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), python.Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), python.Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), python.Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), python.Vispa.Gui.FindDialog.FindDialog::reset(), python.Vispa.Gui.PortConnection.PointToPointConnection::select(), python.Vispa.Gui.VispaWidget.VispaWidget::select(), python.Vispa.Views.LineDecayView.LineDecayContainer::select(), python.Vispa.Gui.VispaWidget.VispaWidget::setText(), python.Vispa.Gui.VispaWidget.VispaWidget::setTitle(), python.Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), python.Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and python.Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

518  {
519 
520  G4ParticleTable * theParticleTable = G4ParticleTable::GetParticleTable();
521  G4String particleName;
522  emPDG = theParticleTable->FindParticle(particleName="e-")->GetPDGEncoding();
523  epPDG = theParticleTable->FindParticle(particleName="e+")->GetPDGEncoding();
524  gammaPDG = theParticleTable->FindParticle(particleName="gamma")->GetPDGEncoding();
525 
526 }
G4int emPDG
Definition: FP420SD.h:183
G4int gammaPDG
Definition: FP420SD.h:185
G4int epPDG
Definition: FP420SD.h:184
void FP420SD::update ( const BeginOfEvent )
privatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfEvent * >.

Definition at line 511 of file FP420SD.cc.

References clearHits(), eventno, and LogDebug.

Referenced by python.Vispa.Gui.VispaWidget.VispaWidget::autosize(), python.Vispa.Views.LineDecayView.LineDecayContainer::createObject(), python.Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), python.Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), python.Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), python.Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), python.Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), python.Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), python.Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), python.Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), python.Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), python.Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), python.Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), python.Vispa.Gui.FindDialog.FindDialog::reset(), python.Vispa.Gui.PortConnection.PointToPointConnection::select(), python.Vispa.Gui.VispaWidget.VispaWidget::select(), python.Vispa.Views.LineDecayView.LineDecayContainer::select(), python.Vispa.Gui.VispaWidget.VispaWidget::setText(), python.Vispa.Gui.VispaWidget.VispaWidget::setTitle(), python.Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), python.Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and python.Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

511  {
512  LogDebug("ForwardSim") << " Dispatched BeginOfEvent for " << GetName()
513  << " !" ;
514  clearHits();
515  eventno = (*i)()->GetEventID();
516 }
#define LogDebug(id)
int eventno
Definition: FP420SD.h:178
virtual void clearHits()
Definition: FP420SD.cc:531
void FP420SD::update ( const ::EndOfEvent )
private
void FP420SD::UpdateHit ( )
private

Definition at line 363 of file FP420SD.cc.

References FP420G4Hit::addEnergyDeposit(), FP420G4Hit::addEnergyLoss(), currentHit, edepositEM, edepositHAD, Eloss, LogDebug, postStepPoint, previousUnitID, primaryID, primID, tsID, tSliceID, and unitID.

Referenced by HitExists().

363  {
364  //
365  if (Eloss > 0.) {
367 
368 #ifdef debug
369  LogDebug("FP420Sim") << "updateHit: add eloss " << Eloss <<std::endl;
370  LogDebug("FP420Sim") << "CurrentHit=" << currentHit
371  << ", PostStepPoint=" << postStepPoint->GetPosition() << std::endl;
372 #endif
373  //AZ
374  // currentHit->setEnergyLoss(Eloss);
376  }
377 
378 
379 
380  // buffer for next steps:
381  tsID = tSliceID;
382  primID = primaryID;
384 }
#define LogDebug(id)
void addEnergyDeposit(double em, double hd)
Definition: FP420G4Hit.cc:143
G4int tsID
Definition: FP420SD.h:142
unsigned int primaryID
Definition: FP420SD.h:149
float Eloss
Definition: FP420SD.h:164
unsigned int primID
Definition: FP420SD.h:149
float edepositHAD
Definition: FP420SD.h:182
G4int tSliceID
Definition: FP420SD.h:148
uint32_t previousUnitID
Definition: FP420SD.h:147
uint32_t unitID
Definition: FP420SD.h:147
float edepositEM
Definition: FP420SD.h:182
G4StepPoint * postStepPoint
Definition: FP420SD.h:154
FP420G4Hit * currentHit
Definition: FP420SD.h:143
void addEnergyLoss(float e)
Definition: FP420G4Hit.cc:155

Member Data Documentation

FP420G4Hit* FP420SD::currentHit
private

Definition at line 143 of file FP420SD.h.

Referenced by CreateNewHit(), HitExists(), and UpdateHit().

G4VPhysicalVolume* FP420SD::currentPV
private

Definition at line 145 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FP420SD::edeposit
private

Definition at line 155 of file FP420SD.h.

Referenced by GetStepInfo(), and ProcessHits().

float FP420SD::edepositEM
protected

Definition at line 182 of file FP420SD.h.

Referenced by GetStepInfo(), and UpdateHit().

float FP420SD::edepositHAD
protected

Definition at line 182 of file FP420SD.h.

Referenced by GetStepInfo(), and UpdateHit().

float FP420SD::Eloss
private

Definition at line 164 of file FP420SD.h.

Referenced by CreateNewHit(), GetStepInfo(), and UpdateHit().

G4int FP420SD::emPDG
protected

Definition at line 183 of file FP420SD.h.

Referenced by GetStepInfo(), and update().

G4ThreeVector FP420SD::entrancePoint
private

Definition at line 125 of file FP420SD.h.

Referenced by ResetForNewPrimary().

G4int FP420SD::epPDG
protected

Definition at line 184 of file FP420SD.h.

Referenced by GetStepInfo(), and update().

int FP420SD::eventno
private

Definition at line 178 of file FP420SD.h.

Referenced by update().

G4ThreeVector FP420SD::exitPoint
private

Definition at line 125 of file FP420SD.h.

Referenced by ResetForNewPrimary().

G4int FP420SD::gammaPDG
protected

Definition at line 185 of file FP420SD.h.

Referenced by GetStepInfo(), and update().

G4int FP420SD::hcID
private

Definition at line 138 of file FP420SD.h.

Referenced by Initialize().

G4ThreeVector FP420SD::hitPoint
private

Definition at line 157 of file FP420SD.h.

Referenced by CreateNewHit(), GetStepInfo(), and ResetForNewPrimary().

G4ThreeVector FP420SD::hitPointExit
private

Definition at line 159 of file FP420SD.h.

Referenced by GetStepInfo(), and ResetForNewPrimary().

G4ThreeVector FP420SD::hitPointLocal
private

Definition at line 160 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4ThreeVector FP420SD::hitPointLocalExit
private

Definition at line 161 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FP420SD::incidentEnergy
private

Definition at line 134 of file FP420SD.h.

Referenced by CreateNewHit(), and ResetForNewPrimary().

std::string FP420SD::name
private
FP420NumberingScheme* FP420SD::numberingScheme
private

Definition at line 123 of file FP420SD.h.

Referenced by FP420SD(), setDetUnitId(), and ~FP420SD().

float FP420SD::Pabs
private

Definition at line 162 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

int FP420SD::ParentId
private

Definition at line 170 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

short FP420SD::ParticleType
private

Definition at line 165 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FP420SD::PhiAtEntry
private

Definition at line 168 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4StepPoint* FP420SD::postStepPoint
private

Definition at line 154 of file FP420SD.h.

Referenced by GetStepInfo(), SetToLocalExit(), and UpdateHit().

G4StepPoint* FP420SD::preStepPoint
private

Definition at line 153 of file FP420SD.h.

Referenced by GetStepInfo(), ResetForNewPrimary(), and SetToLocal().

uint32_t FP420SD::previousUnitID
private

Definition at line 147 of file FP420SD.h.

Referenced by CreateNewHit(), HitExists(), and UpdateHit().

unsigned int FP420SD::primaryID
private

Definition at line 149 of file FP420SD.h.

Referenced by CreateNewHit(), GetStepInfo(), HitExists(), and UpdateHit().

unsigned int FP420SD::primID
private

Definition at line 149 of file FP420SD.h.

Referenced by CreateNewHit(), HitExists(), Initialize(), and UpdateHit().

TrackingSlaveSD* FP420SD::slave
private

Definition at line 122 of file FP420SD.h.

Referenced by clearHits(), EndOfEvent(), fillHits(), FP420SD(), getNames(), and ~FP420SD().

G4ThreeVector FP420SD::theEntryPoint
private

Definition at line 126 of file FP420SD.h.

Referenced by SetToLocal().

G4ThreeVector FP420SD::theExitPoint
private

Definition at line 127 of file FP420SD.h.

Referenced by SetToLocalExit().

FP420G4HitCollection* FP420SD::theHC
private

Definition at line 139 of file FP420SD.h.

Referenced by EndOfEvent(), HitExists(), Initialize(), PrintAll(), ProcessHits(), and StoreHit().

const SimTrackManager* FP420SD::theManager
private

Definition at line 140 of file FP420SD.h.

float FP420SD::ThetaAtEntry
private

Definition at line 167 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4Track* FP420SD::theTrack
private

Definition at line 144 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FP420SD::Tof
private

Definition at line 163 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4int FP420SD::tsID
private

Definition at line 142 of file FP420SD.h.

Referenced by CreateNewHit(), HitExists(), Initialize(), and UpdateHit().

G4double FP420SD::tSlice
private

Definition at line 151 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4int FP420SD::tSliceID
private

Definition at line 148 of file FP420SD.h.

Referenced by CreateNewHit(), GetStepInfo(), HitExists(), and UpdateHit().

uint32_t FP420SD::unitID
private

Definition at line 147 of file FP420SD.h.

Referenced by CreateNewHit(), GetStepInfo(), HitExists(), and UpdateHit().

float FP420SD::Vx
private

Definition at line 171 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FP420SD::Vy
private

Definition at line 171 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FP420SD::Vz
private

Definition at line 171 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FP420SD::X
private

Definition at line 172 of file FP420SD.h.

Referenced by svgfig.Curve.Sample::__repr__(), CreateNewHit(), and GetStepInfo().

float FP420SD::Y
private

Definition at line 172 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FP420SD::Z
private

Definition at line 172 of file FP420SD.h.

Referenced by CreateNewHit(), and GetStepInfo().