New comparison macros (M.Ivanov)
[u/mrichter/AliRoot.git] / STEER / AliESDComparisonMI.h
CommitLineData
ae7d73d2 1
2class AliESDComparisonDraw: public AliComparisonDraw{
3public:
4 AliESDComparisonDraw(){fTree = 0;}
5 void SetIO(const char *fname = "cmpESDTracks.root");
6 ClassDef(AliESDComparisonDraw,1)
7};
8ClassImp(AliESDComparisonDraw)
9
10
11/////////////////////////////////////////////////////////////////////////
12class AliESDRecInfo: public TObject {
13
14public:
15 AliESDRecInfo(){}
16 ~AliESDRecInfo(){}
17 //
18 void Update(AliMCInfo* info,AliTPCParam * par, Bool_t reconstructed);
19 Double_t fTPCinR0[5]; //generated position of the track at inner tpc - radius [3] and fi [4]
20 Double_t fTPCinR1[5]; //reconstructed postion of the track - radius [3] and fi [
21 Double_t fTPCinP0[5]; //generated position of the track at inner tpc
22 Double_t fTPCinP1[5]; //reconstructed postion of the track
23 Double_t fTPCAngle0[2]; // generated angle
24 Double_t fTPCAngle1[2]; //refconstructed angle
25 Double_t fTPCDelta[5]; // deltas
26 Double_t fTPCPools[5]; // pools
27 Double_t fITSinR0[5]; //generated position of the track at inner tpc
28 Double_t fITSinR1[5]; //reconstructed postion of the track
29 Double_t fITSinP0[5]; //generated position of the track at inner tpc
30 Double_t fITSinP1[5]; //reconstructed postion of the track
31 Double_t fITSAngle0[2]; // generated angle
32 Double_t fITSAngle1[2]; //refconstructed angle
33 Double_t fITSDelta[5]; // deltas
34 Double_t fITSPools[5]; // pools
35 AliESDtrack fESDTrack; // tpc track
36 AliITStrackV2 fITStrack; //its track
37 AliTRDtrack fTRDtrack; //its track
38 Float_t fTRLocalCoord[3]; //local coordinates of the track ref.
39 Int_t fReconstructed; //flag if track was reconstructed
40 Int_t fFake; // fake track
41 Int_t fMultiple; // number of reconstructions
42 Bool_t fTPCOn; // TPC refitted inward
43 Bool_t fITSOn; // ITS refitted inward
44 Bool_t fTRDOn; // ITS refitted inward
45 Float_t fDeltaP; //delta of momenta
46 void Reset();
47 ClassDef(AliESDRecInfo,1) // container for
48};
49ClassImp(AliESDRecInfo)
50
51void AliESDRecInfo::Reset()
52{
53 fMultiple =0;
54 fFake =0;
55 fReconstructed=0;
56}
57
58
59/////////////////////////////////////////////////////////
60/////////////////////////////////////////////////////////
61/////////////////////////////////////////////////////////
62
63
64class AliESDRecV0Info: public TObject {
65public:
66 void Update(Float_t vertex[3]);
67 AliESDRecInfo fT1; //track1
68 AliESDRecInfo fT2; //track2
69 Double_t fDist1; //info about closest distance according closest MC - linear DCA
70 Double_t fDist2; //info about closest distance parabolic DCA
71 Double_t fInvMass; //reconstructed invariant mass -
72 //
73 Double_t fPdr[3]; //momentum at vertex daughter - according approx at DCA
74 Double_t fXr[3]; //rec. position according helix
75 //
76 Double_t fPm[3]; //momentum at the vertex mother
77 Double_t fAngle[3]; //three angles
78 Double_t fRr; // rec position of the vertex
79 Int_t fLab[2]; //MC label of the partecle
80 Float_t fPointAngleFi; //point angle fi
81 Float_t fPointAngleTh; //point angle theta
82 Float_t fPointAngle; //point angle full
83 ClassDef(AliESDRecV0Info,1) // container for
84};
85
86ClassImp(AliESDRecV0Info)
87
88
89
90////////////////////////////////////////////////////////////////////////
91//
92// Start of implementation of the class ESDCmpTr
93//
94////////////////////////////////////////////////////////////////////////
95
96class ESDCmpTr {
97
98public:
99 ESDCmpTr();
100 ESDCmpTr(const char* fnGenTracks,
101 const char* fnCmpRes ="cmpTracks.root",
102 const char* fnGalice ="galice.root", Int_t direction=0,
103 Int_t nEvents=1, Int_t firstEvent=0);
104 virtual ~ESDCmpTr();
105 void Reset();
106 Int_t Exec();
107 Int_t Exec(Int_t nEvents, Int_t firstEventNr);
108 Int_t SetIO();
109 Int_t SetIO(Int_t eventNr );
110 void CreateTreeCmp();
111 void CloseOutputFile();
112 Bool_t ConnectGenTree();
113 Int_t TreeGenLoop(Int_t eventNr);
114 Int_t TreeTLoop();
115 void SetFirstEventNr(Int_t i) {fFirstEventNr = i;}
116 void SetNEvents(Int_t i) {fNEvents = i;}
117 void SetDebug(Int_t level) {fDebug = level;}
118
119// tmp method, should go to TrackReferenceESD
120 static TVector3 TR2Local(AliTrackReference *trackRef,
121 AliTPCParam *paramTPC);
122
123private:
124
125 Int_t fEventNr; //! current event number
126 Int_t fNEvents; //! number of events to process
127 Int_t fFirstEventNr; //! first event to process
128 //
129 char fFnCmp[1000]; //! output file name with cmp tracks
130 TFile *fFileCmp; //! output file with cmp tracks
131 TTree *fTreeCmp; //! output tree with cmp tracks
132 //
133 char fFnGenTracks[1000]; //! input file name with gen tracks
134 TFile *fFileGenTracks;
135 TTree *fTreeGenTracks;
136 //
137 //
138 Int_t fDirection;
139 //
140 AliRunLoader * fLoader; //! pointer to the run loader
141 //TTree *fTreeRecTracks; //! tree with reconstructed tracks
142 //
143 Int_t *fIndexRecTracks; //! index of particle label in the TreeT_ESD
144 Int_t *fFakeRecTracks; //! number of fake tracks
145 Int_t *fMultiRecTracks; //! number of multiple reconstructions
146 //
147 TObjArray * fTracks; //!container with tracks
148 AliESD *fEvent; //!event
149
150 //
151 AliTPCParam* fParamTPC; //! AliTPCParam
152 Int_t fNParticles; //! number of particles in the input tree genTracks
153 Int_t fDebug; //! debug flag
154 Int_t fNextTreeGenEntryToRead; //! last entry already read from genTracks tree
155 //
156 AliMCInfo* fMCInfo; //! MC information writen per particle
157 AliESDRecInfo* fRecInfo; //! Rec. information writen per particle
158 //
159
160 ClassDef(ESDCmpTr,1) // class which creates and fills tree with ESDGenTrack objects
161};
162ClassImp(ESDCmpTr)
163
164
165