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