]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliMCInfo.h
Bug fix: corrected file name (Levente)
[u/mrichter/AliRoot.git] / PWG1 / AliMCInfo.h
1 #ifndef ALIMCINFO_H
2 #define ALIMCINFO_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
29
30 class AliTPCdigitRow: public TObject {
31 public:
32   AliTPCdigitRow();
33   virtual ~AliTPCdigitRow(){;}
34   void SetRow(Int_t row);
35   Bool_t TestRow(Int_t row) const ;
36   AliTPCdigitRow & operator=(const AliTPCdigitRow &digOld);
37   Int_t RowsOn(Int_t upto=8*32) const;
38   Int_t Last() const;
39   Int_t First() const ;
40   void Reset();
41
42 private:
43   UChar_t fDig[32];   // bitmask of the digits presence
44   ClassDef(AliTPCdigitRow,1)  // container for digit pattern
45 };
46
47
48 ////////////////////////////////////////////////////////////////////////
49 //
50 // Start of implementation of the class AliMCInfo
51 //
52 ////////////////////////////////////////////////////////////////////////
53
54 class AliMCInfo: public TObject {
55   friend class  AliGenInfoMaker;
56   friend class  AliRecInfoMaker;
57   friend class  AliESDRecInfo;
58 public:
59   AliMCInfo();
60   ~AliMCInfo();   
61   AliMCInfo(const AliMCInfo& info);
62   AliMCInfo& operator=(const AliMCInfo& info);
63   //
64   void Update();
65   Int_t     GetEventNr() const   {return fEventNr;}
66   const AliTrackReference&  GetTrackRef() const {return fTrackRef;}
67   const AliTrackReference&  GetTrackRefOut() const {return fTrackRefOut;}
68   const AliTrackReference&  GetTRdecay() const {return fTRdecay;} 
69   TParticle& GetParticle()   {return fParticle;}
70   Float_t TPCBetheBloch(Float_t bg);
71   //
72   Int_t     GetPrimPart() const  {return fPrimPart;}
73   Float_t   GetMass()   const    {return fMass;}                  
74   Float_t   GetCharge() const    {return fCharge;}
75   Int_t     GetLabel()  const    {return fLabel;}
76
77   Int_t     GetMCtracks() const  {return fMCtracks;}
78   Int_t     GetPdg()      const  {return fPdg;}
79   const Float_t*   GetDecayCoord() const {return fDecayCoord;}
80   const Double_t*  GetVDist()      const {return fVDist;}
81
82   Bool_t   IsTPCdecay() const   {return fTPCdecay;}
83
84   Int_t    GetRowsWithDigitsInn() const {return fRowsWithDigitsInn;}
85   Int_t    GetRowsWithDigits() const  {return fRowsWithDigits;}
86   Int_t    GetRowsTrackLength() const {return fRowsTrackLength;}
87   Float_t GetPrim() const { return fPrim;}
88   
89   AliTPCdigitRow & GetTPCRow() {return fTPCRow;}
90   Int_t GetNTPCRef() const {return fNTPCRef;}      
91   Int_t GetNITSRef() const {return fNITSRef;}
92   Int_t GetNTRDRef() const {return fNTRDRef;}
93   Int_t GetNTOFRef() const {return fNTOFRef;}
94   const TClonesArray *GetTPCReferences() const { return fTPCReferences;}  
95   const TClonesArray * GetTRDReferences() const { return fTRDReferences;}  
96   const TClonesArray * GetITSReferences() const { return fITSReferences;}  
97   const TClonesArray * GetTOFReferences() const { return fTOFReferences;}  
98   void CalcTPCrows(TClonesArray *arrayTR);
99 private:
100   AliTrackReference  fTrackRef;      // track reference saved in the output tree
101   AliTrackReference  fTrackRefOut;   // decay track reference saved in the output tree
102   AliTrackReference  fTRdecay;       // track reference at decay point
103   //
104   Int_t     fPrimPart;               // index of primary particle in TreeH
105   TParticle fParticle;               // generated particle 
106   Float_t   fMass;                   // mass of the particle
107   Float_t   fCharge;                 // charge of the particle
108   Int_t     fLabel;                  // track label
109   Int_t     fEventNr;                // event number
110   Int_t     fMCtracks;               // indication of how many times the track is retuturned back
111   Int_t fPdg;                        //pdg code
112   Float_t fDecayCoord[3];            // position of particle decay
113   Double_t fVDist[4];                //distance of the particle vertex from primary vertex
114   Bool_t fTPCdecay;                  //indicates decay in TPC
115   //
116   // TPC row information using digits
117   Int_t fRowsWithDigitsInn;          // number of rows with digits in the inner sectors
118   Int_t fRowsWithDigits;             // number of rows with digits in the outer sectors
119   Int_t fRowsTrackLength;            // last - first row with digit
120   //
121   // TPC track refernce information
122   Float_t fTPCtrackLength;           // distance between first and last track reference
123   //
124   Float_t fPrim;                     // theoretical dedx in tpc according particle momenta and mass
125   AliTPCdigitRow fTPCRow;                  // information about digits row pattern
126   Int_t fNTPCRef;                    // tpc references counter
127   Int_t fNITSRef;                    // ITS references counter
128   Int_t fNTRDRef;                    // TRD references counter
129   Int_t fNTOFRef;                    // TOF references counter
130   TClonesArray * fTPCReferences;     //containner with all track references -in the TPC
131   TClonesArray * fITSReferences;     //container with ITS references
132   TClonesArray * fTRDReferences;     //container with TRD references  
133   TClonesArray * fTOFReferences;     //container with TRD references  
134   //
135   ClassDef(AliMCInfo,1);  // container for 
136 };
137
138
139
140 #endif