/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/ds/include/RAT/DS/MCTrack.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/ds/include/RAT/DS/MCTrack.hh Source File
Ratpac-two
MCTrack.hh
1 
11 #ifndef __RAT_DS_MCTrack__
12 #define __RAT_DS_MCTrack__
13 
14 #include <TObject.h>
15 
16 #include <RAT/DS/MCTrackStep.hh>
17 #include <RAT/ListHelp.hh>
18 
19 namespace RAT {
20 namespace DS {
21 
22 class MCTrack : public TObject {
23  public:
24  MCTrack() : TObject() {}
25  virtual ~MCTrack() {}
26 
33  virtual Int_t GetID() const { return id; }
34  virtual void SetID(Int_t _id) { id = _id; }
35 
42  virtual Int_t GetParentID() const { return parentID; }
43  virtual void SetParentID(Int_t _parentID) { parentID = _parentID; }
44 
46  virtual Int_t GetPDGCode() const { return pdgcode; }
47  virtual void SetPDGCode(Int_t _pdgcode) { pdgcode = _pdgcode; }
48 
54  virtual const std::string &GetParticleName() const { return particleName; }
55  virtual void SetParticleName(const std::string &_particleName) { particleName = _particleName; }
56 
63  virtual MCTrackStep *GetMCTrackStep(Int_t i) { return &step[i]; }
64  virtual Int_t GetMCTrackStepCount() const { return step.size(); }
65  virtual MCTrackStep *AddNewMCTrackStep() {
66  step.resize(step.size() + 1);
67  return &step.back();
68  }
69  virtual void PruneMCTrackStep() { step.resize(0); }
70  virtual MCTrackStep *GetLastMCTrackStep() {
71  if (step.size() == 0) {
72  return NULL;
73  }
74  return &step.back();
75  }
76 
83  if (step.size() > 2) {
84  step[1] = step.back();
85  step.resize(2);
86  }
87  }
88 
90  virtual Double_t GetLength() const { return length; }
91  virtual void SetLength(Double_t _length) { length = _length; }
92 
94  virtual Double_t GetDepositedEnergy() const { return depositedEnergy; }
95  virtual void SetDepositedEnergy(Double_t _depositedEnergy) { depositedEnergy = _depositedEnergy; }
96 
97  ClassDef(MCTrack, 2);
98 
99  protected:
100  Int_t id;
101  Int_t parentID;
102  Int_t pdgcode;
103  Double_t length;
104  Double_t depositedEnergy;
105  std::string particleName;
106  std::vector<MCTrackStep> step;
107 };
108 
109 } // namespace DS
110 } // namespace RAT
111 
112 #endif
Definition: MCTrackStep.hh:29
Definition: MCTrack.hh:22
virtual Double_t GetDepositedEnergy() const
Definition: MCTrack.hh:94
virtual MCTrackStep * GetMCTrackStep(Int_t i)
Definition: MCTrack.hh:63
virtual Int_t GetID() const
Definition: MCTrack.hh:33
virtual Int_t GetPDGCode() const
Definition: MCTrack.hh:46
virtual void PruneIntermediateMCTrackSteps()
Definition: MCTrack.hh:82
virtual const std::string & GetParticleName() const
Definition: MCTrack.hh:54
virtual Double_t GetLength() const
Definition: MCTrack.hh:90
virtual Int_t GetParentID() const
Definition: MCTrack.hh:42
Definition: CCCrossSecMessenger.hh:29