First round of cleaning of effc++ warnings (Marian)
[u/mrichter/AliRoot.git] / PWG1 / AliRecInfoMaker.h
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   AliRecInfoMaker(const AliRecInfoMaker& /*info*/);
67   AliRecInfoMaker& operator=(const AliRecInfoMaker& /*info*/) {return *this;}
68
69   Int_t fEventNr;                 //! current event number
70   Int_t fNEvents;                 //! number of events to process
71   Int_t fFirstEventNr;            //! first event to process
72   //
73   char  fFnCmp[1000];                   //! output file name with cmp tracks
74   TFile *fFileCmp;                //! output file with cmp tracks
75   TTree *fTreeCmp;                //! output tree with cmp tracks
76   TTree *fTreeCmpKinks;                //! output tree with cmp Kinks
77   TTree *fTreeCmpV0;                //! output tree with cmp V0
78   //
79   char  fFnGenTracks[1000];             //! input file name with gen tracks
80   TFile *fFileGenTracks;                //! input files with generated tracks   
81   TTree *fTreeGenTracks;           //! tree with generated tracks
82   TTree *fTreeGenKinks;            // tree with gen kinks
83   TTree *fTreeGenV0;            // tree with gen V0
84   //
85   //
86   //
87   AliRunLoader * fLoader;         //! pointer to the run loader
88   //TTree *fTreeRecTracks;          //! tree with reconstructed tracks
89   //
90   Short_t *fIndexRecTracks;         //! index of particle label in the TreeT_ESD
91   Short_t *fFakeRecTracks;          //! number of fake tracks
92   Short_t *fMultiRecTracks;         //! number of multiple reconstructions
93   //
94   Short_t *fIndexRecKinks;         //! index of particle label in treeesd
95   Short_t *fMultiRecKinks;         //! number of multiple reconstructions
96   Short_t *fSignedKinks;           //! indicator that kink was not fake
97   //
98   Short_t *fIndexRecV0;         //! index of particle label in treeesd
99   Short_t *fMultiRecV0;         //! number of multiple reconstructions
100   Short_t *fSignedV0;                //! indicator that kink was not fake
101   //
102   TObjArray *fRecArray;           // container with rec infos
103   AliESDEvent *fEvent;             //!event
104   AliESDfriend *fESDfriend;              //!event friend
105   //
106   AliTPCParam* fParamTPC;         //! AliTPCParam
107   Int_t fNParticles;              //! number of particles in the input tree genTracks
108   Int_t fDebug;                   //! debug flag  
109   Int_t fNextTreeGenEntryToRead;    //! last entry already read from genTracks tree
110   Int_t fNextKinkToRead;            //! last entry already read from genKinks tree
111   Int_t fNextV0ToRead;            //! last entry already read from genV0 tree
112   //
113   AliMCInfo*  fMCInfo;           //! MC information writen per particle
114   AliGenKinkInfo* fGenKinkInfo;      //! MC information writen per Kink
115   AliGenV0Info* fGenV0Info;      //! MC information writen per Kink
116   AliESDRecInfo*  fRecInfo;          //! Rec. information writen per particle
117   AliESDfriendTrack*  fFriend;          //! friend track
118   AliESDRecKinkInfo* fRecKinkInfo;    //! reconstructed kink info
119   AliESDRecV0Info* fRecV0Info;    //! reconstructed kink info
120   //
121
122   ClassDef(AliRecInfoMaker,1)    // class which creates and fills tree with ESDGenTrack objects
123 };
124
125
126 #endif