]>
Commit | Line | Data |
---|---|---|
c92725b7 | 1 | #ifndef ALIGENINFO_H |
2 | #define ALIGENINFO_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | ||
7 | ||
8 | ////////////////////////////////////////////////////////////////////////////// | |
9 | // Class AliGenInfo // | |
10 | // collect together MC info for comparison purposes - effieciency studies and so on// // | |
11 | // marian.ivanov@cern.ch // | |
12 | ////////////////////////////////////////////////////////////////////////////// | |
13 | ||
14 | ||
15 | ||
16 | //////////////////////////////////////////////////////////////////////// | |
17 | // | |
18 | // Start of implementation of the class AliTPCdigitRow | |
19 | // | |
20 | //////////////////////////////////////////////////////////////////////// | |
21 | ||
22 | #include <TParticle.h> | |
23 | #include "AliTrackReference.h" | |
24 | ||
25 | class TFile; | |
26 | class AliRunLoader; | |
27 | class AliStack; | |
28 | class AliTPCParam; | |
29 | ||
30 | const Int_t kgRowBytes = 32; | |
31 | ||
32 | class AliTPCdigitRow: public TObject { | |
33 | public: | |
34 | AliTPCdigitRow(); | |
35 | virtual ~AliTPCdigitRow(){;} | |
36 | void SetRow(Int_t row); | |
022044bf | 37 | Bool_t TestRow(Int_t row) const ; |
c92725b7 | 38 | AliTPCdigitRow & operator=(const AliTPCdigitRow &digOld); |
022044bf | 39 | Int_t RowsOn(Int_t upto=8*kgRowBytes) const; |
40 | Int_t Last() const; | |
41 | Int_t First() const ; | |
c92725b7 | 42 | void Reset(); |
43 | ||
d92975ba | 44 | private: |
c92725b7 | 45 | UChar_t fDig[kgRowBytes]; |
46 | ClassDef(AliTPCdigitRow,1) // container for digit pattern | |
47 | }; | |
48 | ||
49 | ||
50 | //////////////////////////////////////////////////////////////////////// | |
51 | // | |
52 | // Start of implementation of the class AliMCInfo | |
53 | // | |
54 | //////////////////////////////////////////////////////////////////////// | |
55 | ||
56 | class AliMCInfo: public TObject { | |
d92975ba | 57 | friend class AliGenInfoMaker; |
58 | friend class AliRecInfoMaker; | |
59 | friend class AliESDRecInfo; | |
c92725b7 | 60 | public: |
61 | AliMCInfo(); | |
022044bf | 62 | ~AliMCInfo(); |
63 | AliMCInfo(const AliMCInfo& info); | |
c92725b7 | 64 | void Update(); |
d92975ba | 65 | Int_t GetEventNr() const {return fEventNr;} |
66 | const AliTrackReference& GetTrackRef() const {return fTrackRef;} | |
67 | const AliTrackReference& GetTrackRefOut() const {return fTrackRefOut;} | |
68 | const AliTrackReference& GetTRdecay() const {return fTRdecay;} | |
69 | TParticle& GetParticle() {return fParticle;} | |
70 | Float_t TPCBetheBloch(Float_t bg); | |
71 | // | |
72 | Int_t GetPrimPart() const {return fPrimPart;} | |
73 | Float_t GetMass() const {return fMass;} | |
74 | Float_t GetCharge() const {return fCharge;} | |
75 | Int_t GetLabel() const {return fLabel;} | |
76 | ||
77 | Int_t GetMCtracks() const {return fMCtracks;} | |
78 | Int_t GetPdg() const {return fPdg;} | |
79 | const Float_t* GetDecayCoord() const {return fDecayCoord;} | |
80 | const Double_t* GetVDist() const {return fVDist;} | |
81 | ||
82 | Bool_t IsTPCdecay() const {return fTPCdecay;} | |
83 | ||
84 | Int_t GetRowsWithDigitsInn() const {return fRowsWithDigitsInn;} | |
85 | Int_t GetRowsWithDigits() const {return fRowsWithDigits;} | |
86 | Int_t GetRowsTrackLength() const {return fRowsTrackLength;} | |
87 | Float_t GetPrim() const { return fPrim;} | |
88 | ||
89 | AliTPCdigitRow & GetTPCRow() {return fTPCRow;} | |
90 | Int_t GetNTPCRef() const {return fNTPCRef;} | |
91 | Int_t GetNITSRef() const {return fNITSRef;} | |
92 | Int_t GetNTRDRef() const {return fNTRDRef;} | |
93 | Int_t GetNTOFRef() const {return fNTOFRef;} | |
94 | const TClonesArray *GetTPCReferences() const { return fTPCReferences;} | |
95 | const TClonesArray * GetTRDReferences() const { return fTRDReferences;} | |
96 | const TClonesArray * GetITSReferences() const { return fITSReferences;} | |
97 | const TClonesArray * GetTOFReferences() const { return fTOFReferences;} | |
98 | private: | |
c92725b7 | 99 | AliTrackReference fTrackRef; // track reference saved in the output tree |
100 | AliTrackReference fTrackRefOut; // decay track reference saved in the output tree | |
101 | AliTrackReference fTRdecay; // track reference at decay point | |
102 | // | |
103 | Int_t fPrimPart; // index of primary particle in TreeH | |
104 | TParticle fParticle; // generated particle | |
105 | Float_t fMass; // mass of the particle | |
106 | Float_t fCharge; // | |
107 | Int_t fLabel; // track label | |
108 | Int_t fEventNr; // event number | |
109 | Int_t fMCtracks; // indication of how many times the track is retuturned back | |
110 | Int_t fPdg; //pdg code | |
111 | Float_t fDecayCoord[3]; // position of particle decay | |
112 | Double_t fVDist[4]; //distance of the particle vertex from primary vertex | |
113 | Bool_t fTPCdecay; //indicates decay in TPC | |
114 | Int_t fRowsWithDigitsInn; // number of rows with digits in the inner sectors | |
115 | Int_t fRowsWithDigits; // number of rows with digits in the outer sectors | |
116 | Int_t fRowsTrackLength; // last - first row with digit | |
117 | Float_t fPrim; // theoretical dedx in tpc according particle momenta and mass | |
118 | AliTPCdigitRow fTPCRow; // information about digits row pattern | |
119 | Int_t fNTPCRef; // tpc references counter | |
120 | Int_t fNITSRef; // ITS references counter | |
121 | Int_t fNTRDRef; // TRD references counter | |
122 | Int_t fNTOFRef; // TOF references counter | |
123 | TClonesArray * fTPCReferences; //containner with all track references -in the TPC | |
124 | TClonesArray * fITSReferences; //container with ITS references | |
125 | TClonesArray * fTRDReferences; //container with TRD references | |
126 | TClonesArray * fTOFReferences; //container with TRD references | |
127 | // | |
d92975ba | 128 | ClassDef(AliMCInfo,1); // container for |
c92725b7 | 129 | }; |
130 | ||
131 | ||
132 | ||
133 | class AliGenV0Info: public TObject { | |
134 | public: | |
022044bf | 135 | AliGenV0Info(); // |
d92975ba | 136 | void Update(Float_t vertex[3]); |
137 | AliMCInfo & GetPlus() {return fMCd;} | |
138 | AliMCInfo & GetMinus() {return fMCm;} | |
139 | TParticle & GetMopther() {return fMotherP;} | |
140 | Double_t GetMCDist1() const { return fMCDist1;} | |
141 | Double_t GetMCDist2() const {return fMCDist2;} | |
142 | const Double_t* GetMCPdr() const {return fMCPdr;} | |
143 | const Double_t* GetMCPd() const {return fMCPd;} | |
144 | const Double_t* GetMCX() const {return fMCX;} | |
145 | // const Double_t fMCXr; | |
146 | // | |
147 | // Double_t fMCPm[3]; | |
148 | // Double_t fMCAngle[3]; | |
149 | // Double_t fMCRr; | |
150 | // Double_t fMCR; | |
151 | // Int_t fPdg[2]; | |
152 | // Int_t fLab[2]; | |
153 | // // | |
154 | // Double_t fInvMass; | |
155 | // Float_t fPointAngleFi; | |
156 | // Float_t fPointAngleTh; | |
157 | // Float_t fPointAngle; | |
158 | ||
159 | void SetInfoP(AliMCInfo &plus) {fMCd=plus;} | |
160 | void SetInfoM(AliMCInfo &minus){fMCm=minus;} | |
161 | void SetMother(TParticle&mother){fMotherP=mother;} | |
162 | private: | |
163 | AliMCInfo fMCd; //info about daughter particle - second particle for V0 | |
164 | AliMCInfo fMCm; //info about mother particle - first particle for V0 | |
165 | TParticle fMotherP; //particle info about mother particle | |
c92725b7 | 166 | Double_t fMCDist1; //info about closest distance according closest MC - linear DCA |
167 | Double_t fMCDist2; //info about closest distance parabolic DCA | |
168 | // | |
d92975ba | 169 | Double_t fMCPdr[3]; //momentum at vertex daughter - according approx at DCA |
170 | Double_t fMCPd[4]; //exact momentum from MC info | |
171 | Double_t fMCX[3]; //exact position of the vertex | |
172 | Double_t fMCXr[3]; //rec. position according helix | |
c92725b7 | 173 | // |
174 | Double_t fMCPm[3]; //momentum at the vertex mother | |
175 | Double_t fMCAngle[3]; //three angels | |
176 | Double_t fMCRr; // rec position of the vertex | |
177 | Double_t fMCR; //exact r position of the vertex | |
178 | Int_t fPdg[2]; //pdg code of mother and daugter particles | |
179 | Int_t fLab[2]; //MC label of the partecle | |
180 | // | |
181 | Double_t fInvMass; //reconstructed invariant mass - | |
182 | Float_t fPointAngleFi; //point angle fi | |
183 | Float_t fPointAngleTh; //point angle theta | |
184 | Float_t fPointAngle; //point angle full | |
185 | // | |
186 | ClassDef(AliGenV0Info,1) // container for | |
187 | }; | |
188 | ||
189 | ||
190 | ||
191 | class AliGenKinkInfo: public TObject { | |
192 | public: | |
022044bf | 193 | AliGenKinkInfo(); //default cosntructor |
194 | void Update(); // put some derived info to special field | |
c92725b7 | 195 | Float_t GetQt(); // |
d92975ba | 196 | AliMCInfo & GetPlus() {return fMCd;} |
197 | AliMCInfo & GetMinus() {return fMCm;} | |
198 | void SetInfoDaughter(AliMCInfo &daughter) {fMCd=daughter;} | |
199 | void SetInfoMother(AliMCInfo &mother){fMCm=mother;} | |
200 | private: | |
022044bf | 201 | AliMCInfo fMCd; //info about daughter particle - second particle for V0 |
202 | AliMCInfo fMCm; //info about mother particle - first particle for V0 | |
c92725b7 | 203 | Double_t fMCDist1; //info about closest distance according closest MC - linear DCA |
204 | Double_t fMCDist2; //info about closest distance parabolic DCA | |
205 | // | |
206 | Double_t fMCPdr[3]; //momentum at vertex daughter - according approx at DCA | |
207 | Double_t fMCPd[4]; //exact momentum from MC info | |
208 | Double_t fMCX[3]; //exact position of the vertex | |
209 | Double_t fMCXr[3]; //rec. position according helix | |
210 | // | |
211 | Double_t fMCPm[3]; //momentum at the vertex mother | |
212 | Double_t fMCAngle[3]; //three angels | |
213 | Double_t fMCRr; // rec position of the vertex | |
214 | Double_t fMCR; //exact r position of the vertex | |
215 | Int_t fPdg[2]; //pdg code of mother and daugter particles | |
216 | Int_t fLab[2]; //MC label of the partecle | |
217 | ClassDef(AliGenKinkInfo,1) // container for | |
218 | }; | |
219 | ||
c92725b7 | 220 | #endif |