CMS 3D CMS Logo

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

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

void clearHits () override
 
void CreateNewHit ()
 
void GetStepInfo (G4Step *aStep)
 
G4bool HitExists ()
 
void ResetForNewPrimary ()
 
G4ThreeVector SetToLocal (const G4ThreeVector &global)
 
G4ThreeVector SetToLocalExit (const G4ThreeVector &globalPoint)
 
void StoreHit (FP420G4Hit *)
 
void Summarize ()
 
void update (const BeginOfRun *) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const BeginOfEvent *) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const ::EndOfEvent *) override
 
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,
const SensitiveDetectorCatalog clg,
edm::ParameterSet const &  p,
const SimTrackManager manager 
)

Definition at line 57 of file FP420SD.cc.

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

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

Definition at line 127 of file FP420SD.cc.

References numberingScheme, and slave.

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

Member Function Documentation

void FP420SD::clear ( void  )
override

Definition at line 487 of file FP420SD.cc.

487  {
488 }
void FP420SD::clearHits ( )
overrideprivatevirtual

Implements SensitiveDetector.

Definition at line 536 of file FP420SD.cc.

References TrackingSlaveSD::Initialize(), and slave.

Referenced by update().

536  {
537  //AZ:
538  slave->Initialize();
539 }
TrackingSlaveSD * slave
Definition: FP420SD.h:122
virtual void Initialize()
void FP420SD::CreateNewHit ( )
private

Definition at line 299 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().

299  {
300 
301 #ifdef debug
302  // << " MVid = " << currentPV->GetMother()->GetCopyNo()
303  LogDebug("FP420Sim") << "FP420SD CreateNewHit for"
304  << " PV " << currentPV->GetName()
305  << " PVid = " << currentPV->GetCopyNo()
306  << " Unit " << unitID <<std::endl;
307  LogDebug("FP420Sim") << " primary " << primaryID
308  << " time slice " << tSliceID
309  << " For Track " << theTrack->GetTrackID()
310  << " which is a " << theTrack->GetDefinition()->GetParticleName();
311 
312  if (theTrack->GetTrackID()==1) {
313  LogDebug("FP420Sim") << " of energy " << theTrack->GetTotalEnergy();
314  } else {
315  LogDebug("FP420Sim") << " daughter of part. " << theTrack->GetParentID();
316  }
317 
318  LogDebug("FP420Sim") << " and created by " ;
319  if (theTrack->GetCreatorProcess()!=NULL)
320  LogDebug("FP420Sim") << theTrack->GetCreatorProcess()->GetProcessName() ;
321  else
322  LogDebug("FP420Sim") << "NO process";
323  LogDebug("FP420Sim") << std::endl;
324 #endif
325 
326 
327  currentHit = new FP420G4Hit;
332 
339 
340 // currentHit->setEntry(entrancePoint);
342 
345 
347  currentHit->setVx(Vx);
348  currentHit->setVy(Vy);
349  currentHit->setVz(Vz);
350 
351  currentHit->setX(X);
352  currentHit->setY(Y);
353  currentHit->setZ(Z);
354  //AZ:12.10.2007
355  // UpdateHit();
356  // buffer for next steps:
357  tsID = tSliceID;
358  primID = primaryID;
360 
362 }
#define LogDebug(id)
void setY(float t)
Definition: FP420G4Hit.cc:169
void setPhiAtEntry(float f)
Definition: FP420G4Hit.cc:163
float ThetaAtEntry
Definition: FP420SD.h:167
void setVz(float p)
Definition: FP420G4Hit.cc:184
void setEntry(const G4ThreeVector &xyz)
Definition: FP420G4Hit.cc:116
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 setEntryLocalP(const G4ThreeVector &xyz1)
Definition: FP420G4Hit.cc:119
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
void setExitLocalP(const G4ThreeVector &xyz1)
Definition: FP420G4Hit.cc:122
uint32_t unitID
Definition: FP420SD.h:147
float PhiAtEntry
Definition: FP420SD.h:168
short ParticleType
Definition: FP420SD.h:165
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:287
void setVy(float p)
Definition: FP420G4Hit.cc:181
float Vx
Definition: FP420SD.h:171
void FP420SD::DrawAll ( )
override

Definition at line 491 of file FP420SD.cc.

491  {
492 }
void FP420SD::EndOfEvent ( G4HCofThisEvent *  eventHC)
override

Definition at line 405 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(), LogDebug, TrackingSlaveSD::processHits(), slave, Summarize(), and theHC.

405  {
406 
407  // here we loop over transient hits and make them persistent
408 
409  // if(theHC->entries() > 100){
410  // LogDebug("FP420Sim") << "FP420SD: warning!!! Number of hits exceed 100 and =" << theHC->entries() << "\n";
411  // }
412  // for (int j=0; j<theHC->entries() && j<100; j++) {
413  int nhitsHPS240=0;
414  int nhitsFP420=0;
415  for (int j=0; j<theHC->entries(); j++) {
416  FP420G4Hit* aHit = (*theHC)[j];
417  if((fabs(aHit->getTof())> 780. && fabs(aHit->getTof())< 840.)) ++nhitsHPS240;
418  if((fabs(aHit->getTof())>1380. && fabs(aHit->getTof())<1450.)) ++nhitsFP420;
419  // if(fabs(aHit->getTof()) < 1700.) {
420  if((fabs(aHit->getTof())>780. && fabs(aHit->getTof())<840. && nhitsHPS240<200.) || ( fabs(aHit->getTof())>1380. && fabs(aHit->getTof())<1450. && nhitsFP420<200.)) {
421 
422 
423 #ifdef ddebug
424  // LogDebug("FP420SD") << " FP420Hit " << j << " " << *aHit << std::endl;
425  LogDebug("FP420Sim") << "hit number" << j << "unit ID = "<<aHit->getUnitID()<< "\n";
426  LogDebug("FP420Sim") << "entry z " << aHit->getEntry().z()<< "\n";
427  LogDebug("FP420Sim") << "entr theta " << aHit->getThetaAtEntry()<< "\n";
428 #endif
429 
430  // Local3DPoint locExitPoint(0,0,0);
431  // Local3DPoint locEntryPoint(aHit->getEntry().x(),
432  // aHit->getEntry().y(),
433  // aHit->getEntry().z());
434  Local3DPoint locExitPoint(aHit->getExitLocalP().x(),
435  aHit->getExitLocalP().y(),
436  aHit->getExitLocalP().z());
437  Local3DPoint locEntryPoint(aHit->getEntryLocalP().x(),
438  aHit->getEntryLocalP().y(),
439  aHit->getEntryLocalP().z());
440  // implicit conversion (slicing) to PSimHit!!!
441  slave->processHits(PSimHit(locEntryPoint,locExitPoint,//entryPoint(), exitPoint() Local3DPoint
442  aHit->getPabs(),// pabs() float
443  aHit->getTof(), // tof() float
444  aHit->getEnergyLoss(), // energyLoss() float
445  aHit->getParticleType(),// particleType() int
446  aHit->getUnitID(), // detUnitId() unsigned int
447  aHit->getTrackID(),// trackId() unsigned int
448  aHit->getThetaAtEntry(),// thetaAtEntry() float
449  aHit->getPhiAtEntry())); // phiAtEntry() float
450 
451  //PSimHit( const Local3DPoint& entry, const Local3DPoint& exit,
452  // float pabs, float tof, float eloss, int particleType,
453  // unsigned int detId, unsigned int trackId,
454  // float theta, float phi, unsigned short processType=0) :
455 
456  // LocalVector direction = hit.exitPoint() - hit.entryPoint();
457  //hit.energyLoss
458 
459 
460  /*
461  aHit->getEM(), -
462  aHit->getHadr(), -
463  aHit->getIncidentEnergy(), -
464  aHit->getTimeSlice(), -
465  aHit->getEntry(), -
466  aHit->getParentId(),
467  aHit->getEntryLocalP(), -
468  aHit->getExitLocalP(), -
469  aHit->getX(), -
470  aHit->getY(), -
471  aHit->getZ(), -
472  aHit->getVx(), -
473  aHit->getVy(), -
474  aHit->getVz())); -
475  */
476  }//if Tof<1600. if nhits<100
477  } // for loop on hits
478 
479  Summarize();
480 }
#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:483
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 
)
overridevirtual

Implements SensitiveTkDetector.

Definition at line 509 of file FP420SD.cc.

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

509  {
510  if (slave->name() == n) {
511  c=slave->hits();
512  std::cout << "FP420SD: fillHits to PSimHitContainer for name= " << name << std::endl;
513  }
514 }
std::string name() const
TrackingSlaveSD * slave
Definition: FP420SD.h:122
std::vector< PSimHit > & hits()
std::string name
Definition: FP420SD.h:137
double FP420SD::getEnergyDeposit ( G4Step *  step)
virtual

Definition at line 136 of file FP420SD.cc.

Referenced by GetStepInfo().

136  {
137  return aStep->GetTotalEnergyDeposit();
138 }
std::vector< std::string > FP420SD::getNames ( )
overridevirtual

Reimplemented from SensitiveDetector.

Definition at line 541 of file FP420SD.cc.

References TrackingSlaveSD::name(), slave, and groupFilesInBlocks::temp.

541  {
542  std::vector<std::string> temp;
543  temp.push_back(slave->name());
544  return temp;
545 }
std::string name() const
TrackingSlaveSD * slave
Definition: FP420SD.h:122
void FP420SD::GetStepInfo ( G4Step *  aStep)
private

Definition at line 179 of file FP420SD.cc.

References currentPV, edeposit, edepositEM, edepositHAD, Eloss, emPDG, epPDG, gammaPDG, getEnergyDeposit(), GeV, hitPoint, hitPointExit, hitPointLocal, hitPointLocalExit, createfilelist::int, 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().

179  {
180 
181  preStepPoint = aStep->GetPreStepPoint();
182  postStepPoint= aStep->GetPostStepPoint();
183  theTrack = aStep->GetTrack();
184  hitPoint = preStepPoint->GetPosition();
185  currentPV = preStepPoint->GetPhysicalVolume();
186  hitPointExit = postStepPoint->GetPosition();
187 
188  hitPointLocal = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPoint);
189  hitPointLocalExit = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPointExit);
190 
191 
192  G4int particleCode = theTrack->GetDefinition()->GetPDGEncoding();
193  if (particleCode == emPDG ||
194  particleCode == epPDG ||
195  particleCode == gammaPDG ) {
196  edepositEM = getEnergyDeposit(aStep); edepositHAD = 0.;
197  } else {
198  edepositEM = 0.; edepositHAD = getEnergyDeposit(aStep);
199  }
200  edeposit = aStep->GetTotalEnergyDeposit();
201  tSlice = (postStepPoint->GetGlobalTime() )/nanosecond;
202  tSliceID = (int) tSlice;
203  unitID = setDetUnitId(aStep);
204 #ifdef debug
205  LogDebug("FP420Sim") << "unitID=" << unitID <<std::endl;
206 #endif
207  primaryID = theTrack->GetTrackID();
208  // Position = hitPoint;
209  Pabs = aStep->GetPreStepPoint()->GetMomentum().mag()/GeV;
210  //Tof = 1400. + aStep->GetPostStepPoint()->GetGlobalTime()/nanosecond;
211  Tof = aStep->GetPostStepPoint()->GetGlobalTime()/nanosecond;
212  Eloss = aStep->GetTotalEnergyDeposit()/GeV;
213  ParticleType = theTrack->GetDefinition()->GetPDGEncoding();
214  ThetaAtEntry = aStep->GetPreStepPoint()->GetPosition().theta()/deg;
215  PhiAtEntry = aStep->GetPreStepPoint()->GetPosition().phi()/deg;
216 
217  ParentId = theTrack->GetParentID();
218  Vx = theTrack->GetVertexPosition().x();
219  Vy = theTrack->GetVertexPosition().y();
220  Vz = theTrack->GetVertexPosition().z();
221  X = hitPoint.x();
222  Y = hitPoint.y();
223  Z = hitPoint.z();
224 }
#define LogDebug(id)
G4int emPDG
Definition: FP420SD.h:183
const double GeV
Definition: MathUtil.h:16
float ThetaAtEntry
Definition: FP420SD.h:167
virtual double getEnergyDeposit(G4Step *step)
Definition: FP420SD.cc:136
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
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
uint32_t setDetUnitId(G4Step *) override
Definition: FP420SD.cc:226
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 232 of file FP420SD.cc.

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

Referenced by ProcessHits().

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

Definition at line 140 of file FP420SD.cc.

References ecaldqm::collectionName, hcID, LogDebug, name, primID, theHC, and tsID.

140  {
141 #ifdef debug
142  LogDebug("FP420Sim") << "FP420SD : Initialize called for " << name << std::endl;
143 #endif
144 
146  if (hcID<0)
147  hcID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]);
148  HCE->AddHitsCollection(hcID, theHC);
149 
150  tsID = -2;
151  // primID = -2;
152  primID = 0;
153 
155 }
#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
std::string const collectionName[nCollections]
Definition: Collections.h:47
FP420G4HitCollection * theHC
Definition: FP420SD.h:139
G4THitsCollection< FP420G4Hit > FP420G4HitCollection
void FP420SD::PrintAll ( )
override

Definition at line 495 of file FP420SD.cc.

References LogDebug, and theHC.

495  {
496  LogDebug("FP420Sim") << "FP420SD: Collection " << theHC->GetName() << "\n";
497  theHC->PrintAllHits();
498 }
#define LogDebug(id)
FP420G4HitCollection * theHC
Definition: FP420SD.h:139
bool FP420SD::ProcessHits ( G4Step *  aStep,
G4TouchableHistory *   
)
overridevirtual

Implements SensitiveDetector.

Definition at line 158 of file FP420SD.cc.

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

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

Definition at line 278 of file FP420SD.cc.

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

Referenced by HitExists().

278  {
279 
282  incidentEnergy = preStepPoint->GetKineticEnergy();
283 
284 }
G4ThreeVector SetToLocalExit(const G4ThreeVector &globalPoint)
Definition: FP420SD.cc:397
G4ThreeVector hitPointExit
Definition: FP420SD.h:159
G4StepPoint * preStepPoint
Definition: FP420SD.h:153
G4ThreeVector exitPoint
Definition: FP420SD.h:125
G4ThreeVector SetToLocal(const G4ThreeVector &global)
Definition: FP420SD.cc:389
float incidentEnergy
Definition: FP420SD.h:134
G4ThreeVector entrancePoint
Definition: FP420SD.h:125
G4ThreeVector hitPoint
Definition: FP420SD.h:157
uint32_t FP420SD::setDetUnitId ( G4Step *  aStep)
overridevirtual

Implements SensitiveDetector.

Definition at line 226 of file FP420SD.cc.

References FP420NumberingScheme::getUnitID(), and numberingScheme.

Referenced by GetStepInfo().

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

Definition at line 389 of file FP420SD.cc.

References preStepPoint, and theEntryPoint.

Referenced by ResetForNewPrimary().

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

Definition at line 397 of file FP420SD.cc.

References postStepPoint, and theExitPoint.

Referenced by ResetForNewPrimary().

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

Definition at line 287 of file FP420SD.cc.

References theHC.

Referenced by CreateNewHit().

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

Definition at line 483 of file FP420SD.cc.

Referenced by EndOfEvent().

483  {
484 }
void FP420SD::update ( const BeginOfRun )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfRun * >.

Definition at line 523 of file FP420SD.cc.

References emPDG, epPDG, gammaPDG, and HiggsValidation_cfi::particleName.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

523  {
524 
525  G4ParticleTable * theParticleTable = G4ParticleTable::GetParticleTable();
526  G4String particleName;
527  emPDG = theParticleTable->FindParticle(particleName="e-")->GetPDGEncoding();
528  epPDG = theParticleTable->FindParticle(particleName="e+")->GetPDGEncoding();
529  gammaPDG = theParticleTable->FindParticle(particleName="gamma")->GetPDGEncoding();
530 
531 }
G4int emPDG
Definition: FP420SD.h:183
G4int gammaPDG
Definition: FP420SD.h:185
G4int epPDG
Definition: FP420SD.h:184
void FP420SD::update ( const BeginOfEvent )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfEvent * >.

Definition at line 516 of file FP420SD.cc.

References clearHits(), eventno, and LogDebug.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

516  {
517  LogDebug("ForwardSim") << " Dispatched BeginOfEvent for " << GetName()
518  << " !" ;
519  clearHits();
520  eventno = (*i)()->GetEventID();
521 }
#define LogDebug(id)
int eventno
Definition: FP420SD.h:178
void clearHits() override
Definition: FP420SD.cc:536
void FP420SD::update ( const ::EndOfEvent )
overrideprivate
void FP420SD::UpdateHit ( )
private

Definition at line 365 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().

365  {
366  //
367  if (Eloss > 0.) {
369 
370 #ifdef debug
371  LogDebug("FP420Sim") << "updateHit: add eloss " << Eloss <<std::endl;
372  LogDebug("FP420Sim") << "CurrentHit=" << currentHit
373  << ", PostStepPoint=" << postStepPoint->GetPosition() << std::endl;
374 #endif
375  //AZ
376  // currentHit->setEnergyLoss(Eloss);
378  }
379 
380 
381 
382  // buffer for next steps:
383  tsID = tSliceID;
384  primID = primaryID;
386 }
#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().