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 &, const 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, 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)
 
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, const 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 (const G4ThreeVector &global)
 
G4ThreeVector SetToLocalExit (const 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,
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  :
61  hcID(-1), theHC(0), theManager(manager), currentHit(0), theTrack(0),
63  postStepPoint(0), 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:45
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
tuple cout
Definition: gather_cfg.py:121
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 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  )
virtual

Definition at line 487 of file FP420SD.cc.

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

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, 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
ParticleType
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
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 ( )
virtual

Definition at line 491 of file FP420SD.cc.

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

Reimplemented from SensitiveDetector.

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(), j, 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
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 509 of file FP420SD.cc.

References gather_cfg::cout, TrackingSlaveSD::hits(), 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
tuple cout
Definition: gather_cfg.py:121
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 ( )
virtual

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, LogDebug, Pabs, ParentId, 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
virtual uint32_t setDetUnitId(G4Step *)
Definition: FP420SD.cc:226
float edeposit
Definition: FP420SD.h:155
float edepositHAD
Definition: FP420SD.h:182
float Vz
Definition: FP420SD.h:171
G4int gammaPDG
Definition: FP420SD.h:185
ParticleType
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
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 232 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().

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
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:365
FP420G4Hit * currentHit
Definition: FP420SD.h:143
void FP420SD::Initialize ( G4HCofThisEvent *  HCE)
virtual

Reimplemented from SensitiveDetector.

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:45
FP420G4HitCollection * theHC
Definition: FP420SD.h:139
G4THitsCollection< FP420G4Hit > FP420G4HitCollection
void FP420SD::PrintAll ( )
virtual

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 *   
)
virtual

Implements SensitiveDetector.

Definition at line 158 of file FP420SD.cc.

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

158  {
159 
160  if (aStep == NULL) {
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)
#define NULL
Definition: scimark2.h:8
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)
virtual

Implements SensitiveDetector.

Definition at line 226 of file FP420SD.cc.

References FP420NumberingScheme::getUnitID(), and numberingScheme.

Referenced by GetStepInfo().

226  {
227 
228  return (numberingScheme == 0 ? 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 == 0 ) {
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 )
privatevirtual

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, and gammaPDG.

Referenced by progressbar.ProgressBar::__next__(), relval_steps.Matrix::__setitem__(), relval_steps.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(), relval_steps.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 )
privatevirtual

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__(), relval_steps.Matrix::__setitem__(), relval_steps.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(), relval_steps.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
virtual void clearHits()
Definition: FP420SD.cc:536
void FP420SD::update ( const ::EndOfEvent )
private

Definition at line 533 of file FP420SD.cc.

Referenced by progressbar.ProgressBar::__next__(), relval_steps.Matrix::__setitem__(), relval_steps.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(), relval_steps.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().

533  {
534 }
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.

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