]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliRecInfoMaker.h
Removing MC position of the primary vertex (Jouri)
[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
19 #include "AliESDtrack.h"
20 #include "AliV0.h"
21 #include "AliESDfriendTrack.h"
22 #include "AliITStrackMI.h"
23 #include "AliTRDtrack.h"
24 class AliTPCseed;
25
26
27
28
29 ////////////////////////////////////////////////////////////////////////
30 // 
31 // Start of implementation of the class AliRecInfoMaker
32 //
33 ////////////////////////////////////////////////////////////////////////
34
35 class AliRecInfoMaker {
36
37 public:
38   AliRecInfoMaker();
39   AliRecInfoMaker(const char* fnGenTracks,
40            const char* fnCmpRes      ="cmpTracks.root", 
41            const char* fnGalice      ="galice.root", Int_t direction=0,
42            Int_t nEvents=1, Int_t firstEvent=0);
43   virtual ~AliRecInfoMaker();
44   void Reset();
45   Int_t Exec();
46   Int_t Exec(Int_t nEvents, Int_t firstEventNr);
47   Int_t SetIO();
48   Int_t SetIO(Int_t eventNr );
49   void CreateTreeCmp();
50   void CloseOutputFile();
51   Bool_t ConnectGenTree();
52   Int_t TreeGenLoop(Int_t eventNr);
53   Int_t TreeTLoop();
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;}
59
60 // tmp method, should go to TrackReferenceESD
61   static TVector3 TR2Local(AliTrackReference *trackRef,
62                     AliTPCParam *paramTPC);
63   static AliTPCParam * GetTPCParam();
64 private:
65
66   Int_t fEventNr;                 //! current event number
67   Int_t fNEvents;                 //! number of events to process
68   Int_t fFirstEventNr;            //! first event to process
69   //
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
75   //
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
81   //
82   //
83   Int_t  fDirection;
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   AliESD *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