]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliESDRun.h
Additional cuts for leading particle alignment in event mixing. (Alessandro Grelli)
[u/mrichter/AliRoot.git] / STEER / AliESDRun.h
1 // -*- mode: C++ -*- 
2 #ifndef ALIESDRUN_H
3 #define ALIESDRUN_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //-------------------------------------------------------------------------
8 //                     Implementation Class AliESDRun
9 //   Run by run data
10 //   for the ESD   
11 //   Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch 
12 //-------------------------------------------------------------------------
13
14 #include <TObject.h>
15 #include <TObjArray.h>
16 #include <TString.h>
17
18 class TGeoHMatrix;
19 class AliESDVertex;
20
21 class AliESDRun: public TObject {
22 public:
23
24   enum StatusBits {kBInfoStored = BIT(14), kUniformBMap = BIT(15)};
25
26   AliESDRun();
27   AliESDRun(const AliESDRun& esd);
28   AliESDRun& operator=(const AliESDRun& esd);
29   virtual void Copy(TObject &obj) const; // Interface for using TOBject::Copy()
30   virtual ~AliESDRun();
31
32   Bool_t  InitMagneticField() const;
33   Int_t   GetRunNumber() const {return fRunNumber;}
34   void    SetRunNumber(Int_t n) {fRunNumber=n;}
35   void    SetMagneticField(Float_t mf){fMagneticField = mf;}
36   Double_t GetMagneticField() const {return fMagneticField;}
37   UInt_t   GetPeriodNumber() const {return fPeriodNumber;}
38   void    SetPeriodNumber(Int_t n) {fPeriodNumber=n;}
39   void    Reset();
40   void    Print(const Option_t *opt=0) const;
41   void    SetDiamond(const AliESDVertex *vertex);
42   void    SetTriggerClass(const char*name, Int_t index);
43   void    SetCurrentL3(Float_t cur)    {fCurrentL3 = cur;}
44   void    SetCurrentDip(Float_t cur)   {fCurrentDip = cur;}
45   void    SetBeamEnergy(Float_t be)    {fBeamEnergy = be;}
46   void    SetBeamType(const char* bt)  {fBeamType = bt;}
47   
48   Double_t GetDiamondX() const {return fDiamondXY[0];}
49   Double_t GetDiamondY() const {return fDiamondXY[1];}
50   Double_t GetSigma2DiamondX() const {return fDiamondCovXY[0];}
51   Double_t GetSigma2DiamondY() const {return fDiamondCovXY[2];}
52   void GetDiamondCovXY(Float_t cov[3]) const {
53     for(Int_t i=0;i<3;i++) cov[i]=fDiamondCovXY[i]; return;
54   }
55   const char* GetTriggerClass(Int_t index) const;
56   TString     GetActiveTriggerClasses() const;
57   TString     GetFiredTriggerClasses(ULong64_t mask) const;
58   Bool_t      IsTriggerClassFired(ULong64_t mask, const char *name) const;
59   Float_t     GetCurrentL3()               const {return fCurrentL3;}
60   Float_t     GetCurrentDip()              const {return fCurrentDip;}
61   Float_t     GetBeamEnergy()              const {return fBeamEnergy;}
62   const char* GetBeamType()                const {return fBeamType.Data();}
63
64   void    SetPHOSMatrix(TGeoHMatrix*matrix, Int_t i) {
65     if ((i >= 0) && (i < kNPHOSMatrix)) fPHOSMatrix[i] = matrix;
66   }
67   const TGeoHMatrix* GetPHOSMatrix(Int_t i) const {
68     return ((i >= 0) && (i < kNPHOSMatrix)) ? fPHOSMatrix[i] : NULL;
69   }
70         
71   void    SetEMCALMatrix(TGeoHMatrix*matrix, Int_t i) {
72         if ((i >= 0) && (i < kNEMCALMatrix)) fEMCALMatrix[i] = matrix;
73   }
74   const TGeoHMatrix* GetEMCALMatrix(Int_t i) const {
75         return ((i >= 0) && (i < kNEMCALMatrix)) ? fEMCALMatrix[i] : NULL;
76   }
77         
78   enum {kNTriggerClasses = 50};
79   enum {kNPHOSMatrix = 5};
80   enum {kNEMCALMatrix = 12};
81
82 private:
83   Float_t         fCurrentL3;       // signed current in the L3     (LHC convention: +current -> +Bz)
84   Float_t         fCurrentDip;      // signed current in the Dipole (LHC convention: +current -> -Bx)
85   Float_t         fBeamEnergy;      // beamEnergy entry from GRP
86   Double32_t      fMagneticField;   // Solenoid Magnetic Field in kG : for compatibility with AliMagF
87   Double32_t      fDiamondXY[2];    // Interaction diamond (x,y) in RUN
88   Double32_t      fDiamondCovXY[3]; // Interaction diamond covariance (x,y) in RUN
89   UInt_t          fPeriodNumber;    // PeriodNumber
90   Int_t           fRunNumber;       // Run Number
91   Int_t           fRecoVersion;     // Version of reconstruction
92   TString         fBeamType;        // beam type from GRP
93   TObjArray       fTriggerClasses;  // array of TNamed containing the names of the active trigger classes
94   TGeoHMatrix*    fPHOSMatrix[kNPHOSMatrix]; //PHOS module position and orientation matrices
95   TGeoHMatrix*    fEMCALMatrix[kNEMCALMatrix]; //EMCAL supermodule position and orientation matrices
96
97   ClassDef(AliESDRun,6)
98 };
99
100 #endif