]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDRun.h
ESD can init the Bfield via AliESDRun::InitMagneticField()
[u/mrichter/AliRoot.git] / STEER / AliESDRun.h
index e69d3d362e926c10d27921f1a2373681c013b530..026bc46bbb27b9adceb57ba6c7b0b7cbc84e16b4 100644 (file)
@@ -21,12 +21,15 @@ class AliESDVertex;
 class AliESDRun: public TObject {
 public:
 
+  enum StatusBits {kBInfoStored = BIT(14), kUniformBMap = BIT(15)};
+
   AliESDRun();
   AliESDRun(const AliESDRun& esd);
   AliESDRun& operator=(const AliESDRun& esd);
   virtual void Copy(TObject &obj) const; // Interface for using TOBject::Copy()
   virtual ~AliESDRun();
 
+  Bool_t  InitMagneticField() const;
   Int_t   GetRunNumber() const {return fRunNumber;}
   void    SetRunNumber(Int_t n) {fRunNumber=n;}
   void    SetMagneticField(Float_t mf){fMagneticField = mf;}
@@ -35,9 +38,13 @@ public:
   void    SetPeriodNumber(Int_t n) {fPeriodNumber=n;}
   void    Reset();
   void    Print(const Option_t *opt=0) const;
-  void SetDiamond(const AliESDVertex *vertex);
+  void    SetDiamond(const AliESDVertex *vertex);
   void    SetTriggerClass(const char*name, Int_t index);
-
+  void    SetCurrentL3(Float_t cur)    {fCurrentL3 = cur;}
+  void    SetCurrentDip(Float_t cur)   {fCurrentDip = cur;}
+  void    SetBeamEnergy(Float_t be)    {fBeamEnergy = be;}
+  void    SetBeamType(const char* bt)  {fBeamType = bt;}
+  
   Double_t GetDiamondX() const {return fDiamondXY[0];}
   Double_t GetDiamondY() const {return fDiamondXY[1];}
   Double_t GetSigma2DiamondX() const {return fDiamondCovXY[0];}
@@ -49,6 +56,10 @@ public:
   TString     GetActiveTriggerClasses() const;
   TString     GetFiredTriggerClasses(ULong64_t mask) const;
   Bool_t      IsTriggerClassFired(ULong64_t mask, const char *name) const;
+  Float_t     GetCurrentL3()               const {return fCurrentL3;}
+  Float_t     GetCurrentDip()              const {return fCurrentDip;}
+  Float_t     GetBeamEnergy()              const {return fBeamEnergy;}
+  const char* GetBeamType()                const {return fBeamType.Data();}
 
   void    SetPHOSMatrix(TGeoHMatrix*matrix, Int_t i) {
     if ((i >= 0) && (i < kNPHOSMatrix)) fPHOSMatrix[i] = matrix;
@@ -69,17 +80,21 @@ public:
   enum {kNEMCALMatrix = 12};
 
 private:
+  Float_t         fCurrentL3;       // signed current in the L3     (LHC convention: +current -> +Bz)
+  Float_t         fCurrentDip;      // signed current in the Dipole (LHC convention: +current -> -Bx)
+  Float_t         fBeamEnergy;      // beamEnergy entry from GRP
   Double32_t      fMagneticField;   // Solenoid Magnetic Field in kG : for compatibility with AliMagF
   Double32_t      fDiamondXY[2];    // Interaction diamond (x,y) in RUN
   Double32_t      fDiamondCovXY[3]; // Interaction diamond covariance (x,y) in RUN
   UInt_t          fPeriodNumber;    // PeriodNumber
   Int_t           fRunNumber;       // Run Number
-  Int_t           fRecoVersion;     // Version of reconstruction 
+  Int_t           fRecoVersion;     // Version of reconstruction
+  TString         fBeamType;        // beam type from GRP
   TObjArray       fTriggerClasses;  // array of TNamed containing the names of the active trigger classes
   TGeoHMatrix*    fPHOSMatrix[kNPHOSMatrix]; //PHOS module position and orientation matrices
   TGeoHMatrix*    fEMCALMatrix[kNEMCALMatrix]; //EMCAL supermodule position and orientation matrices
 
-  ClassDef(AliESDRun,5)
+  ClassDef(AliESDRun,6)
 };
 
 #endif