]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIRECINFOMAKER_H | |
2 | #define ALIRECINFOMAKER_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 AliRecInfoMaker // | |
10 | // collect together MC info and Rec info for comparison purposes | |
11 | // - effieciency studies and so on// // | |
12 | // marian.ivanov@cern.ch // | |
13 | ////////////////////////////////////////////////////////////////////////////// | |
14 | ||
15 | ||
16 | #include "TObject.h" | |
17 | #include "AliESD.h" | |
18 | #include "AliESDEvent.h" | |
19 | ||
20 | #include "AliESDtrack.h" | |
21 | #include "AliV0.h" | |
22 | #include "AliESDfriendTrack.h" | |
23 | #include "AliITStrackMI.h" | |
24 | #include "AliTRDtrack.h" | |
25 | class AliTPCseed; | |
26 | ||
27 | ||
28 | ||
29 | ||
30 | //////////////////////////////////////////////////////////////////////// | |
31 | // | |
32 | // Start of implementation of the class AliRecInfoMaker | |
33 | // | |
34 | //////////////////////////////////////////////////////////////////////// | |
35 | ||
36 | class AliRecInfoMaker { | |
37 | ||
38 | public: | |
39 | AliRecInfoMaker(const char* fnGenTracks, | |
40 | const char* fnCmpRes ="cmpTracks.root", | |
41 | const char* fnGalice ="galice.root", | |
42 | Int_t nEvents=1, Int_t firstEvent=0); | |
43 | static void MakeAliases(TTree *tree); | |
44 | virtual ~AliRecInfoMaker(); | |
45 | void Reset(); | |
46 | Int_t Exec(); | |
47 | Int_t Exec(Int_t nEvents, Int_t firstEventNr); | |
48 | Int_t SetIO(); | |
49 | Int_t SetIO(Int_t eventNr ); | |
50 | void CreateTreeCmp(); | |
51 | void CloseOutputFile(); | |
52 | Bool_t ConnectGenTree(); | |
53 | Int_t TreeGenLoop(Int_t eventNr); | |
54 | Int_t TreeTLoop(); | |
55 | Int_t BuildKinkInfo0(Int_t eventNr); // build kink info 0 | |
56 | Int_t BuildV0Info(Int_t eventNr); // build kink info 0 | |
57 | void SetFirstEventNr(Int_t i) {fFirstEventNr = i;} | |
58 | void SetNEvents(Int_t i) {fNEvents = i;} | |
59 | void SetDebug(Int_t level) {fDebug = level;} | |
60 | ||
61 | // tmp method, should go to TrackReferenceESD | |
62 | static TVector3 TR2Local(AliTrackReference *trackRef, | |
63 | AliTPCParam *paramTPC); | |
64 | static AliTPCParam * GetTPCParam(); | |
65 | private: | |
66 | ||
67 | Int_t fEventNr; //! current event number | |
68 | Int_t fNEvents; //! number of events to process | |
69 | Int_t fFirstEventNr; //! first event to process | |
70 | // | |
71 | char fFnCmp[1000]; //! output file name with cmp tracks | |
72 | TFile *fFileCmp; //! output file with cmp tracks | |
73 | TTree *fTreeCmp; //! output tree with cmp tracks | |
74 | TTree *fTreeCmpKinks; //! output tree with cmp Kinks | |
75 | TTree *fTreeCmpV0; //! output tree with cmp V0 | |
76 | // | |
77 | char fFnGenTracks[1000]; //! input file name with gen tracks | |
78 | TFile *fFileGenTracks; | |
79 | TTree *fTreeGenTracks; | |
80 | TTree *fTreeGenKinks; // tree with gen kinks | |
81 | TTree *fTreeGenV0; // tree with gen V0 | |
82 | // | |
83 | // | |
84 | // | |
85 | AliRunLoader * fLoader; //! pointer to the run loader | |
86 | //TTree *fTreeRecTracks; //! tree with reconstructed tracks | |
87 | // | |
88 | Short_t *fIndexRecTracks; //! index of particle label in the TreeT_ESD | |
89 | Short_t *fFakeRecTracks; //! number of fake tracks | |
90 | Short_t *fMultiRecTracks; //! number of multiple reconstructions | |
91 | // | |
92 | Short_t *fIndexRecKinks; //! index of particle label in treeesd | |
93 | Short_t *fMultiRecKinks; //! number of multiple reconstructions | |
94 | Short_t *fSignedKinks; //! indicator that kink was not fake | |
95 | // | |
96 | Short_t *fIndexRecV0; //! index of particle label in treeesd | |
97 | Short_t *fMultiRecV0; //! number of multiple reconstructions | |
98 | Short_t *fSignedV0; //! indicator that kink was not fake | |
99 | // | |
100 | TObjArray *fRecArray; // container with rec infos | |
101 | AliESDEvent *fEvent; //!event | |
102 | AliESDfriend *fESDfriend; //!event friend | |
103 | // | |
104 | AliTPCParam* fParamTPC; //! AliTPCParam | |
105 | Int_t fNParticles; //! number of particles in the input tree genTracks | |
106 | Int_t fDebug; //! debug flag | |
107 | Int_t fNextTreeGenEntryToRead; //! last entry already read from genTracks tree | |
108 | Int_t fNextKinkToRead; //! last entry already read from genKinks tree | |
109 | Int_t fNextV0ToRead; //! last entry already read from genV0 tree | |
110 | // | |
111 | AliMCInfo* fMCInfo; //! MC information writen per particle | |
112 | AliGenKinkInfo* fGenKinkInfo; //! MC information writen per Kink | |
113 | AliGenV0Info* fGenV0Info; //! MC information writen per Kink | |
114 | AliESDRecInfo* fRecInfo; //! Rec. information writen per particle | |
115 | AliESDfriendTrack* fFriend; //! friend track | |
116 | AliESDRecKinkInfo* fRecKinkInfo; //! reconstructed kink info | |
117 | AliESDRecV0Info* fRecV0Info; //! reconstructed kink info | |
118 | // | |
119 | ||
120 | ClassDef(AliRecInfoMaker,1) // class which creates and fills tree with ESDGenTrack objects | |
121 | }; | |
122 | ||
123 | ||
124 | #endif |