ae7d73d2 |
1 | |
2 | class AliESDComparisonDraw: public AliComparisonDraw{ |
3 | public: |
4 | AliESDComparisonDraw(){fTree = 0;} |
5 | void SetIO(const char *fname = "cmpESDTracks.root"); |
6 | ClassDef(AliESDComparisonDraw,1) |
7 | }; |
8 | ClassImp(AliESDComparisonDraw) |
9 | |
10 | |
11 | ///////////////////////////////////////////////////////////////////////// |
12 | class AliESDRecInfo: public TObject { |
13 | |
14 | public: |
15 | AliESDRecInfo(){} |
16 | ~AliESDRecInfo(){} |
51ad6848 |
17 | void UpdatePoints(AliESDtrack* track); |
ae7d73d2 |
18 | void Update(AliMCInfo* info,AliTPCParam * par, Bool_t reconstructed); |
d6355c8c |
19 | void Reset(); |
20 | Float_t fTPCPoints[10]; //start , biggest end points,max density .. density at the last 30 pad-rows |
ae7d73d2 |
21 | Double_t fTPCinR0[5]; //generated position of the track at inner tpc - radius [3] and fi [4] |
22 | Double_t fTPCinR1[5]; //reconstructed postion of the track - radius [3] and fi [ |
23 | Double_t fTPCinP0[5]; //generated position of the track at inner tpc |
24 | Double_t fTPCinP1[5]; //reconstructed postion of the track |
25 | Double_t fTPCAngle0[2]; // generated angle |
26 | Double_t fTPCAngle1[2]; //refconstructed angle |
27 | Double_t fTPCDelta[5]; // deltas |
28 | Double_t fTPCPools[5]; // pools |
29 | Double_t fITSinR0[5]; //generated position of the track at inner tpc |
30 | Double_t fITSinR1[5]; //reconstructed postion of the track |
31 | Double_t fITSinP0[5]; //generated position of the track at inner tpc |
32 | Double_t fITSinP1[5]; //reconstructed postion of the track |
33 | Double_t fITSAngle0[2]; // generated angle |
34 | Double_t fITSAngle1[2]; //refconstructed angle |
35 | Double_t fITSDelta[5]; // deltas |
36 | Double_t fITSPools[5]; // pools |
37 | AliESDtrack fESDTrack; // tpc track |
51ad6848 |
38 | AliITStrackMI fITStrack; //its track |
ae7d73d2 |
39 | AliTRDtrack fTRDtrack; //its track |
51ad6848 |
40 | Float_t fBestTOFmatch; //best matching between times |
ae7d73d2 |
41 | Float_t fTRLocalCoord[3]; //local coordinates of the track ref. |
42 | Int_t fReconstructed; //flag if track was reconstructed |
43 | Int_t fFake; // fake track |
44 | Int_t fMultiple; // number of reconstructions |
45 | Bool_t fTPCOn; // TPC refitted inward |
51ad6848 |
46 | Int_t fStatus[4]; // status -0 not found - 1 -only in - 2 -in-out -3 -in -out-refit |
ae7d73d2 |
47 | Bool_t fITSOn; // ITS refitted inward |
48 | Bool_t fTRDOn; // ITS refitted inward |
49 | Float_t fDeltaP; //delta of momenta |
d6355c8c |
50 | Double_t fSign; // sign |
51 | Int_t fLabels[2]; // labels |
52 | ClassDef(AliESDRecInfo,2) // container for |
ae7d73d2 |
53 | }; |
54 | ClassImp(AliESDRecInfo) |
55 | |
56 | void AliESDRecInfo::Reset() |
57 | { |
58 | fMultiple =0; |
59 | fFake =0; |
60 | fReconstructed=0; |
61 | } |
62 | |
63 | |
64 | ///////////////////////////////////////////////////////// |
65 | ///////////////////////////////////////////////////////// |
66 | ///////////////////////////////////////////////////////// |
67 | |
68 | |
69 | class AliESDRecV0Info: public TObject { |
70 | public: |
71 | void Update(Float_t vertex[3]); |
72 | AliESDRecInfo fT1; //track1 |
73 | AliESDRecInfo fT2; //track2 |
74 | Double_t fDist1; //info about closest distance according closest MC - linear DCA |
75 | Double_t fDist2; //info about closest distance parabolic DCA |
76 | Double_t fInvMass; //reconstructed invariant mass - |
77 | // |
78 | Double_t fPdr[3]; //momentum at vertex daughter - according approx at DCA |
79 | Double_t fXr[3]; //rec. position according helix |
80 | // |
f007cb5f |
81 | Double_t fRs[2]; // minimum radius in rphi intersection |
51ad6848 |
82 | Double_t fDistMinR; // distance at minimal radius |
ae7d73d2 |
83 | Double_t fPm[3]; //momentum at the vertex mother |
84 | Double_t fAngle[3]; //three angles |
85 | Double_t fRr; // rec position of the vertex |
86 | Int_t fLab[2]; //MC label of the partecle |
87 | Float_t fPointAngleFi; //point angle fi |
88 | Float_t fPointAngleTh; //point angle theta |
89 | Float_t fPointAngle; //point angle full |
51ad6848 |
90 | Int_t fV0Status; // status of the kink |
91 | AliESDV0MI fV0tpc; // Vo information from reconsturction according TPC |
92 | AliESDV0MI fV0its; // Vo information from reconsturction according ITS |
93 | AliESDV0MI fV0rec; // V0 information form the reconstruction |
94 | Int_t fMultiple; |
95 | Int_t fV0Multiple; |
96 | Int_t fRecStatus; // status form the reconstuction |
ae7d73d2 |
97 | ClassDef(AliESDRecV0Info,1) // container for |
98 | }; |
99 | |
100 | ClassImp(AliESDRecV0Info) |
101 | |
102 | |
51ad6848 |
103 | class AliESDRecKinkInfo: public TObject { |
104 | public: |
105 | void Update(); |
106 | AliESDRecInfo fT1; //track1 |
107 | AliESDRecInfo fT2; //track2 |
108 | AliESDkink fKink; //kink |
109 | Double_t fDist1; //info about closest distance according closest MC - linear DCA |
110 | Double_t fDist2; //info about closest distance parabolic DCA |
111 | Double_t fInvMass; //reconstructed invariant mass - |
112 | // |
113 | Double_t fPdr[3]; //momentum at vertex daughter - according approx at DCA |
114 | Double_t fXr[3]; //rec. position according helix |
115 | // |
116 | Double_t fPm[3]; //momentum at the vertex mother |
117 | Double_t fAngle[3]; //three angles |
118 | Double_t fRr; // rec position of the vertex |
119 | Double_t fMinR; // minimum radius in rphi intersection |
120 | Double_t fDistMinR; // distance at minimal radius |
121 | Int_t fLab[2]; //MC label of the partecle |
122 | Float_t fPointAngleFi; //point angle fi |
123 | Float_t fPointAngleTh; //point angle theta |
124 | Float_t fPointAngle; //point angle full |
125 | Int_t fStatus; //status -tracks |
126 | Int_t fRecStatus; //kink -status- 0 - not found 1-good - fake |
127 | Int_t fMultiple; |
128 | Int_t fKinkMultiple; |
129 | ClassDef(AliESDRecKinkInfo,1) // container for |
130 | }; |
131 | |
132 | ClassImp(AliESDRecKinkInfo) |
133 | |
134 | |
ae7d73d2 |
135 | |
136 | //////////////////////////////////////////////////////////////////////// |
137 | // |
138 | // Start of implementation of the class ESDCmpTr |
139 | // |
140 | //////////////////////////////////////////////////////////////////////// |
141 | |
142 | class ESDCmpTr { |
143 | |
144 | public: |
145 | ESDCmpTr(); |
146 | ESDCmpTr(const char* fnGenTracks, |
147 | const char* fnCmpRes ="cmpTracks.root", |
148 | const char* fnGalice ="galice.root", Int_t direction=0, |
149 | Int_t nEvents=1, Int_t firstEvent=0); |
150 | virtual ~ESDCmpTr(); |
151 | void Reset(); |
152 | Int_t Exec(); |
153 | Int_t Exec(Int_t nEvents, Int_t firstEventNr); |
154 | Int_t SetIO(); |
155 | Int_t SetIO(Int_t eventNr ); |
156 | void CreateTreeCmp(); |
157 | void CloseOutputFile(); |
158 | Bool_t ConnectGenTree(); |
159 | Int_t TreeGenLoop(Int_t eventNr); |
160 | Int_t TreeTLoop(); |
51ad6848 |
161 | Int_t BuildKinkInfo0(Int_t eventNr); // build kink info 0 |
162 | Int_t BuildV0Info(Int_t eventNr); // build kink info 0 |
f007cb5f |
163 | void MakePoints(AliESDtrack * track, AliPointsMI &points); |
ae7d73d2 |
164 | void SetFirstEventNr(Int_t i) {fFirstEventNr = i;} |
165 | void SetNEvents(Int_t i) {fNEvents = i;} |
166 | void SetDebug(Int_t level) {fDebug = level;} |
167 | |
168 | // tmp method, should go to TrackReferenceESD |
169 | static TVector3 TR2Local(AliTrackReference *trackRef, |
170 | AliTPCParam *paramTPC); |
171 | |
172 | private: |
173 | |
174 | Int_t fEventNr; //! current event number |
175 | Int_t fNEvents; //! number of events to process |
176 | Int_t fFirstEventNr; //! first event to process |
177 | // |
178 | char fFnCmp[1000]; //! output file name with cmp tracks |
179 | TFile *fFileCmp; //! output file with cmp tracks |
180 | TTree *fTreeCmp; //! output tree with cmp tracks |
51ad6848 |
181 | TTree *fTreeCmpKinks; //! output tree with cmp Kinks |
182 | TTree *fTreeCmpV0; //! output tree with cmp V0 |
ae7d73d2 |
183 | // |
184 | char fFnGenTracks[1000]; //! input file name with gen tracks |
185 | TFile *fFileGenTracks; |
186 | TTree *fTreeGenTracks; |
51ad6848 |
187 | TTree *fTreeGenKinks; // tree with gen kinks |
188 | TTree *fTreeGenV0; // tree with gen V0 |
ae7d73d2 |
189 | // |
190 | // |
191 | Int_t fDirection; |
192 | // |
193 | AliRunLoader * fLoader; //! pointer to the run loader |
194 | //TTree *fTreeRecTracks; //! tree with reconstructed tracks |
195 | // |
f007cb5f |
196 | Short_t *fIndexRecTracks; //! index of particle label in the TreeT_ESD |
197 | Short_t *fFakeRecTracks; //! number of fake tracks |
198 | Short_t *fMultiRecTracks; //! number of multiple reconstructions |
ae7d73d2 |
199 | // |
f007cb5f |
200 | Short_t *fIndexRecKinks; //! index of particle label in treeesd |
201 | Short_t *fMultiRecKinks; //! number of multiple reconstructions |
202 | Short_t *fSignedKinks; //! indicator that kink was not fake |
51ad6848 |
203 | // |
f007cb5f |
204 | Short_t *fIndexRecV0; //! index of particle label in treeesd |
205 | Short_t *fMultiRecV0; //! number of multiple reconstructions |
206 | Short_t *fSignedV0; //! indicator that kink was not fake |
51ad6848 |
207 | // |
208 | TObjArray *fRecArray; // container with rec infos |
ae7d73d2 |
209 | AliESD *fEvent; //!event |
ae7d73d2 |
210 | // |
211 | AliTPCParam* fParamTPC; //! AliTPCParam |
212 | Int_t fNParticles; //! number of particles in the input tree genTracks |
213 | Int_t fDebug; //! debug flag |
214 | Int_t fNextTreeGenEntryToRead; //! last entry already read from genTracks tree |
51ad6848 |
215 | Int_t fNextKinkToRead; //! last entry already read from genKinks tree |
216 | Int_t fNextV0ToRead; //! last entry already read from genV0 tree |
ae7d73d2 |
217 | // |
218 | AliMCInfo* fMCInfo; //! MC information writen per particle |
51ad6848 |
219 | AliGenKinkInfo* fGenKinkInfo; //! MC information writen per Kink |
220 | AliGenV0Info* fGenV0Info; //! MC information writen per Kink |
ae7d73d2 |
221 | AliESDRecInfo* fRecInfo; //! Rec. information writen per particle |
51ad6848 |
222 | AliESDRecKinkInfo* fRecKinkInfo; //! reconstructed kink info |
223 | AliESDRecV0Info* fRecV0Info; //! reconstructed kink info |
ae7d73d2 |
224 | // |
225 | |
226 | ClassDef(ESDCmpTr,1) // class which creates and fills tree with ESDGenTrack objects |
227 | }; |
228 | ClassImp(ESDCmpTr) |
229 | |
230 | |
231 | |