]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliGenInfoMaker.h
Process codes corrected/completed.
[u/mrichter/AliRoot.git] / PWG1 / AliGenInfoMaker.h
1 #ifndef ALIGENINFOMAKER_H
2 #define ALIGENINFOMAKER_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 AliGenInfo                               //
10 //   collect together MC info for comparison purposes - effieciency studies and so on//                                                                 //
11 //   marian.ivanov@cern.ch                                                  //
12 //////////////////////////////////////////////////////////////////////////////
13
14
15
16 ////////////////////////////////////////////////////////////////////////
17 //
18 // Start of implementation of the class AliTPCdigitRow
19 //
20 ////////////////////////////////////////////////////////////////////////
21
22 #include <TParticle.h>
23 #include "AliTrackReference.h"
24
25 class TFile;
26 class AliRunLoader;
27 class AliStack;
28 class AliTPCParam;
29
30
31 ////////////////////////////////////////////////////////////////////////
32 // 
33 // Start of implementation of the class AliGenInfoMaker
34 //
35 ////////////////////////////////////////////////////////////////////////
36
37 class AliGenInfoMaker {
38
39 public:
40   AliGenInfoMaker();
41   AliGenInfoMaker(const char * fnGalice, const char* fnRes    ="genTracks.root",
42                    Int_t nEvents=1, Int_t firstEvent=0);
43   virtual ~AliGenInfoMaker();
44   Int_t Exec();
45   Int_t Exec(Int_t nEvents, Int_t firstEventNr);
46   void CreateTreeGenTracks();
47   void CloseOutputFile();
48   Int_t TreeKLoop();
49   Int_t TreeTRLoop();
50   Int_t TreeTRLoopNew(); 
51   Int_t TreeDLoop();
52   Int_t BuildKinkInfo();  // build information about MC kinks
53   Int_t BuildV0Info();  // build information about MC kinks
54   Int_t BuildHitLines();  // build information about MC kinks
55   void SetFirstEventNr(Int_t i) {fFirstEventNr = i;}
56   void SetNEvents(Int_t i) {fNEvents = i;}
57   void SetDebug(Int_t level) {fDebug = level;}
58   Int_t SetIO(Int_t eventNr);
59   Int_t CloseIOEvent();
60   Int_t CloseIO();
61   Int_t SetIO();
62   Float_t TR2LocalX(AliTrackReference *trackRef,
63                     AliTPCParam *paramTPC) const;
64   AliMCInfo * GetInfo(UInt_t i) const {return (i<fNParticles)? fGenInfo[i]:0;}
65   AliMCInfo * MakeInfo(UInt_t i);
66
67 private:
68   AliTPCParam * GetTPCParam();
69   Float_t TPCBetheBloch(Float_t bg);
70   Int_t  fDebug;                   //! debug flag  
71   Int_t  fEventNr;                 //! current event number
72   Int_t  fLabel;                   //! track label
73   Int_t  fNEvents;                 //! number of events to process
74   Int_t  fFirstEventNr;            //! first event to process
75   UInt_t fNParticles;              //! number of particles in TreeK
76   TTree *fTreeGenTracks;          //! output tree with generated tracks
77   TTree *fTreeKinks;             //!  output tree with Kinks
78   TTree *fTreeV0;                //!  output tree with V0
79   TTree *fTreeHitLines;          //! tree with hit lines
80   char   fFnRes[1000];             //! output file name with stored tracks
81   TFile *fFileGenTracks;          //! output file with stored fTreeGenTracks
82   //
83   AliRunLoader * fLoader;         //! pointer to the run loader
84   TTree * fTreeD;                 //! current tree with digits
85   TTree * fTreeTR;                //! current tree with TR
86   AliStack *fStack;               //! current stack
87   // 
88   AliMCInfo **   fGenInfo;    //! array with pointers to gen info
89   Int_t   fNInfos;                  //! number of tracks with infos
90   //
91   AliTPCParam* fParamTPC;         //! AliTPCParam
92   Float_t  fVPrim[3];             //! primary vertex position
93                                   // the fVDist[3] contains size of the 3-vector
94   // cuts
95   //
96   Double_t fTPCPtCut; // do not store particles with generated pT less than this
97   Double_t fITSPtCut; // do not store particles with generated pT less than this
98   Double_t fTRDPtCut; // do not store particles with generated pT less than this
99   Double_t fTOFPtCut; // do not store particles with generated pT less than this
100  
101   ClassDef(AliGenInfoMaker,0)    // class which creates and fills tree with TPCGenTrack objects
102 };
103
104
105
106
107
108
109 #endif