]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODHeader.h
Cleanup of collisions geometries and headers.
[u/mrichter/AliRoot.git] / STEER / AliAODHeader.h
index 2c9e8045e5af75950bc9050592fb79d81955be9d..f9d50a3dc7142373e389005d45f4558355d7e2d2 100644 (file)
@@ -13,6 +13,9 @@
 #include "AliVHeader.h"
 #include "AliAODVertex.h"
 
+class TGeoHMatrix;
+class TString;
+
 class AliAODHeader : public AliVHeader {
 
  public :
@@ -37,7 +40,9 @@ class AliAODHeader : public AliVHeader {
               ULong64_t fTriggerMask,
               UChar_t   fTriggerCluster,
               UInt_t    fEventType,
-              const Char_t *title="");
+              const Char_t *title="",
+              Int_t nMuons=0,
+              Int_t nDimuons=0);
   
   virtual ~AliAODHeader();
   AliAODHeader(const AliAODHeader& evt); 
@@ -49,6 +54,7 @@ class AliAODHeader : public AliVHeader {
   UInt_t    GetPeriodNumber()       const { return fPeriodNumber; }
   ULong64_t GetTriggerMask()        const { return fTriggerMask; }
   UChar_t   GetTriggerCluster()     const { return fTriggerCluster; }
+  TString   GetFiredTriggerClasses()const { return fFiredTriggers;}
   UInt_t    GetEventType()          const { return fEventType; }
   Double_t  GetMagneticField()      const { return fMagneticField; }
   Double_t  GetMuonMagFieldScale()  const { return fMuonMagFieldScale; }
@@ -62,14 +68,18 @@ class AliAODHeader : public AliVHeader {
   Int_t     GetRefMultiplicity()    const { return fRefMult; }
   Int_t     GetRefMultiplicityPos() const { return fRefMultPos; }
   Int_t     GetRefMultiplicityNeg() const { return fRefMultNeg; }
+  Int_t     GetNumberOfMuons()      const { return fNMuons; }
+  Int_t     GetNumberOfDimuons()    const { return fNDimuons; }
 
   Double_t  GetQTheta(UInt_t i) const;
   UInt_t    GetNQTheta() const { return (UInt_t)fNQTheta; }
 
   Double_t GetDiamondX() const {return fDiamondXY[0];}
   Double_t GetDiamondY() const {return fDiamondXY[1];}
+  Double_t GetDiamondZ() const {return fDiamondZ;}
   Double_t GetSigma2DiamondX() const {return fDiamondCovXY[0];}
   Double_t GetSigma2DiamondY() const {return fDiamondCovXY[2];}
+  Double_t GetSigma2DiamondZ() const {return fDiamondSig2Z;}
   void GetDiamondCovXY(Float_t cov[3]) const {
     for(Int_t i=0;i<3;i++) cov[i]=fDiamondCovXY[i]; return;
   }
@@ -79,6 +89,7 @@ class AliAODHeader : public AliVHeader {
   void SetOrbitNumber(UInt_t nOr)              { fOrbitNumber = nOr; }
   void SetPeriodNumber(UInt_t nPer)            { fPeriodNumber = nPer; }
   void SetTriggerMask(ULong64_t trigMsk)       { fTriggerMask = trigMsk; }
+  void SetFiredTriggerClasses(TString trig)    { fFiredTriggers = trig;}
   void SetTriggerCluster(UChar_t trigClus)     { fTriggerCluster = trigClus; }
   void SetEventType(UInt_t evttype)            { fEventType = evttype; }
   void SetMagneticField(Double_t magFld)       { fMagneticField = magFld; }
@@ -94,6 +105,8 @@ class AliAODHeader : public AliVHeader {
   void SetRefMultiplicity(Int_t refMult)       { fRefMult = refMult; }
   void SetRefMultiplicityPos(Int_t refMultPos) { fRefMultPos = refMultPos; }
   void SetRefMultiplicityNeg(Int_t refMultNeg) { fRefMultNeg = refMultNeg; }
+  void SetNumberOfMuons(Int_t nMuons) { fNMuons = nMuons; }
+  void SetNumberOfDimuons(Int_t nDimuons) { fNDimuons = nDimuons; }
   
   void SetQTheta(Double_t *QTheta, UInt_t size = 5);  
   void RemoveQTheta();
@@ -101,9 +114,31 @@ class AliAODHeader : public AliVHeader {
   void SetDiamond(Float_t xy[2],Float_t cov[3]) { 
     for(Int_t i=0;i<3;i++) {if(i<2) fDiamondXY[i]=xy[i]; fDiamondCovXY[i]=cov[i];}
   }
+  void SetDiamondZ(Float_t z, Float_t sig2z){
+    fDiamondZ=z; fDiamondSig2Z=sig2z;
+  }
 
   void Print(Option_t* option = "") const;
+
+  void    SetPHOSMatrix(TGeoHMatrix*matrix, Int_t i) {
+      if ((i >= 0) && (i < kNPHOSMatrix)) fPHOSMatrix[i] = matrix;
+  }
+  const TGeoHMatrix* GetPHOSMatrix(Int_t i) const {
+      return ((i >= 0) && (i < kNPHOSMatrix)) ? fPHOSMatrix[i] : NULL;
+  }
+  
+  void    SetEMCALMatrix(TGeoHMatrix*matrix, Int_t i) {
+      if ((i >= 0) && (i < kNEMCALMatrix)) fEMCALMatrix[i] = matrix;
+  }
+  const TGeoHMatrix* GetEMCALMatrix(Int_t i) const {
+      return ((i >= 0) && (i < kNEMCALMatrix)) ? fEMCALMatrix[i] : NULL;
+  }
+  
+  UInt_t GetOfflineTrigger() { return fOfflineTrigger; }
+  void SetOfflineTrigger(UInt_t trigger) { fOfflineTrigger = trigger; }
   
+  enum {kNPHOSMatrix = 5};
+  enum {kNEMCALMatrix = 12};
   
  private :
   
@@ -118,20 +153,27 @@ class AliAODHeader : public AliVHeader {
   Int_t       fNQTheta;             // number of QTheta elements
   Double32_t *fQTheta;              // [fNQTheta] values to store Lee-Yang-Zeros
   ULong64_t   fTriggerMask;         // Trigger Type (mask)
+  TString     fFiredTriggers;       // String with fired triggers
   Int_t       fRunNumber;           // Run Number
   Int_t       fRefMult;             // reference multiplicity
   Int_t       fRefMultPos;          // reference multiplicity of positive particles
   Int_t       fRefMultNeg;          // reference multiplicity of negative particles
+  Int_t       fNMuons;              // number of muons in the forward spectrometer
+  Int_t       fNDimuons;            // number of dimuons in the forward spectrometer
   UInt_t      fEventType;           // Type of Event
   UInt_t      fOrbitNumber;         // Orbit Number
   UInt_t      fPeriodNumber;        // Period Number
   UShort_t    fBunchCrossNumber;    // BunchCrossingNumber
   UChar_t     fTriggerCluster;      // Trigger cluster (mask)
-
   Double32_t      fDiamondXY[2];    // Interaction diamond (x,y) in RUN
   Double32_t      fDiamondCovXY[3]; // Interaction diamond covariance (x,y) in RUN
-  
-  ClassDef(AliAODHeader,7);
+  Double32_t      fDiamondZ;        // Interaction diamond (z) in RUN
+  Double32_t      fDiamondSig2Z;    // Interaction diamond sigma^2 (z) in RUN
+  TGeoHMatrix*    fPHOSMatrix[kNPHOSMatrix];   //PHOS module position and orientation matrices
+  TGeoHMatrix*    fEMCALMatrix[kNEMCALMatrix]; //EMCAL supermodule position and orientation matrices
+  UInt_t      fOfflineTrigger;      // fired offline triggers for this event
+
+  ClassDef(AliAODHeader,12);
 };
 
 #endif