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 */
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 //////////////////////////////////////////////////////////////////////////////
18 #include "AliESDEvent.h"
20 #include "AliESDtrack.h"
22 #include "AliESDfriendTrack.h"
23 #include "AliITStrackMI.h"
24 #include "AliTRDtrack.h"
30 ////////////////////////////////////////////////////////////////////////
32 // Start of implementation of the class AliRecInfoMaker
34 ////////////////////////////////////////////////////////////////////////
36 class AliRecInfoMaker {
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 virtual ~AliRecInfoMaker();
46 Int_t Exec(Int_t nEvents, Int_t firstEventNr);
48 Int_t SetIO(Int_t eventNr );
50 void CloseOutputFile();
51 Bool_t ConnectGenTree();
52 Int_t TreeGenLoop(Int_t eventNr);
54 Int_t BuildKinkInfo0(Int_t eventNr); // build kink info 0
55 Int_t BuildV0Info(Int_t eventNr); // build kink info 0
56 void SetFirstEventNr(Int_t i) {fFirstEventNr = i;}
57 void SetNEvents(Int_t i) {fNEvents = i;}
58 void SetDebug(Int_t level) {fDebug = level;}
60 // tmp method, should go to TrackReferenceESD
61 static TVector3 TR2Local(AliTrackReference *trackRef,
62 AliTPCParam *paramTPC);
63 static AliTPCParam * GetTPCParam();
66 Int_t fEventNr; //! current event number
67 Int_t fNEvents; //! number of events to process
68 Int_t fFirstEventNr; //! first event to process
70 char fFnCmp[1000]; //! output file name with cmp tracks
71 TFile *fFileCmp; //! output file with cmp tracks
72 TTree *fTreeCmp; //! output tree with cmp tracks
73 TTree *fTreeCmpKinks; //! output tree with cmp Kinks
74 TTree *fTreeCmpV0; //! output tree with cmp V0
76 char fFnGenTracks[1000]; //! input file name with gen tracks
77 TFile *fFileGenTracks;
78 TTree *fTreeGenTracks;
79 TTree *fTreeGenKinks; // tree with gen kinks
80 TTree *fTreeGenV0; // tree with gen V0
84 AliRunLoader * fLoader; //! pointer to the run loader
85 //TTree *fTreeRecTracks; //! tree with reconstructed tracks
87 Short_t *fIndexRecTracks; //! index of particle label in the TreeT_ESD
88 Short_t *fFakeRecTracks; //! number of fake tracks
89 Short_t *fMultiRecTracks; //! number of multiple reconstructions
91 Short_t *fIndexRecKinks; //! index of particle label in treeesd
92 Short_t *fMultiRecKinks; //! number of multiple reconstructions
93 Short_t *fSignedKinks; //! indicator that kink was not fake
95 Short_t *fIndexRecV0; //! index of particle label in treeesd
96 Short_t *fMultiRecV0; //! number of multiple reconstructions
97 Short_t *fSignedV0; //! indicator that kink was not fake
99 TObjArray *fRecArray; // container with rec infos
100 AliESDEvent *fEvent; //!event
101 AliESDfriend *fESDfriend; //!event friend
103 AliTPCParam* fParamTPC; //! AliTPCParam
104 Int_t fNParticles; //! number of particles in the input tree genTracks
105 Int_t fDebug; //! debug flag
106 Int_t fNextTreeGenEntryToRead; //! last entry already read from genTracks tree
107 Int_t fNextKinkToRead; //! last entry already read from genKinks tree
108 Int_t fNextV0ToRead; //! last entry already read from genV0 tree
110 AliMCInfo* fMCInfo; //! MC information writen per particle
111 AliGenKinkInfo* fGenKinkInfo; //! MC information writen per Kink
112 AliGenV0Info* fGenV0Info; //! MC information writen per Kink
113 AliESDRecInfo* fRecInfo; //! Rec. information writen per particle
114 AliESDfriendTrack* fFriend; //! friend track
115 AliESDRecKinkInfo* fRecKinkInfo; //! reconstructed kink info
116 AliESDRecV0Info* fRecV0Info; //! reconstructed kink info
119 ClassDef(AliRecInfoMaker,1) // class which creates and fills tree with ESDGenTrack objects