CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes
FastTimerSD Class Reference

#include <FastTimerSD.h>

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

Public Member Functions

void clear () override
 
void clearHits () override
 
void DrawAll () override
 
void EndOfEvent (G4HCofThisEvent *eventHC) override
 
 FastTimerSD (const std::string &, const DDCompactView &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
 
void fillHits (edm::PSimHitContainer &, const std::string &) override
 
double getEnergyDeposit (const G4Step *step)
 
void Initialize (G4HCofThisEvent *HCE) override
 
void PrintAll () override
 
bool ProcessHits (G4Step *, G4TouchableHistory *) override
 
uint32_t setDetUnitId (const G4Step *) override
 
 ~FastTimerSD () override
 
- Public Member Functions inherited from SensitiveTkDetector
 SensitiveTkDetector (const std::string &iname, const DDCompactView &cpv, const SensitiveDetectorCatalog &clg, edm::ParameterSet const &p)
 
- Public Member Functions inherited from SensitiveDetector
void EndOfEvent (G4HCofThisEvent *eventHC) override
 
const std::vector< std::string > & getNames () const
 
void Initialize (G4HCofThisEvent *eventHC) override
 
 SensitiveDetector (const std::string &iname, const DDCompactView &cpv, const SensitiveDetectorCatalog &, edm::ParameterSet const &p)
 
 ~SensitiveDetector () override
 
- Public Member Functions inherited from Observer< const BeginOfJob * >
 Observer ()
 
void slotForUpdate (const BeginOfJob * iT)
 
virtual ~Observer ()
 
- 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 CreateNewHit ()
 
std::vector< double > getDDDArray (const std::string &, const DDsvalues_type &)
 
void GetStepInfo (G4Step *aStep)
 
G4bool HitExists ()
 
void ResetForNewPrimary ()
 
G4ThreeVector SetToLocal (const G4ThreeVector &global)
 
G4ThreeVector SetToLocalExit (const G4ThreeVector &globalPoint)
 
void StoreHit (BscG4Hit *)
 
void Summarize ()
 
void update (const BeginOfJob *) override
 This routine will be called when the appropriate signal arrives. More...
 
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

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

Additional Inherited Members

- Protected Types inherited from SensitiveDetector
enum  coordinates { WorldCoordinates, LocalCoordinates }
 
- Protected Member Functions inherited from SensitiveDetector
Local3DPoint ConvertToLocal3DPoint (const G4ThreeVector &point) const
 
Local3DPoint FinalStepPosition (const G4Step *step, coordinates) const
 
Local3DPoint InitialStepPosition (const G4Step *step, coordinates) const
 
Local3DPoint LocalPostStepPosition (const G4Step *step) const
 
Local3DPoint LocalPreStepPosition (const G4Step *step) const
 
void NaNTrap (const G4Step *step) const
 
void setNames (const std::vector< std::string > &)
 
- 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 34 of file FastTimerSD.h.

Constructor & Destructor Documentation

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

Definition at line 40 of file FastTimerSD.cc.

References dbl_to_int(), ALCARECOTkAlBeamHalo_cff::filter, DDFilteredView::firstChild(), getDDDArray(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), DDFilteredView::mergedSpecifics(), slave, AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, and type_.

43  :
44  SensitiveTkDetector(name, cpv, clg, p), ftcons(nullptr),
45  hcID(-1), theHC(nullptr), theManager(manager), currentHit(nullptr), theTrack(nullptr),
46  currentPV(nullptr), unitID(0), previousUnitID(0), preStepPoint(nullptr),
47  postStepPoint(nullptr), eventno(0) {
48 
49  //Parameters
50  edm::ParameterSet m_p = p.getParameter<edm::ParameterSet>("FastTimerSD");
51  int verbn = m_p.getUntrackedParameter<int>("Verbosity");
52 
53  SetVerboseLevel(verbn);
54 
55  slave = new TrackingSlaveSD(name);
56 
57  std::string attribute = "ReadOutName";
59  DDFilteredView fv(cpv,filter);
60  fv.firstChild();
61  DDsvalues_type sv(fv.mergedSpecifics());
62  std::vector<int> temp = dbl_to_int(getDDDArray("Type",sv));
63  type_ = temp[0];
64 
65  edm::LogInfo("FastTimerSim") << "FastTimerSD: Instantiation completed for "
66  << name << " of type " << type_;
67 }
std::string name
Definition: FastTimerSD.h:89
T getUntrackedParameter(std::string const &, T const &) const
BscG4Hit * currentHit
Definition: FastTimerSD.h:95
uint32_t unitID
Definition: FastTimerSD.h:98
const FastTimeDDDConstants * ftcons
Definition: FastTimerSD.h:80
std::vector< int > dbl_to_int(const std::vector< double > &vecdbl)
Converts a std::vector of doubles to a std::vector of int.
Definition: DDutils.h:7
TrackingSlaveSD * slave
Definition: FastTimerSD.h:79
G4StepPoint * postStepPoint
Definition: FastTimerSD.h:103
std::vector< std::pair< unsigned int, DDValue > > DDsvalues_type
std::maps an index to a DDValue. The index corresponds to the index assigned to the name of the std::...
Definition: DDsvalues.h:20
const SimTrackManager * theManager
Definition: FastTimerSD.h:92
G4VPhysicalVolume * currentPV
Definition: FastTimerSD.h:97
G4Track * theTrack
Definition: FastTimerSD.h:96
BscG4HitCollection * theHC
Definition: FastTimerSD.h:91
G4StepPoint * preStepPoint
Definition: FastTimerSD.h:102
std::vector< double > getDDDArray(const std::string &, const DDsvalues_type &)
Definition: FastTimerSD.cc:415
uint32_t previousUnitID
Definition: FastTimerSD.h:98
G4int hcID
Definition: FastTimerSD.h:90
SensitiveTkDetector(const std::string &iname, const DDCompactView &cpv, const SensitiveDetectorCatalog &clg, edm::ParameterSet const &p)
FastTimerSD::~FastTimerSD ( )
override

Definition at line 69 of file FastTimerSD.cc.

References slave.

69  {
70  if (slave) delete slave;
71 }
TrackingSlaveSD * slave
Definition: FastTimerSD.h:79

Member Function Documentation

void FastTimerSD::clear ( void  )
override

Definition at line 360 of file FastTimerSD.cc.

360 {}
void FastTimerSD::clearHits ( )
overridevirtual

Implements SensitiveDetector.

Definition at line 411 of file FastTimerSD.cc.

References TrackingSlaveSD::Initialize(), and slave.

Referenced by update().

411  {
412  slave->Initialize();
413 }
TrackingSlaveSD * slave
Definition: FastTimerSD.h:79
virtual void Initialize()
void FastTimerSD::CreateNewHit ( )
private

Definition at line 237 of file FastTimerSD.cc.

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

Referenced by ProcessHits().

237  {
238 
239 #ifdef EDM_ML_DEBUG
240  std::cout << "FastTimerSD CreateNewHit for" << " PV "
241  << currentPV->GetName() << " PVid = " << currentPV->GetCopyNo()
242  << " Unit " << unitID << std::endl;
243  std::cout << " primary " << primaryID << " time slice " << tSliceID
244  << " For Track " << theTrack->GetTrackID() << " which is a "
245  << theTrack->GetDefinition()->GetParticleName();
246 
247  if (theTrack->GetTrackID()==1) {
248  std::cout << " of energy " << theTrack->GetTotalEnergy();
249  } else {
250  std::cout << " daughter of part. " << theTrack->GetParentID();
251  }
252 
253  std::cout << " and created by " ;
254  if (theTrack->GetCreatorProcess()!=NULL)
255  std::cout << theTrack->GetCreatorProcess()->GetProcessName() ;
256  else
257  std::cout << "NO process";
258  std::cout << std::endl;
259 #endif
260 
261  currentHit = new BscG4Hit;
266 
273 
275 
278 
280  currentHit->setVx(Vx);
281  currentHit->setVy(Vy);
282  currentHit->setVz(Vz);
283 
284  currentHit->setX(X);
285  currentHit->setY(Y);
286  currentHit->setZ(Z);
287 
288  UpdateHit();
289 
291 }
G4ThreeVector hitPoint
Definition: FastTimerSD.h:106
void setTof(float e)
Definition: BSCG4Hit.cc:154
void setEntry(const G4ThreeVector &xyz)
Definition: BSCG4Hit.cc:116
void setVx(float p)
Definition: BSCG4Hit.cc:177
G4int tSliceID
Definition: FastTimerSD.h:99
void setTrackID(int i)
Definition: BSCG4Hit.cc:134
void setEnergyLoss(float e)
Definition: BSCG4Hit.cc:155
void setParentId(int p)
Definition: BSCG4Hit.cc:174
void UpdateHit()
Definition: FastTimerSD.cc:294
#define NULL
Definition: scimark2.h:8
BscG4Hit * currentHit
Definition: FastTimerSD.h:95
void setUnitID(unsigned int i)
Definition: BSCG4Hit.cc:137
uint32_t unitID
Definition: FastTimerSD.h:98
void setVy(float p)
Definition: BSCG4Hit.cc:180
void setY(float t)
Definition: BSCG4Hit.cc:168
short ParticleType
Definition: FastTimerSD.h:112
void setThetaAtEntry(float t)
Definition: BSCG4Hit.cc:161
void setX(float t)
Definition: BSCG4Hit.cc:165
void setPabs(float e)
Definition: BSCG4Hit.cc:153
void setEntryLocalP(const G4ThreeVector &xyz1)
Definition: BSCG4Hit.cc:119
void setPhiAtEntry(float f)
Definition: BSCG4Hit.cc:162
G4ThreeVector hitPointLocalExit
Definition: FastTimerSD.h:109
G4VPhysicalVolume * currentPV
Definition: FastTimerSD.h:97
void StoreHit(BscG4Hit *)
Definition: FastTimerSD.cc:226
G4ThreeVector hitPointLocal
Definition: FastTimerSD.h:108
G4Track * theTrack
Definition: FastTimerSD.h:96
float incidentEnergy
Definition: FastTimerSD.h:86
void setTimeSlice(double d)
Definition: BSCG4Hit.cc:140
void setParticleType(short i)
Definition: BSCG4Hit.cc:156
void setVz(float p)
Definition: BSCG4Hit.cc:183
float PhiAtEntry
Definition: FastTimerSD.h:113
G4double tSlice
Definition: FastTimerSD.h:100
void setZ(float t)
Definition: BSCG4Hit.cc:171
void setExitLocalP(const G4ThreeVector &xyz1)
Definition: BSCG4Hit.cc:122
void setIncidentEnergy(double e)
Definition: BSCG4Hit.cc:131
float ThetaAtEntry
Definition: FastTimerSD.h:113
G4int primaryID
Definition: FastTimerSD.h:99
void FastTimerSD::DrawAll ( )
override

Definition at line 362 of file FastTimerSD.cc.

362 {}
void FastTimerSD::EndOfEvent ( G4HCofThisEvent *  eventHC)
override

Definition at line 330 of file FastTimerSD.cc.

References gather_cfg::cout, TauDecayModes::dec, BscG4Hit::getEnergyLoss(), BscG4Hit::getEntry(), BscG4Hit::getPabs(), BscG4Hit::getParticleType(), BscG4Hit::getPhiAtEntry(), BscG4Hit::getThetaAtEntry(), BscG4Hit::getTof(), BscG4Hit::getTrackID(), BscG4Hit::getUnitID(), TrackingSlaveSD::processHits(), slave, Summarize(), and theHC.

330  {
331 
332  // here we loop over transient hits and make them persistent
333  for (int j=0; j<theHC->entries(); j++) {
334  BscG4Hit* aHit = (*theHC)[j];
335 #ifdef EDM_ML_DEBUG
336  std::cout << "hit number " << j << " unit ID = " << std::hex
337  << aHit->getUnitID() << std::dec << " entry z "
338  << aHit->getEntry().z() << " entry theta "
339  << aHit->getThetaAtEntry() << std::endl;
340 #endif
341  Local3DPoint locExitPoint(0,0,0);
342  Local3DPoint locEntryPoint(aHit->getEntry().x(),
343  aHit->getEntry().y(),
344  aHit->getEntry().z());
345  slave->processHits(PSimHit(locEntryPoint,locExitPoint,
346  aHit->getPabs(),
347  aHit->getTof(),
348  aHit->getEnergyLoss(),
349  aHit->getParticleType(),
350  aHit->getUnitID(),
351  aHit->getTrackID(),
352  aHit->getThetaAtEntry(),
353  aHit->getPhiAtEntry()));
354  }
355  Summarize();
356 }
float getPhiAtEntry() const
Definition: BSCG4Hit.cc:159
int getParticleType() const
Definition: BSCG4Hit.cc:151
G4int getTrackID() const
Definition: BSCG4Hit.cc:133
float getTof() const
Definition: BSCG4Hit.cc:149
float getPabs() const
Definition: BSCG4Hit.cc:148
unsigned int getUnitID() const
Definition: BSCG4Hit.cc:136
TrackingSlaveSD * slave
Definition: FastTimerSD.h:79
float getThetaAtEntry() const
Definition: BSCG4Hit.cc:158
BscG4HitCollection * theHC
Definition: FastTimerSD.h:91
G4ThreeVector getEntry() const
Definition: BSCG4Hit.cc:115
virtual bool processHits(const PSimHit &)
void Summarize()
Definition: FastTimerSD.cc:358
float getEnergyLoss() const
Definition: BSCG4Hit.cc:150
void FastTimerSD::fillHits ( edm::PSimHitContainer cc,
const std::string &  hname 
)
overridevirtual

Implements SensitiveTkDetector.

Definition at line 371 of file FastTimerSD.cc.

References TrackingSlaveSD::hits(), TrackingSlaveSD::name(), and slave.

371  {
372  if (slave->name() == hname) { cc=slave->hits(); }
373 }
std::string name() const
std::vector< PSimHit > & hits()
TrackingSlaveSD * slave
Definition: FastTimerSD.h:79
std::vector< double > FastTimerSD::getDDDArray ( const std::string &  str,
const DDsvalues_type sv 
)
private

Definition at line 415 of file FastTimerSD.cc.

References DDfetch(), DDValue::doubles(), Exception, harvestTrackValidationPlots::str, and relativeConstraints::value.

Referenced by FastTimerSD().

416  {
417 
418  DDValue value(str);
419  if (DDfetch(&sv,value)) {
420  const std::vector<double> & fvec = value.doubles();
421  int nval = fvec.size();
422  if (nval < 1) {
423  edm::LogError("FastTimerSim") << "FastTimerSD : # of " << str
424  << " bins " << nval << " < 1 ==> illegal";
425  throw cms::Exception("DDException") << "FastTimerSD: cannot get array " << str;
426  }
427  return fvec;
428  } else {
429  edm::LogError("FastTimerSim") << "FastTimerSD: cannot get array " << str;
430  throw cms::Exception("DDException") << "FastTimerSD: cannot get array " << str;
431  }
432 }
bool DDfetch(const DDsvalues_type *, DDValue &)
helper for retrieving DDValues from DDsvalues_type *.
Definition: DDsvalues.cc:81
Definition: value.py:1
double FastTimerSD::getEnergyDeposit ( const G4Step *  step)

Definition at line 73 of file FastTimerSD.cc.

Referenced by GetStepInfo().

73  {
74  return aStep->GetTotalEnergyDeposit();
75 }
void FastTimerSD::GetStepInfo ( G4Step *  aStep)
private

Definition at line 108 of file FastTimerSD.cc.

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

Referenced by ProcessHits().

108  {
109 
110  preStepPoint = aStep->GetPreStepPoint();
111  postStepPoint= aStep->GetPostStepPoint();
112  theTrack = aStep->GetTrack();
113  hitPoint = preStepPoint->GetPosition();
114  currentPV = preStepPoint->GetPhysicalVolume();
115  hitPointExit = postStepPoint->GetPosition();
116 
117  hitPointLocal = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPoint);
118  hitPointLocalExit = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPointExit);
119 
120 
121  G4int particleCode = theTrack->GetDefinition()->GetPDGEncoding();
122 #ifdef EDM_ML_DEBUG
123  std::cout << "FastTimerSD :particleType = "
124  << theTrack->GetDefinition()->GetParticleName() << std::endl;
125 #endif
126  if (particleCode == emPDG ||
127  particleCode == epPDG ||
128  particleCode == gammaPDG ) {
129  edepositEM = getEnergyDeposit(aStep); edepositHAD = 0.;
130  } else {
131  edepositEM = 0.; edepositHAD = getEnergyDeposit(aStep);
132  }
133  edeposit = aStep->GetTotalEnergyDeposit();
134  tSlice = (100*postStepPoint->GetGlobalTime() )/CLHEP::nanosecond;
135  tSliceID = (int) tSlice;
136  unitID = setDetUnitId(aStep);
137 #ifdef EDM_ML_DEBUG
138  std::cout << "FastTimerSD:unitID = " << std::hex << unitID << std::dec<<"\n";
139 #endif
140  primaryID = theTrack->GetTrackID();
141  // Position = hitPoint;
142  Pabs = aStep->GetPreStepPoint()->GetMomentum().mag()/CLHEP::GeV;
143  Tof = aStep->GetPostStepPoint()->GetGlobalTime()/CLHEP::nanosecond;
144  Eloss = aStep->GetTotalEnergyDeposit()/CLHEP::GeV;
145  ParticleType = theTrack->GetDefinition()->GetPDGEncoding();
146  ThetaAtEntry = aStep->GetPreStepPoint()->GetPosition().theta()/CLHEP::deg;
147  PhiAtEntry = aStep->GetPreStepPoint()->GetPosition().phi()/CLHEP::deg;
148 
149  ParentId = theTrack->GetParentID();
150  Vx = theTrack->GetVertexPosition().x();
151  Vy = theTrack->GetVertexPosition().y();
152  Vz = theTrack->GetVertexPosition().z();
153  X = hitPoint.x();
154  Y = hitPoint.y();
155  Z = hitPoint.z();
156 }
G4ThreeVector hitPoint
Definition: FastTimerSD.h:106
G4ThreeVector hitPointExit
Definition: FastTimerSD.h:107
const double GeV
Definition: MathUtil.h:16
double getEnergyDeposit(const G4Step *step)
Definition: FastTimerSD.cc:73
float edepositHAD
Definition: FastTimerSD.h:123
G4int tSliceID
Definition: FastTimerSD.h:99
uint32_t unitID
Definition: FastTimerSD.h:98
float edeposit
Definition: FastTimerSD.h:104
short ParticleType
Definition: FastTimerSD.h:112
G4int gammaPDG
Definition: FastTimerSD.h:126
G4StepPoint * postStepPoint
Definition: FastTimerSD.h:103
G4ThreeVector hitPointLocalExit
Definition: FastTimerSD.h:109
G4VPhysicalVolume * currentPV
Definition: FastTimerSD.h:97
uint32_t setDetUnitId(const G4Step *) override
Definition: FastTimerSD.cc:158
G4ThreeVector hitPointLocal
Definition: FastTimerSD.h:108
G4Track * theTrack
Definition: FastTimerSD.h:96
G4StepPoint * preStepPoint
Definition: FastTimerSD.h:102
float PhiAtEntry
Definition: FastTimerSD.h:113
float edepositEM
Definition: FastTimerSD.h:123
G4double tSlice
Definition: FastTimerSD.h:100
float ThetaAtEntry
Definition: FastTimerSD.h:113
G4int primaryID
Definition: FastTimerSD.h:99
G4bool FastTimerSD::HitExists ( )
private

Definition at line 179 of file FastTimerSD.cc.

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

Referenced by ProcessHits().

179  {
180  if (primaryID<1) {
181  edm::LogWarning("FastTimerSim") << "***** FastTimerSD error: primaryID = "
182  << primaryID
183  << " maybe detector name changed";
184  }
185 
186  // Update if in the same detector, time-slice and for same track
187  if (tSliceID == tsID && unitID==previousUnitID) {
188  UpdateHit();
189  return true;
190  }
191  // Reset entry point for new primary
192  if (primaryID != primID)
194 
195  //look in the HitContainer whether a hit with the same primID, unitID,
196  //tSliceID already exists:
197 
198  G4bool found = false;
199 
200  for (int j=0; j<theHC->entries()&&!found; j++) {
201  BscG4Hit* aPreviousHit = (*theHC)[j];
202  if (aPreviousHit->getTrackID() == primaryID &&
203  aPreviousHit->getTimeSliceID() == tSliceID &&
204  aPreviousHit->getUnitID() == unitID ) {
205  currentHit = aPreviousHit;
206  found = true;
207  }
208  }
209 
210  if (found) {
211  UpdateHit();
212  return true;
213  } else {
214  return false;
215  }
216 }
G4int getTrackID() const
Definition: BSCG4Hit.cc:133
G4int tSliceID
Definition: FastTimerSD.h:99
void UpdateHit()
Definition: FastTimerSD.cc:294
BscG4Hit * currentHit
Definition: FastTimerSD.h:95
uint32_t unitID
Definition: FastTimerSD.h:98
unsigned int getUnitID() const
Definition: BSCG4Hit.cc:136
int getTimeSliceID() const
Definition: BSCG4Hit.cc:141
G4int tsID
Definition: FastTimerSD.h:94
G4int primID
Definition: FastTimerSD.h:87
void ResetForNewPrimary()
Definition: FastTimerSD.cc:219
BscG4HitCollection * theHC
Definition: FastTimerSD.h:91
uint32_t previousUnitID
Definition: FastTimerSD.h:98
G4int primaryID
Definition: FastTimerSD.h:99
void FastTimerSD::Initialize ( G4HCofThisEvent *  HCE)
override

Definition at line 77 of file FastTimerSD.cc.

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

77  {
78 #ifdef EDM_ML_DEBUG
79  std::cout << "FastTimerSD : Initialize called for " << name << std::endl;
80 #endif
81 
83  if (hcID<0)
84  hcID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]);
85  HCE->AddHitsCollection(hcID, theHC);
86 
87  tsID = -2;
88  primID = -2;
89 }
std::string name
Definition: FastTimerSD.h:89
G4int tsID
Definition: FastTimerSD.h:94
std::string const collectionName[nCollections]
Definition: Collections.h:47
G4int primID
Definition: FastTimerSD.h:87
BscG4HitCollection * theHC
Definition: FastTimerSD.h:91
G4THitsCollection< BscG4Hit > BscG4HitCollection
G4int hcID
Definition: FastTimerSD.h:90
void FastTimerSD::PrintAll ( )
override

Definition at line 364 of file FastTimerSD.cc.

References gather_cfg::cout, and theHC.

364  {
365 #ifdef EDM_ML_DEBUG
366  std::cout << "FastTimerSD: Collection " << theHC->GetName() << std::endl;
367 #endif
368  theHC->PrintAllHits();
369 }
BscG4HitCollection * theHC
Definition: FastTimerSD.h:91
bool FastTimerSD::ProcessHits ( G4Step *  aStep,
G4TouchableHistory *   
)
overridevirtual

Implements SensitiveDetector.

Definition at line 91 of file FastTimerSD.cc.

References gather_cfg::cout, CreateNewHit(), edeposit, GetStepInfo(), HitExists(), and theHC.

91  {
92 
93  if (aStep == nullptr) {
94  return true;
95  } else {
96  GetStepInfo(aStep);
97 #ifdef EDM_ML_DEBUG
98  std::cout << "FastTimerSD : number of hits = " << theHC->entries() <<"\n";
99 #endif
100  if (HitExists() == false && edeposit>0. ){
101  CreateNewHit();
102  return true;
103  }
104  }
105  return true;
106 }
float edeposit
Definition: FastTimerSD.h:104
G4bool HitExists()
Definition: FastTimerSD.cc:179
BscG4HitCollection * theHC
Definition: FastTimerSD.h:91
void CreateNewHit()
Definition: FastTimerSD.cc:237
void GetStepInfo(G4Step *aStep)
Definition: FastTimerSD.cc:108
void FastTimerSD::ResetForNewPrimary ( )
private

Definition at line 219 of file FastTimerSD.cc.

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

Referenced by HitExists().

219  {
222  incidentEnergy = preStepPoint->GetKineticEnergy();
223 }
G4ThreeVector hitPoint
Definition: FastTimerSD.h:106
G4ThreeVector hitPointExit
Definition: FastTimerSD.h:107
G4ThreeVector SetToLocalExit(const G4ThreeVector &globalPoint)
Definition: FastTimerSD.cc:322
G4ThreeVector SetToLocal(const G4ThreeVector &global)
Definition: FastTimerSD.cc:314
float incidentEnergy
Definition: FastTimerSD.h:86
G4StepPoint * preStepPoint
Definition: FastTimerSD.h:102
G4ThreeVector entrancePoint
Definition: FastTimerSD.h:83
G4ThreeVector exitPoint
Definition: FastTimerSD.h:83
uint32_t FastTimerSD::setDetUnitId ( const G4Step *  aStep)
overridevirtual

Implements SensitiveDetector.

Definition at line 158 of file FastTimerSD.cc.

References funct::abs(), gather_cfg::cout, TauDecayModes::dec, ftcons, FastTimeDDDConstants::getEtaPhi(), FastTimeDDDConstants::getZPhi(), triggerObjects_cff::id, DTRecHitClients_cfi::local, DetId::rawId(), and type_.

Referenced by GetStepInfo().

158  {
159 
160  //Find the depth segment
161  const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
162  G4ThreeVector global = aStep->GetPreStepPoint()->GetPosition();
163  G4ThreeVector local = touch->GetHistory()->GetTopTransform().TransformPoint(global);
164  int iz = (global.z() > 0) ? 1 : -1;
165  std::pair<int,int> izphi = ((ftcons) ? ((type_ == 1) ?
166  (ftcons->getZPhi(std::abs(local.z()),local.phi())) :
167  (ftcons->getEtaPhi(local.perp(),local.phi()))) :
168  (std::pair<int,int>(0,0)));
169  uint32_t id = FastTimeDetId(type_,izphi.first,izphi.second,iz).rawId();
170 #ifdef EDM_ML_DEBUG
171  std::cout << "Volume " << touch->GetVolume(0)->GetName() << ":" << global.z()
172  << " Iz(eta)phi " << izphi.first << ":" << izphi.second << ":"
173  << iz << " id " << std::hex << id << std::dec << std::endl;
174 #endif
175  return id;
176 }
std::pair< int, int > getEtaPhi(double r, double phi) const
uint32_t rawId() const
get the raw id
Definition: DetId.h:44
const FastTimeDDDConstants * ftcons
Definition: FastTimerSD.h:80
std::pair< int, int > getZPhi(double z, double phi) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
G4ThreeVector FastTimerSD::SetToLocal ( const G4ThreeVector &  global)
private

Definition at line 314 of file FastTimerSD.cc.

References preStepPoint, and theEntryPoint.

Referenced by ResetForNewPrimary().

314  {
315 
316  const G4VTouchable* touch= preStepPoint->GetTouchable();
317  theEntryPoint = touch->GetHistory()->GetTopTransform().TransformPoint(global);
318  return theEntryPoint;
319 }
G4ThreeVector theEntryPoint
Definition: FastTimerSD.h:84
G4StepPoint * preStepPoint
Definition: FastTimerSD.h:102
G4ThreeVector FastTimerSD::SetToLocalExit ( const G4ThreeVector &  globalPoint)
private

Definition at line 322 of file FastTimerSD.cc.

References postStepPoint, and theExitPoint.

Referenced by ResetForNewPrimary().

322  {
323 
324  const G4VTouchable* touch= postStepPoint->GetTouchable();
325  theExitPoint = touch->GetHistory()->GetTopTransform().TransformPoint(globalPoint);
326  return theExitPoint;
327 }
G4StepPoint * postStepPoint
Definition: FastTimerSD.h:103
G4ThreeVector theExitPoint
Definition: FastTimerSD.h:84
void FastTimerSD::StoreHit ( BscG4Hit hit)
private

Definition at line 226 of file FastTimerSD.cc.

References primID, and theHC.

Referenced by CreateNewHit().

226  {
227 
228  if (primID<0) return;
229  if (hit == nullptr) {
230  edm::LogWarning("FastTimerSim") << "FastTimerSD: hit to be stored is NULL !!";
231  } else {
232  theHC->insert( hit );
233  }
234 }
G4int primID
Definition: FastTimerSD.h:87
BscG4HitCollection * theHC
Definition: FastTimerSD.h:91
void FastTimerSD::Summarize ( )
private

Definition at line 358 of file FastTimerSD.cc.

Referenced by EndOfEvent().

358 {}
void FastTimerSD::update ( const BeginOfJob )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfJob * >.

Definition at line 375 of file FastTimerSD.cc.

References gather_cfg::cout, Exception, ftcons, and edm::EventSetup::get().

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().

375  {
376 
377  const edm::EventSetup* es = (*job)();
379  es->get<IdealGeometryRecord>().get(fdc);
380  if (fdc.isValid()) {
381  ftcons = &(*fdc);
382  } else {
383  edm::LogError("FastTimerSim") << "FastTimerSD : Cannot find FastTimeDDDConstants";
384  throw cms::Exception("Unknown", "FastTimerSD") << "Cannot find FastTimeDDDConstants\n";
385  }
386 #ifdef EDM_ML_DEBUG
387  std::cout << "FastTimerSD::Initialized with FastTimeDDDConstants\n";
388 #endif
389 }
const FastTimeDDDConstants * ftcons
Definition: FastTimerSD.h:80
const T & get() const
Definition: EventSetup.h:59
void FastTimerSD::update ( const BeginOfRun )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfRun * >.

Definition at line 399 of file FastTimerSD.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().

399  {
400 
401  G4ParticleTable * theParticleTable = G4ParticleTable::GetParticleTable();
402  G4String particleName;
403  emPDG = theParticleTable->FindParticle(particleName="e-")->GetPDGEncoding();
404  epPDG = theParticleTable->FindParticle(particleName="e+")->GetPDGEncoding();
405  gammaPDG = theParticleTable->FindParticle(particleName="gamma")->GetPDGEncoding();
406 
407 }
G4int gammaPDG
Definition: FastTimerSD.h:126
void FastTimerSD::update ( const BeginOfEvent )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfEvent * >.

Definition at line 391 of file FastTimerSD.cc.

References clearHits(), gather_cfg::cout, and eventno.

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().

391  {
392 #ifdef EDM_ML_DEBUG
393  std::cout << "Dispatched BeginOfEvent for " << GetName() << " !\n" ;
394 #endif
395  clearHits();
396  eventno = (*i)()->GetEventID();
397 }
void clearHits() override
Definition: FastTimerSD.cc:411
void FastTimerSD::update ( const ::EndOfEvent )
overrideprivate
void FastTimerSD::UpdateHit ( )
private

Definition at line 294 of file FastTimerSD.cc.

References BscG4Hit::addEnergyDeposit(), gather_cfg::cout, currentHit, edepositEM, edepositHAD, Eloss, postStepPoint, previousUnitID, primaryID, primID, BscG4Hit::setEnergyLoss(), tsID, tSliceID, and unitID.

Referenced by CreateNewHit(), and HitExists().

294  {
295 
296  if (Eloss > 0.) {
298 
299 #ifdef EDM_ML_DEBUG
300  std::cout << "updateHit: add eloss " << Eloss <<std::endl;
301  std::cout << "CurrentHit="<< currentHit<< ", PostStepPoint = "
302  << postStepPoint->GetPosition() << std::endl;
303 #endif
305  }
306 
307  // buffer for next steps:
308  tsID = tSliceID;
309  primID = primaryID;
311 }
float edepositHAD
Definition: FastTimerSD.h:123
G4int tSliceID
Definition: FastTimerSD.h:99
void setEnergyLoss(float e)
Definition: BSCG4Hit.cc:155
BscG4Hit * currentHit
Definition: FastTimerSD.h:95
uint32_t unitID
Definition: FastTimerSD.h:98
G4int tsID
Definition: FastTimerSD.h:94
G4int primID
Definition: FastTimerSD.h:87
G4StepPoint * postStepPoint
Definition: FastTimerSD.h:103
void addEnergyDeposit(double em, double hd)
Definition: BSCG4Hit.cc:143
uint32_t previousUnitID
Definition: FastTimerSD.h:98
float edepositEM
Definition: FastTimerSD.h:123
G4int primaryID
Definition: FastTimerSD.h:99

Member Data Documentation

BscG4Hit* FastTimerSD::currentHit
private

Definition at line 95 of file FastTimerSD.h.

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

G4VPhysicalVolume* FastTimerSD::currentPV
private

Definition at line 97 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FastTimerSD::edeposit
private

Definition at line 104 of file FastTimerSD.h.

Referenced by GetStepInfo(), and ProcessHits().

float FastTimerSD::edepositEM
protected

Definition at line 123 of file FastTimerSD.h.

Referenced by GetStepInfo(), and UpdateHit().

float FastTimerSD::edepositHAD
protected

Definition at line 123 of file FastTimerSD.h.

Referenced by GetStepInfo(), and UpdateHit().

float FastTimerSD::Eloss
private

Definition at line 111 of file FastTimerSD.h.

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

G4int FastTimerSD::emPDG
protected

Definition at line 124 of file FastTimerSD.h.

Referenced by GetStepInfo(), and update().

G4ThreeVector FastTimerSD::entrancePoint
private

Definition at line 83 of file FastTimerSD.h.

Referenced by ResetForNewPrimary().

G4int FastTimerSD::epPDG
protected

Definition at line 125 of file FastTimerSD.h.

Referenced by GetStepInfo(), and update().

int FastTimerSD::eventno
private

Definition at line 119 of file FastTimerSD.h.

Referenced by update().

G4ThreeVector FastTimerSD::exitPoint
private

Definition at line 83 of file FastTimerSD.h.

Referenced by ResetForNewPrimary().

const FastTimeDDDConstants* FastTimerSD::ftcons
private

Definition at line 80 of file FastTimerSD.h.

Referenced by setDetUnitId(), and update().

G4int FastTimerSD::gammaPDG
protected

Definition at line 126 of file FastTimerSD.h.

Referenced by GetStepInfo(), and update().

G4int FastTimerSD::hcID
private

Definition at line 90 of file FastTimerSD.h.

Referenced by Initialize().

G4ThreeVector FastTimerSD::hitPoint
private

Definition at line 106 of file FastTimerSD.h.

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

G4ThreeVector FastTimerSD::hitPointExit
private

Definition at line 107 of file FastTimerSD.h.

Referenced by GetStepInfo(), and ResetForNewPrimary().

G4ThreeVector FastTimerSD::hitPointLocal
private

Definition at line 108 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4ThreeVector FastTimerSD::hitPointLocalExit
private

Definition at line 109 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FastTimerSD::incidentEnergy
private

Definition at line 86 of file FastTimerSD.h.

Referenced by CreateNewHit(), and ResetForNewPrimary().

std::string FastTimerSD::name
private
float FastTimerSD::Pabs
private

Definition at line 111 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

int FastTimerSD::ParentId
private

Definition at line 115 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

short FastTimerSD::ParticleType
private

Definition at line 112 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FastTimerSD::PhiAtEntry
private

Definition at line 113 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4StepPoint* FastTimerSD::postStepPoint
private

Definition at line 103 of file FastTimerSD.h.

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

G4StepPoint* FastTimerSD::preStepPoint
private

Definition at line 102 of file FastTimerSD.h.

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

uint32_t FastTimerSD::previousUnitID
private

Definition at line 98 of file FastTimerSD.h.

Referenced by HitExists(), and UpdateHit().

G4int FastTimerSD::primaryID
private

Definition at line 99 of file FastTimerSD.h.

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

G4int FastTimerSD::primID
private

Definition at line 87 of file FastTimerSD.h.

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

TrackingSlaveSD* FastTimerSD::slave
private

Definition at line 79 of file FastTimerSD.h.

Referenced by clearHits(), EndOfEvent(), FastTimerSD(), fillHits(), and ~FastTimerSD().

G4ThreeVector FastTimerSD::theEntryPoint
private

Definition at line 84 of file FastTimerSD.h.

Referenced by SetToLocal().

G4ThreeVector FastTimerSD::theExitPoint
private

Definition at line 84 of file FastTimerSD.h.

Referenced by SetToLocalExit().

BscG4HitCollection* FastTimerSD::theHC
private

Definition at line 91 of file FastTimerSD.h.

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

const SimTrackManager* FastTimerSD::theManager
private

Definition at line 92 of file FastTimerSD.h.

float FastTimerSD::ThetaAtEntry
private

Definition at line 113 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4Track* FastTimerSD::theTrack
private

Definition at line 96 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FastTimerSD::Tof
private

Definition at line 111 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4int FastTimerSD::tsID
private

Definition at line 94 of file FastTimerSD.h.

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

G4double FastTimerSD::tSlice
private

Definition at line 100 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4int FastTimerSD::tSliceID
private

Definition at line 99 of file FastTimerSD.h.

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

int FastTimerSD::type_
private
uint32_t FastTimerSD::unitID
private

Definition at line 98 of file FastTimerSD.h.

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

float FastTimerSD::Vx
private

Definition at line 116 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FastTimerSD::Vy
private

Definition at line 116 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FastTimerSD::Vz
private

Definition at line 116 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FastTimerSD::X
private

Definition at line 117 of file FastTimerSD.h.

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

float FastTimerSD::Y
private

Definition at line 117 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float FastTimerSD::Z
private

Definition at line 117 of file FastTimerSD.h.

Referenced by CreateNewHit(), and GetStepInfo().