er  dev
ERN15B11Detector.h
1 #ifndef ERN15B11DETECTOR_H
2 #define ERN15B11DETECTOR_H
3 
4 #include <FairDetector.h> // mother class
5 
6 // STD
7 #include <map>
8 
9 // ROOT
10 #include <TClonesArray.h>
11 #include <TLorentzVector.h>
12 #include <TArrayI.h>
13 
14 // Project
15 #include "ERMCTrack.h" // for ExpertTrackingStatus
16 
17 class ERPoint;
18 
19 struct stcNodeSig {
20  Short_t iLayer;
21  Short_t iDetContainer;
22  Short_t iDetGasPart;
23  Short_t iSemi;
24 };
25 
26 class ERN15B11Detector : public FairDetector
27 {
28 public:
30  ERN15B11Detector(const char* Name, Bool_t Active, Int_t DetId = 0);
31  virtual ~ERN15B11Detector();
32 
33  virtual void ConstructGeometry();
34  virtual Bool_t CheckIfSensitive(std::string name);
35 
36  virtual Bool_t ProcessHits(FairVolume* v = 0);
37  virtual void EndOfEvent();
38  virtual void Register();
39  virtual TClonesArray* GetCollection(Int_t iColl) const;
40  virtual void Reset();
41 
42  //void AddSensitiveVolumeName(std::string p_name);
43 
44 private:
45 
49  Bool_t GetCurNodeSig(const char* nodePath) const;
50 
51 
52  std::map<Int_t, TClonesArray*> mOutputPoints;
53 
54 
55  void StartNewPoint(void);
56  void FinishNewPoint(TClonesArray* p_collection);
57  ERPoint* AddPoint(TClonesArray* p_collection);
58 
59  static struct stcNodeSig mCurNodeSig;
60  static Int_t mCurNodeUID;
61 
62 
63 private:
64 
65  //TODO check!
66  /* current step information*/
67  Int_t fEventID;
68  Int_t fTrackID;
69  Int_t fMot0TrackID;
70  Double_t fMass;
71  TLorentzVector fPosIn;
72  TLorentzVector fPosOut;
73  TLorentzVector fCurPosIn;
74  TVector3 fPosInLocal;
75  TLorentzVector fMomIn;
76  TLorentzVector fMomOut;
77  TLorentzVector fCurMomIn;
78  Double32_t fTimeIn;
79  Double32_t fTimeOut;
80  Double32_t fTrackLength;
81  Double32_t fELoss;
82  Int_t fVolNb;
83  ExpertTrackingStatus fTrackStatus;
84  TArrayI fProcessesID;
85 
86 
87  ClassDef(ERN15B11Detector, 1);
88 };
89 
90 #endif // ERN15B11DETECTOR_H
Double32_t fTrackLength
track length from his origin
ExpertTrackingStatus fTrackStatus
curren track stutus (transport, stop, disappeared, ...)
Int_t fTrackID
track index
TLorentzVector fMomIn
point start momentum
Int_t fEventID
event index
TLorentzVector fCurPosIn
current step position
TLorentzVector fMomOut
point start momentum
TVector3 fPosInLocal
point position in sensetive volume CS
Int_t fMot0TrackID
0th mother track index
TLorentzVector fPosOut
point finish position
The data class for storing pieces of charged tracks in sensitive volumes in NeuRad.
Definition: ERPoint.h:23
Int_t fVolNb
number of fiber in pixel
TArrayI fProcessesID
VMC prcess IDs in step.
TLorentzVector fCurMomIn
current step momentum
Double_t fMass
mass
Double32_t fTimeOut
point finish time
TLorentzVector fPosIn
point start position
Double32_t fTimeIn
point start time
Double32_t fELoss
energy loss