]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliMCInfo.h
New Raw Data format implemented
[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   void Update();
63   Int_t     GetEventNr() const   {return fEventNr;}
64   const AliTrackReference&  GetTrackRef() const {return fTrackRef;}
65   const AliTrackReference&  GetTrackRefOut() const {return fTrackRefOut;}
66   const AliTrackReference&  GetTRdecay() const {return fTRdecay;} 
67   TParticle& GetParticle()   {return fParticle;}
68   Float_t TPCBetheBloch(Float_t bg);
69   //
70   Int_t     GetPrimPart() const  {return fPrimPart;}
71   Float_t   GetMass()   const    {return fMass;}                  
72   Float_t   GetCharge() const    {return fCharge;}
73   Int_t     GetLabel()  const    {return fLabel;}
74
75   Int_t     GetMCtracks() const  {return fMCtracks;}
76   Int_t     GetPdg()      const  {return fPdg;}
77   const Float_t*   GetDecayCoord() const {return fDecayCoord;}
78   const Double_t*  GetVDist()      const {return fVDist;}
79
80   Bool_t   IsTPCdecay() const   {return fTPCdecay;}
81
82   Int_t    GetRowsWithDigitsInn() const {return fRowsWithDigitsInn;}
83   Int_t    GetRowsWithDigits() const  {return fRowsWithDigits;}
84   Int_t    GetRowsTrackLength() const {return fRowsTrackLength;}
85   Float_t GetPrim() const { return fPrim;}
86   
87   AliTPCdigitRow & GetTPCRow() {return fTPCRow;}
88   Int_t GetNTPCRef() const {return fNTPCRef;}      
89   Int_t GetNITSRef() const {return fNITSRef;}
90   Int_t GetNTRDRef() const {return fNTRDRef;}
91   Int_t GetNTOFRef() const {return fNTOFRef;}
92   const TClonesArray *GetTPCReferences() const { return fTPCReferences;}  
93   const TClonesArray * GetTRDReferences() const { return fTRDReferences;}  
94   const TClonesArray * GetITSReferences() const { return fITSReferences;}  
95   const TClonesArray * GetTOFReferences() const { return fTOFReferences;}  
96 private:
97   AliTrackReference  fTrackRef;      // track reference saved in the output tree
98   AliTrackReference  fTrackRefOut;   // decay track reference saved in the output tree
99   AliTrackReference  fTRdecay;       // track reference at decay point
100   //
101   Int_t     fPrimPart;               // index of primary particle in TreeH
102   TParticle fParticle;               // generated particle 
103   Float_t   fMass;                   // mass of the particle
104   Float_t   fCharge;                 // charge of the particle
105   Int_t     fLabel;                  // track label
106   Int_t     fEventNr;                // event number
107   Int_t     fMCtracks;               // indication of how many times the track is retuturned back
108   Int_t fPdg;                        //pdg code
109   Float_t fDecayCoord[3];            // position of particle decay
110   Double_t fVDist[4];                //distance of the particle vertex from primary vertex
111   Bool_t fTPCdecay;                  //indicates decay in TPC
112   Int_t fRowsWithDigitsInn;          // number of rows with digits in the inner sectors
113   Int_t fRowsWithDigits;             // number of rows with digits in the outer sectors
114   Int_t fRowsTrackLength;            // last - first row with digit
115   Float_t fPrim;                     // theoretical dedx in tpc according particle momenta and mass
116   AliTPCdigitRow fTPCRow;                  // information about digits row pattern
117   Int_t fNTPCRef;                    // tpc references counter
118   Int_t fNITSRef;                    // ITS references counter
119   Int_t fNTRDRef;                    // TRD references counter
120   Int_t fNTOFRef;                    // TOF references counter
121   TClonesArray * fTPCReferences;     //containner with all track references -in the TPC
122   TClonesArray * fITSReferences;     //container with ITS references
123   TClonesArray * fTRDReferences;     //container with TRD references  
124   TClonesArray * fTOFReferences;     //container with TRD references  
125   //
126   ClassDef(AliMCInfo,1);  // container for 
127 };
128
129
130
131 #endif