ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtSiArray.h
Go to the documentation of this file.
1 #ifndef AtSIARRAY_H
2 #define AtSIARRAY_H
3 
4 #include <FairDetector.h>
5 
6 #include <Rtypes.h>
7 #include <TLorentzVector.h>
8 #include <TString.h>
9 #include <TVector3.h>
10 
11 #include <string>
12 #include <utility>
13 
14 class AtSiPoint;
15 class FairVolume;
16 class TClonesArray;
17 class TBuffer;
18 class TClass;
19 class TList;
20 class TMemberInspector;
21 
22 class AtSiArray : public FairDetector {
23 
24 public:
29  AtSiArray(const char *Name, Bool_t Active);
30 
32  AtSiArray();
33 
35  virtual ~AtSiArray();
36 
38  virtual void Initialize();
39 
43  virtual Bool_t ProcessHits(FairVolume *v = 0);
44 
46  virtual void Register();
47 
49  virtual TClonesArray *GetCollection(Int_t iColl) const;
50 
52  virtual void Reset();
53 
58  virtual void Print(Option_t *option = "") const;
59 
61  void ConstructGeometry();
62 
63  Bool_t CheckIfSensitive(std::string name);
64 
68  AtSiPoint *
69  AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss);
70 
71  AtSiPoint *AddHit(Int_t trackID, Int_t detID, TString VolName, Int_t detCopyID, TVector3 posIn, TVector3 pos_out,
72  TVector3 momIn, TVector3 momOut, Double_t time, Double_t length, Double_t eLoss, Double_t EIni,
73  Double_t AIni, Int_t A, Int_t Z);
74 
75  std::pair<Int_t, Int_t> DecodePdG(Int_t PdG_Code);
76 
81  virtual void CopyClones(TClonesArray *cl1, TClonesArray *cl2, Int_t offset) { ; }
82  virtual void SetSpecialPhysicsCuts() { ; }
83  virtual void EndOfEvent();
84  virtual void FinishPrimary() { ; }
85  virtual void FinishRun() { ; }
86  virtual void BeginPrimary() { ; }
87  virtual void PostTrack() { ; }
88  virtual void PreTrack() { ; }
89  virtual void BeginEvent() { ; }
90 
91 private:
95  // Int_t fTrackID; //! track index
96  // Int_t fVolumeID; //! volume id
97  TLorentzVector fPos;
98  TLorentzVector fMom;
99  // Double32_t fTime; //! time
100  // Double32_t fLength; //! length
101  // Double32_t fELoss; //! energy loss
102 
103  Int_t fTrackID;
104  Int_t fVolumeID;
105  Int_t fDetCopyID{};
106  Int_t fsector{};
107  TLorentzVector fPosIn, fPosOut;
108  TLorentzVector fMomIn, fMomOut;
109  Double32_t fTime_in{};
110  Double32_t fTime_out{};
111  Double32_t fTime;
112  Double32_t fLength_in{};
113  Double32_t fLength_out{};
114  Double32_t fLength;
115  Double32_t fELoss;
116  Int_t fPosIndex;
117  TClonesArray *fTraCollection{};
118  Bool_t kGeoSaved{};
119  TList *flGeoPar{};
120  TString fVolName;
121  Double32_t fELossAcc;
122  TLorentzVector InPos;
123 
126  TClonesArray *fAtSiArrayPointCollection;
127 
128  AtSiArray(const AtSiArray &);
129  AtSiArray &operator=(const AtSiArray &);
130 
131  ClassDef(AtSiArray, 1)
132 };
133 
134 #endif // AtSIARRAY_H
AtSiArray::PostTrack
virtual void PostTrack()
Definition: AtSiArray.h:87
AtSiArray::CheckIfSensitive
Bool_t CheckIfSensitive(std::string name)
Definition: AtSiArray.cxx:243
AtSiArray::AtSiArray
AtSiArray()
Definition: AtSiArray.cxx:24
AtSiArray::BeginEvent
virtual void BeginEvent()
Definition: AtSiArray.h:89
AtSiArray
Definition: AtSiArray.h:22
AtSiArray::PreTrack
virtual void PreTrack()
Definition: AtSiArray.h:88
AtSiArray::FinishPrimary
virtual void FinishPrimary()
Definition: AtSiArray.h:84
AtSiArray::Reset
virtual void Reset()
Definition: AtSiArray.cxx:218
AtSiArray::CopyClones
virtual void CopyClones(TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
Definition: AtSiArray.h:81
AtSiArray::EndOfEvent
virtual void EndOfEvent()
Definition: AtSiArray.cxx:191
AtSiArray::SetSpecialPhysicsCuts
virtual void SetSpecialPhysicsCuts()
Definition: AtSiArray.h:82
AtSiArray::ProcessHits
virtual Bool_t ProcessHits(FairVolume *v=0)
Definition: AtSiArray.cxx:53
AtSiArray::ConstructGeometry
void ConstructGeometry()
Definition: AtSiArray.cxx:229
AtSiPoint
Definition: AtSiPoint.h:14
AtSiArray::Initialize
virtual void Initialize()
Definition: AtSiArray.cxx:46
AtSiArray::AddHit
AtSiPoint * AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss)
Definition: AtSiArray.cxx:254
AtSiArray::Print
virtual void Print(Option_t *option="") const
Definition: AtSiArray.cxx:223
AtSiArray::~AtSiArray
virtual ~AtSiArray()
Definition: AtSiArray.cxx:38
AtSiArray::Register
virtual void Register()
Definition: AtSiArray.cxx:197
AtSiArray::BeginPrimary
virtual void BeginPrimary()
Definition: AtSiArray.h:86
AtSiArray::GetCollection
virtual TClonesArray * GetCollection(Int_t iColl) const
Definition: AtSiArray.cxx:209
AtSiArray::FinishRun
virtual void FinishRun()
Definition: AtSiArray.h:85
AtSiArray::DecodePdG
std::pair< Int_t, Int_t > DecodePdG(Int_t PdG_Code)
Definition: AtSiArray.cxx:280