don't lie in the log!
[u/mrichter/AliRoot.git] / PWGPP / TPC / AliRecInfoMaker.h
CommitLineData
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 24class AliTPCseed;
96c0c856 25class AliTPCParam;
26class AliMCInfo;
27class AliGenKinkInfo;
28class AliGenV0Info;
29class AliESDRecInfo;
30class AliESDRecKinkInfo;
31class AliESDRecV0Info;
7cc34f08 32
33
34////////////////////////////////////////////////////////////////////////
35//
36// Start of implementation of the class AliRecInfoMaker
37//
38////////////////////////////////////////////////////////////////////////
39
40class AliRecInfoMaker {
41
42public:
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();
69private:
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