GammaWare  Head Version for release 0.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AgataEventContainer.h
Go to the documentation of this file.
1 #ifndef Gw_AgataEventContainer
2 #define Gw_AgataEventContainer
3 
4 #ifndef ROOT_TClonesArray
5 #include "TClonesArray.h"
6 #endif
7 
8 #ifndef ROOT_TString
9 #include "TString.h"
10 #endif
11 
12 #include "GwLogMessage.h"
13 
14 #ifndef Gw_BaseEventContainer
15 #include "BaseEventContainer.h"
16 #endif
17 
18 
19 namespace Gw {
20 class TrackHit;
21 class StdHit;
26 {
27 
28 private :
29 
30  static const TString fgkTypeNameExt[]; // extention name of the different types
31  static TString fgTypeName[]; // name of the different types
32  static const Int_t fgkMaxNofTypeName; // Max number of the different types
33 
34 private:
35 
36  TClonesArray* fCurrentTrackList[4]; // current track list for each type of particles
37  TClonesArray* fCurrentHitList[4]; // current hit list for each type of particles
38 
39  TClonesArray* fTrackList; // track list to be read
40  TClonesArray* fHitList; // hit list to be read
41 
42  Int_t fNofBracnhes; // number of branches
43 
44 private:
45 
46  TString GetTrackBranchName(Option_t* type) const;
47  TString GetHitBranchName(Option_t* type) const;
48 
49 public:
50 
52  static const Char_t* GetTypeName(Int_t idx) { if (idx < fgkMaxNofTypeName) return fgTypeName[idx]; else return ""; }
53 
54 public:
56  virtual ~AgataEventContainer();
57 
59  TrackHit* NewTrackHit(Option_t* type = "Agata");
60 
62  StdHit* NewHit(Option_t* type = "Agata");
63 
65  TClonesArray* GetTrackList(Int_t ievent, Option_t* type = "Agata", Bool_t warn = true);
66 
68  TClonesArray* GetHitList(Int_t ievent, Option_t* type = "Agata", Bool_t warn = true);
69 
71  void ClearEvents();
72 
74  void FillHits(Option_t* type = "Agata");
75  void FillTracks(Option_t* type = "Agata");
76 
78  const Char_t* RegisterBranch(Option_t* type = "");
79 
81  Int_t GetNofBranches() const { return fNofBracnhes; }
82 
84  Int_t GetIndex(Option_t* type) const;
85 
86  ClassDef(AgataEventContainer,0) // event container
87 };
88 
89 
90 class StdHit : public TObject
91 {
92 private:
93  Float_t fX; // X position
94  Float_t fY; // Y position
95  Float_t fZ; // Z position
96 
97  Float_t fE; // Energy
98  Float_t fT; // Time
99 
100  Float_t fDX; // Error on X
101  Float_t fDY; // Error on Y
102  Float_t fDZ; // Error on Z
103 
104  Float_t fDE; // Error on E
105  Float_t fDT; // Error on T
106 
107 public:
108  StdHit(){fX=fY=fZ=fE=fT=fDX=fDY=fDZ=fDE=fDT=0.;}
109  virtual ~StdHit() {;}
110 
111  // reset
112  virtual void Reset() { fX = fY = fZ = fE = fT = fDX = fDY = fDZ = fDE = fDT = 0.; }
113 
115  virtual void SetX(Float_t x) { fX = x; }
116  virtual void SetY(Float_t y) { fY = y; }
117  virtual void SetZ(Float_t z) { fZ = z; }
118  virtual void SetE(Float_t e) { fE = e; }
119  virtual void SetT(Float_t t) { fT = t; }
120  virtual void SetXYZ(Float_t x, Float_t y, Float_t z) { fX=x; fY=y; fZ=z; }
121 
122  virtual void SetDX(Float_t dx) { fDX = dx; }
123  virtual void SetDY(Float_t dy) { fDY = dy; }
124  virtual void SetDZ(Float_t dz) { fDZ = dz; }
125  virtual void SetDXYZ(Float_t dx, Float_t dy, Float_t dz) { fDX=dx; fDY=dy; fDZ=dz; }
126 
127  virtual void SetDE(Float_t de) { fDE = de; }
128  virtual void SetDT(Float_t dt) { fDT = dt; }
129 
131  virtual Float_t GetX() const { return fX; }
132  virtual Float_t GetY() const { return fY; }
133  virtual Float_t GetZ() const { return fZ; }
134  virtual Float_t GetE() const { return fE; }
135  virtual Float_t GetT() const { return fT; }
136 
137  virtual Float_t GetDX() const { return fDX; }
138  virtual Float_t GetDY() const { return fDY; }
139  virtual Float_t GetDZ() const { return fDZ; }
140  virtual void GetDXYZ(Float_t &dx, Float_t &dy, Float_t &dz) const { dx=fDX; dy=fDY; dz = fDZ; }
141 
142  virtual Float_t GetDE() const { return fDE; }
143  virtual Float_t GetDT() const { return fDT; }
144 
145  ClassDef(StdHit,1) // event container
146 
147 };
148 
149 class TrackHit : public TObject
150 {
151  private:
152 
153  StdHit fHit; // contains first impact in detector and total energy deposited
154  TClonesArray* fTrackList; // contains all hits of the traces
155 
156  public:
157  TrackHit();
158  virtual ~TrackHit();
159 
161  Int_t GetNbHits() const;
162 
164  StdHit* NewHit();
165 
167  StdHit* GetHit(Int_t i = 0) const;
168 
170  void Reset() {fTrackList->Delete(); fHit.Reset();}
171 
173  virtual void SetX(Float_t x) { fHit.SetX(x); }
174  virtual void SetY(Float_t y) { fHit.SetY(y); }
175  virtual void SetZ(Float_t z) { fHit.SetZ(z); }
176  virtual void SetE(Float_t e) { fHit.SetE(e); }
177  virtual void SetT(Float_t t) { fHit.SetT(t); }
178  virtual void SetXYZ(Float_t x, Float_t y, Float_t z) { fHit.SetXYZ(x, y, z); }
179 
180  virtual void SetDX(Float_t dx) { fHit.SetDX(dx); }
181  virtual void SetDY(Float_t dy) { fHit.SetDY(dy); }
182  virtual void SetDZ(Float_t dz) { fHit.SetDZ(dz); }
183  virtual void SetDXYZ(Float_t dx, Float_t dy, Float_t dz) { fHit.SetDXYZ(dx, dy, dz); }
184 
185  virtual void SetDE(Float_t de) { fHit.SetDE(de); }
186  virtual void SetDT(Float_t dt) { fHit.SetDT(dt); }
187 
189  virtual Float_t GetX() const { return fHit.GetX(); }
190  virtual Float_t GetY() const { return fHit.GetY(); }
191  virtual Float_t GetZ() const { return fHit.GetZ(); }
192  virtual Float_t GetE() const { return fHit.GetE(); }
193  virtual Float_t GetT() const { return fHit.GetT(); }
194 
195  virtual Float_t GetDX() const { return fHit.GetDX(); }
196  virtual Float_t GetDY() const { return fHit.GetDY(); }
197  virtual Float_t GetDZ() const { return fHit.GetDZ(); }
198  virtual void GetDXYZ(Float_t &dx, Float_t &dy, Float_t &dz) const { fHit.GetDXYZ(dx, dy, dz); }
199 
200  virtual Float_t GetDE() const { return fHit.GetDE(); }
201  virtual Float_t GetDT() const { return fHit.GetDT(); }
202 
203  ClassDef(TrackHit,1) // event container
204 
205 };
206 
207 
208 } // end namespace
209 
210 #endif
AgataEventContainer class that contains agata event to be displayed.
virtual Float_t GetDX() const
virtual void SetE(Float_t e)
const Char_t * RegisterBranch(Option_t *type="")
Register branch, return name of type.
virtual void SetDX(Float_t dx)
virtual void SetT(Float_t t)
Int_t GetIndex(Option_t *type) const
Get index from type.
virtual Float_t GetY() const
static const Char_t * GetTypeName(Int_t idx)
Get type name.
virtual Float_t GetT() const
StdHit * NewHit()
Add a new hit to the track (filling mode). The Stack is emptied by calling Reset. ...
virtual Float_t GetY() const
virtual void GetDXYZ(Float_t &dx, Float_t &dy, Float_t &dz) const
virtual void SetZ(Float_t z)
virtual void SetDT(Float_t dt)
virtual Float_t GetZ() const
void FillTracks(Option_t *type="Agata")
virtual Float_t GetDE() const
virtual Float_t GetDY() const
TClonesArray * GetHitList(Int_t ievent, Option_t *type="Agata", Bool_t warn=true)
get array
virtual void SetY(Float_t y)
virtual void GetDXYZ(Float_t &dx, Float_t &dy, Float_t &dz) const
virtual void SetDY(Float_t dy)
virtual void SetX(Float_t x)
Setter position & energy.
virtual Float_t GetX() const
Setter position & energy.
header file for GwLogMessage.cpp
virtual Float_t GetT() const
virtual Float_t GetDY() const
virtual void SetDXYZ(Float_t dx, Float_t dy, Float_t dz)
virtual Float_t GetDX() const
virtual void SetXYZ(Float_t x, Float_t y, Float_t z)
virtual Float_t GetDT() const
virtual void SetDXYZ(Float_t dx, Float_t dy, Float_t dz)
virtual Float_t GetDZ() const
virtual void SetE(Float_t e)
BaseEventContainer base class that contains event for display.
StdHit * GetHit(Int_t i=0) const
Get Hit number i of the track (already added with NewHit !!)
virtual void SetY(Float_t y)
Int_t GetNofBranches() const
Get number of bracnhes.
virtual void SetZ(Float_t z)
Int_t GetNbHits() const
It returns the number of hits for this tracked particle.
virtual void SetX(Float_t x)
Setter position & energy.
void ClearEvents()
clear list or delete when dynamical memory allocation
void FillHits(Option_t *type="Agata")
Fill Event.
TClonesArray * GetTrackList(Int_t ievent, Option_t *type="Agata", Bool_t warn=true)
get array
TrackHit * NewTrackHit(Option_t *type="Agata")
add current track hit (added to current track hit list)
StdHit * NewHit(Option_t *type="Agata")
add current hit (added to current hit list)
virtual Float_t GetE() const
virtual void SetDE(Float_t de)
virtual void SetDY(Float_t dy)
void Reset()
Reset hits.
virtual void SetDT(Float_t dt)
virtual Float_t GetZ() const
virtual Float_t GetDZ() const
virtual Float_t GetDT() const
virtual Float_t GetE() const
virtual void SetDZ(Float_t dz)
virtual void SetT(Float_t t)
virtual Float_t GetDE() const
virtual void SetXYZ(Float_t x, Float_t y, Float_t z)
virtual void SetDE(Float_t de)
virtual void SetDZ(Float_t dz)
virtual void Reset()
virtual void SetDX(Float_t dx)
virtual Float_t GetX() const
Setter position & energy.