CMS 3D CMS Logo

TrackWithHistory.h
Go to the documentation of this file.
1 #ifndef SimG4Core_TrackWithHistory_H
2 #define SimG4Core_TrackWithHistory_H
3 
4 #include "G4Track.hh"
7 
8 #include "G4Allocator.hh"
9 
10 class G4VProcess;
17 public:
21  TrackWithHistory(const G4Track *g4track);
23 
24  inline void *operator new(size_t);
25  inline void operator delete(void *TrackWithHistory);
26 
27  void save() { saved_ = true; }
28  unsigned int trackID() const { return trackID_; }
29  int particleID() const { return particleID_; }
30  int parentID() const { return parentID_; }
31  int genParticleID() const { return genParticleID_; }
32  const math::XYZVectorD &momentum() const { return momentum_; }
33  double totalEnergy() const { return totalEnergy_; }
34  const math::XYZVectorD &vertexPosition() const { return vertexPosition_; }
35  double globalTime() const { return globalTime_; }
36  double localTime() const { return localTime_; }
37  double properTime() const { return properTime_; }
38  const G4VProcess *creatorProcess() const { return creatorProcess_; }
39  double weight() const { return weight_; }
40  void setTrackID(int i) { trackID_ = i; }
41  void setParentID(int i) { parentID_ = i; }
43  bool storeTrack() const { return storeTrack_; }
44  bool saved() const { return saved_; }
45 
46  // Boundary crossing variables
50  crossedBoundary_ = true;
51  idAtBoundary_ = id;
54  }
55  bool crossedBoundary() const { return crossedBoundary_; }
58  int getIDAtBoundary() const { return idAtBoundary_; }
64  void checkAtEnd(const G4Track *);
65 
66 private:
67  unsigned int trackID_;
69  int parentID_;
72  double totalEnergy_;
74  double globalTime_;
75  double localTime_;
76  double properTime_;
77  const G4VProcess *creatorProcess_;
78  double weight_;
80  bool saved_;
81 
82  bool isPrimary_;
87 
88  int extractGenID(const G4Track *gt) const;
89 };
90 
91 extern G4ThreadLocal G4Allocator<TrackWithHistory> *fpTrackWithHistoryAllocator;
92 
93 inline void *TrackWithHistory::operator new(size_t) {
95  fpTrackWithHistoryAllocator = new G4Allocator<TrackWithHistory>;
96  return (void *)fpTrackWithHistoryAllocator->MallocSingle();
97 }
98 
99 inline void TrackWithHistory::operator delete(void *aTwH) {
100  fpTrackWithHistoryAllocator->FreeSingle((TrackWithHistory *)aTwH);
101 }
102 
103 #endif
TrackWithHistory::parentID_
int parentID_
Definition: TrackWithHistory.h:69
TrackWithHistory::TrackWithHistory
TrackWithHistory(const G4Track *g4track)
Definition: TrackWithHistory.cc:17
TrackWithHistory::genParticleID
int genParticleID() const
Definition: TrackWithHistory.h:31
TrackWithHistory::globalTime
double globalTime() const
Definition: TrackWithHistory.h:35
mps_fire.i
i
Definition: mps_fire.py:428
TrackWithHistory::weight_
double weight_
Definition: TrackWithHistory.h:78
TrackWithHistory::parentID
int parentID() const
Definition: TrackWithHistory.h:30
TrackWithHistory::trackID_
unsigned int trackID_
Definition: TrackWithHistory.h:67
math::XYZTLorentzVectorF
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< float > > XYZTLorentzVectorF
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:22
TrackWithHistory::localTime_
double localTime_
Definition: TrackWithHistory.h:75
TrackWithHistory
Definition: TrackWithHistory.h:16
TrackWithHistory::setTrackID
void setTrackID(int i)
Definition: TrackWithHistory.h:40
TrackWithHistory::getPositionAtBoundary
const math::XYZTLorentzVectorF & getPositionAtBoundary() const
Definition: TrackWithHistory.h:56
TrackWithHistory::checkAtEnd
void checkAtEnd(const G4Track *)
Definition: TrackWithHistory.cc:57
TrackWithHistory::setCrossedBoundaryPosMom
void setCrossedBoundaryPosMom(int id, const math::XYZTLorentzVectorF position, const math::XYZTLorentzVectorF momentum)
Definition: TrackWithHistory.h:47
TrackWithHistory::totalEnergy_
double totalEnergy_
Definition: TrackWithHistory.h:72
TrackWithHistory::positionAtBoundary_
math::XYZTLorentzVectorF positionAtBoundary_
Definition: TrackWithHistory.h:85
TrackWithHistory::weight
double weight() const
Definition: TrackWithHistory.h:39
Utilities.operator
operator
Definition: Utilities.py:24
TrackWithHistory::idAtBoundary_
int idAtBoundary_
Definition: TrackWithHistory.h:84
TrackWithHistory::creatorProcess_
const G4VProcess * creatorProcess_
Definition: TrackWithHistory.h:77
submitPVValidationJobs.gt
list gt
Definition: submitPVValidationJobs.py:663
TrackWithHistory::isPrimary_
bool isPrimary_
Definition: TrackWithHistory.h:82
TrackWithHistory::vertexPosition_
math::XYZVectorD vertexPosition_
Definition: TrackWithHistory.h:73
G4TrackToParticleID
Definition: G4TrackToParticleID.h:6
TrackWithHistory::setParentID
void setParentID(int i)
Definition: TrackWithHistory.h:41
TrackWithHistory::storeTrack_
bool storeTrack_
Definition: TrackWithHistory.h:79
TrackWithHistory::save
void save()
Definition: TrackWithHistory.h:27
TrackWithHistory::getMomentumAtBoundary
const math::XYZTLorentzVectorF & getMomentumAtBoundary() const
Definition: TrackWithHistory.h:57
TrackWithHistory::properTime
double properTime() const
Definition: TrackWithHistory.h:37
TrackWithHistory::momentumAtBoundary_
math::XYZTLorentzVectorF momentumAtBoundary_
Definition: TrackWithHistory.h:86
TrackWithHistory::crossedBoundary
bool crossedBoundary() const
Definition: TrackWithHistory.h:55
TrackWithHistory::saved_
bool saved_
Definition: TrackWithHistory.h:80
math::XYZVectorD
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > XYZVectorD
spatial vector with cartesian internal representation
Definition: Vector3D.h:8
TrackWithHistory::vertexPosition
const math::XYZVectorD & vertexPosition() const
Definition: TrackWithHistory.h:34
TrackWithHistory::momentum_
math::XYZVectorD momentum_
Definition: TrackWithHistory.h:71
TrackWithHistory::~TrackWithHistory
~TrackWithHistory()
Definition: TrackWithHistory.h:22
fpTrackWithHistoryAllocator
G4ThreadLocal G4Allocator< TrackWithHistory > * fpTrackWithHistoryAllocator
Definition: TrackWithHistory.cc:13
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
LorentzVector.h
TrackWithHistory::setGenParticleID
void setGenParticleID(int i)
Definition: TrackWithHistory.h:42
TrackWithHistory::totalEnergy
double totalEnergy() const
Definition: TrackWithHistory.h:33
TrackWithHistory::globalTime_
double globalTime_
Definition: TrackWithHistory.h:74
TrackWithHistory::crossedBoundary_
bool crossedBoundary_
Definition: TrackWithHistory.h:83
TrackWithHistory::extractGenID
int extractGenID(const G4Track *gt) const
Definition: TrackWithHistory.cc:80
TrackWithHistory::particleID_
int particleID_
Definition: TrackWithHistory.h:68
TrackWithHistory::trackID
unsigned int trackID() const
Definition: TrackWithHistory.h:28
TrackWithHistory::saved
bool saved() const
Definition: TrackWithHistory.h:44
TrackWithHistory::getIDAtBoundary
int getIDAtBoundary() const
Definition: TrackWithHistory.h:58
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
TrackWithHistory::creatorProcess
const G4VProcess * creatorProcess() const
Definition: TrackWithHistory.h:38
TrackWithHistory::momentum
const math::XYZVectorD & momentum() const
Definition: TrackWithHistory.h:32
TrackWithHistory::localTime
double localTime() const
Definition: TrackWithHistory.h:36
TrackWithHistory::storeTrack
bool storeTrack() const
Definition: TrackWithHistory.h:43
Vector3D.h
TrackWithHistory::genParticleID_
int genParticleID_
Definition: TrackWithHistory.h:70
TrackWithHistory::particleID
int particleID() const
Definition: TrackWithHistory.h:29
TrackWithHistory::properTime_
double properTime_
Definition: TrackWithHistory.h:76