]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODHeader.h
Fix for #81567: fix in SetTOFResponse method (AliESDpid)
[u/mrichter/AliRoot.git] / STEER / AliAODHeader.h
index 51b0446312bcdb54d7e1eecc1bc6d6a95d96b4f8..a022ad716bb26a1779b78277ed299942cb61097d 100644 (file)
 
 #include "AliVHeader.h"
 #include "AliAODVertex.h"
+#include <TString.h>
+#include "AliCentrality.h"
+#include "AliEventplane.h"
 
 class TGeoHMatrix;
 class TString;
 
+
 class AliAODHeader : public AliVHeader {
 
  public :
@@ -32,6 +36,7 @@ class AliAODHeader : public AliVHeader {
               Double_t magField,
               Double_t muonMagFieldScale,
               Double_t cent,
+              Double_t eventplane,
               Double_t n1Energy,
               Double_t p1Energy,
               Double_t n2Energy,
@@ -40,13 +45,16 @@ 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); 
   AliAODHeader& operator=(const AliAODHeader& evt);
-  
-  Int_t     GetRunNumber()          const { return fRunNumber; }
+
+  Int_t     GetRunNumber()          const { return fRunNumber;}
+  Int_t     GetEventNumberESDFile() const { return fEventNumberESDFile;}
   UShort_t  GetBunchCrossNumber()   const { return fBunchCrossNumber; }
   UInt_t    GetOrbitNumber()        const { return fOrbitNumber; }
   UInt_t    GetPeriodNumber()       const { return fPeriodNumber; }
@@ -58,6 +66,7 @@ class AliAODHeader : public AliVHeader {
   Double_t  GetMuonMagFieldScale()  const { return fMuonMagFieldScale; }
   
   Double_t  GetCentrality()         const { return fCentrality; }
+  Double_t  GetEventplane()         const { return fEventplane; }
   Double_t  GetZDCN1Energy()        const { return fZDCN1Energy; }
   Double_t  GetZDCP1Energy()        const { return fZDCP1Energy; }
   Double_t  GetZDCN2Energy()        const { return fZDCN2Energy; }
@@ -66,19 +75,30 @@ 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;
   }
+  UInt_t   GetL0TriggerInputs() const {return fL0TriggerInputs;}  
+  UInt_t   GetL1TriggerInputs() const {return fL1TriggerInputs;} 
+  UShort_t GetL2TriggerInputs() const {return fL2TriggerInputs;} 
+  AliCentrality* GetCentralityP()  const { return fCentralityP; }
+  AliEventplane* GetEventplaneP()  const { return fEventplaneP; }
+
   
   void SetRunNumber(Int_t nRun)                { fRunNumber = nRun; }
+  void SetEventNumberESDFile(Int_t n)          { fEventNumberESDFile=n; }
   void SetBunchCrossNumber(UShort_t nBx)       { fBunchCrossNumber = nBx; }
   void SetOrbitNumber(UInt_t nOr)              { fOrbitNumber = nOr; }
   void SetPeriodNumber(UInt_t nPer)            { fPeriodNumber = nPer; }
@@ -88,8 +108,8 @@ class AliAODHeader : public AliVHeader {
   void SetEventType(UInt_t evttype)            { fEventType = evttype; }
   void SetMagneticField(Double_t magFld)       { fMagneticField = magFld; }
   void SetMuonMagFieldScale(Double_t magFldScl){ fMuonMagFieldScale = magFldScl; }
-  
-  void SetCentrality(Double_t cent)            { fCentrality = cent; }
+  void SetCentrality(AliCentrality* cent);
+  void SetEventplane(AliEventplane* eventplane);
   void SetZDCN1Energy(Double_t n1Energy)       { fZDCN1Energy = n1Energy; }
   void SetZDCP1Energy(Double_t p1Energy)       { fZDCP1Energy = p1Energy; }
   void SetZDCN2Energy(Double_t n2Energy)       { fZDCN2Energy = n2Energy; }
@@ -99,14 +119,23 @@ 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();
 
   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];}
+    for(Int_t i=0;i<3;i++) {fDiamondCovXY[i] = cov[i];}
+    for(Int_t i=0;i<2;i++) {fDiamondXY[i]    = xy[i] ;}
   }
-
+  void SetDiamondZ(Float_t z, Float_t sig2z){
+    fDiamondZ=z; fDiamondSig2Z=sig2z;
+  }
+  void SetL0TriggerInputs(UInt_t n)   {fL0TriggerInputs=n;}
+  void SetL1TriggerInputs(UInt_t n)   {fL1TriggerInputs=n;}
+  void SetL2TriggerInputs(UShort_t n) {fL2TriggerInputs=n;}
+  void SetESDFileName(TString name)   {fESDFileName = name;}
   void Print(Option_t* option = "") const;
 
   void    SetPHOSMatrix(TGeoHMatrix*matrix, Int_t i) {
@@ -123,6 +152,15 @@ class AliAODHeader : public AliVHeader {
       return ((i >= 0) && (i < kNEMCALMatrix)) ? fEMCALMatrix[i] : NULL;
   }
   
+  UInt_t GetOfflineTrigger() { return fOfflineTrigger; }
+  void   SetOfflineTrigger(UInt_t trigger) { fOfflineTrigger = trigger; }
+  UInt_t GetNumberOfITSClusters(Int_t ilay) const {return fITSClusters[ilay];}
+  void   SetITSClusters(Int_t ilay, UInt_t nclus);
+  Int_t  GetTPConlyRefMultiplicity() const {return fTPConlyRefMult;}
+  void   SetTPConlyRefMultiplicity(Int_t mult) {fTPConlyRefMult = mult;} 
+  
+  TString GetESDFileName() const  {return fESDFileName;}
+  void Clear(Option_t* = "");
   enum {kNPHOSMatrix = 5};
   enum {kNEMCALMatrix = 12};
   
@@ -131,6 +169,7 @@ class AliAODHeader : public AliVHeader {
   Double32_t  fMagneticField;       // Solenoid Magnetic Field in kG
   Double32_t  fMuonMagFieldScale;   // magnetic field scale of muon arm magnet
   Double32_t  fCentrality;          // Centrality
+  Double32_t  fEventplane;          // Event plane angle
   Double32_t  fZDCN1Energy;         // reconstructed energy in the neutron1 ZDC
   Double32_t  fZDCP1Energy;         // reconstructed energy in the proton1 ZDC
   Double32_t  fZDCN2Energy;         // reconstructed energy in the neutron2 ZDC
@@ -144,6 +183,8 @@ class AliAODHeader : public AliVHeader {
   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
@@ -151,10 +192,50 @@ class AliAODHeader : public AliVHeader {
   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
+  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
-
-  ClassDef(AliAODHeader,9);
+  UInt_t      fOfflineTrigger;      // fired offline triggers for this event
+  TString     fESDFileName;         // ESD file name to which this event belongs
+  Int_t       fEventNumberESDFile;  // Event number in ESD file
+  UInt_t      fL0TriggerInputs;     // L0 Trigger Inputs (mask)
+  UInt_t      fL1TriggerInputs;     // L1 Trigger Inputs (mask)
+  UShort_t    fL2TriggerInputs;     // L2 Trigger Inputs (mask)
+  UInt_t      fITSClusters[6];      // Number of ITS cluster per layer
+  Int_t       fTPConlyRefMult;      // Reference multiplicty for standard TPC only tracks
+  AliCentrality* fCentralityP;      // Pointer to full centrality information
+  AliEventplane* fEventplaneP;     // Pointer to full event plane information
+  ClassDef(AliAODHeader, 16);
 };
+inline
+void AliAODHeader::SetCentrality(AliCentrality* cent)      { 
+    if(cent){
+       if(fCentralityP)*fCentralityP = *cent;
+       else fCentralityP = new AliCentrality(*cent);
+       fCentrality = cent->GetCentralityPercentile("V0M");
+    }
+    else{
+       fCentrality = -999;
+    }
+}
+inline
+void AliAODHeader::SetEventplane(AliEventplane* eventplane)      { 
+    if(eventplane){
+       if(fEventplaneP)*fEventplaneP = *eventplane;
+       else fEventplaneP = new AliEventplane(*eventplane);
+       fEventplane = eventplane->GetEventplane("Q");
+    }
+    else{
+       fEventplane = -999;
+    }
+}
+
+inline
+void AliAODHeader::SetITSClusters(Int_t ilay, UInt_t nclus)
+{
+    if (ilay >= 0 && ilay < 6) fITSClusters[ilay] = nclus;
+}
+
 
 #endif