]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TPC/AliRecInfoMaker.h
changes for Vertex and Tracks classes
[u/mrichter/AliRoot.git] / PWGPP / TPC / 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 class AliTPCseed;
25 class AliTPCParam;
26 class AliMCInfo;
27 class AliGenKinkInfo;
28 class AliGenV0Info;
29 class AliESDRecInfo;
30 class AliESDRecKinkInfo;
31 class AliESDRecV0Info;
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