Corrected protection.
[u/mrichter/AliRoot.git] / STEER / AliESDEvent.h
index 34c29bb..167cff6 100644 (file)
 #include "AliESDtrack.h"
 // same for AliESDVertex (which is a AliVVertex)
 #include "AliESDVertex.h"
+// same for CaloCells and CaloClusters (which is a AliVCaloCells, AliVCluster)
+#include "AliESDCaloCluster.h"
+#include "AliESDCaloCells.h"
+
+#include "AliTOFHeader.h"
 
 class AliESDfriend;
 class AliESDVZERO;
@@ -43,8 +48,6 @@ class AliESDVertex;
 class AliESDPmdTrack;
 class AliESDFMD;
 class AliESDkink;
-class AliESDCaloCluster;
-class AliESDCaloCells;
 class AliESDv0;
 class AliMultiplicity;
 class AliRawDataErrorLog;
@@ -53,6 +56,7 @@ class AliESDTrdTrack;
 class AliESDMuonTrack;
 class AliESD;
 class AliESDcascade;
+class AliESDCentrality;
 class TRefArray;
 class AliESDACORDE;
 class AliESDHLTDecision;
@@ -91,6 +95,7 @@ public:
                       kPHOSCells,
                       kErrorLogs,
                        kESDACORDE,
+                      kTOFHeader,
                       kESDListN
   };
 
@@ -106,15 +111,20 @@ public:
   // Delegated methods for fESDRun
   void     SetRunNumber(Int_t n) {if(fESDRun) fESDRun->SetRunNumber(n);}
   Int_t    GetRunNumber() const {return fESDRun?fESDRun->GetRunNumber():-1;}
-  void     SetPeriodNumber(UInt_t n){if(fESDRun) fESDRun->SetPeriodNumber(n);}
+  void     SetPeriodNumber(UInt_t n){
+    if(fESDRun) fESDRun->SetPeriodNumber(n);
+    if(fHeader) fHeader->SetPeriodNumber(n);
+  }
   UInt_t   GetPeriodNumber() const {return fESDRun?fESDRun->GetPeriodNumber():0;}
   void     SetMagneticField(Double_t mf){if(fESDRun) fESDRun->SetMagneticField(mf);}
   Double_t GetMagneticField() const {return fESDRun?fESDRun->GetMagneticField():0;}
   void     SetDiamond(const AliESDVertex *vertex) { if(fESDRun) fESDRun->SetDiamond(vertex);}
   Double_t  GetDiamondX() const {return fESDRun?fESDRun->GetDiamondX():0;}
   Double_t  GetDiamondY() const {return fESDRun?fESDRun->GetDiamondY():0;}
+  Double_t  GetDiamondZ() const {return fESDRun?fESDRun->GetDiamondZ():0;}
   Double_t  GetSigma2DiamondX() const {return  fESDRun?fESDRun->GetSigma2DiamondX():0;}
   Double_t  GetSigma2DiamondY() const {return  fESDRun?fESDRun->GetSigma2DiamondY():0;}
+  Double_t  GetSigma2DiamondZ() const {return  fESDRun?fESDRun->GetSigma2DiamondZ():0;}
   void      GetDiamondCovXY(Float_t cov[3]) const {if(fESDRun) fESDRun->GetDiamondCovXY(cov);}   
   void     SetTriggerClass(const char*name, Int_t index) {if(fESDRun) fESDRun->SetTriggerClass(name,index);}
   void     SetPHOSMatrix(TGeoHMatrix*matrix, Int_t i) {if(fESDRun) fESDRun->SetPHOSMatrix(matrix,i);}
@@ -167,6 +177,7 @@ public:
 
   // ZDC CKB: put this in the header?
   AliESDZDC*    GetESDZDC() const {return fESDZDC;}
+  void SetZDCData(AliESDZDC * obj);
 
   // Delegated methods for fESDZDC
   Double_t GetZDCN1Energy() const {return fESDZDC?fESDZDC->GetZDCN1Energy():0;}
@@ -175,14 +186,15 @@ public:
   Double_t GetZDCP2Energy() const {return fESDZDC?fESDZDC->GetZDCP2Energy():0;}
   Double_t GetZDCEMEnergy(Int_t i=0) const {return fESDZDC?fESDZDC->GetZDCEMEnergy(i):0;}
   Int_t    GetZDCParticipants() const {return fESDZDC?fESDZDC->GetZDCParticipants():0;}
+  AliESDCentrality* GetCentrality() {return fCentrality;}
+
   void     SetZDC(Float_t n1Energy, Float_t p1Energy, Float_t em1Energy, Float_t em2Energy,
                   Float_t n2Energy, Float_t p2Energy, Int_t participants, Int_t nPartA,
                  Int_t nPartC, Double_t b, Double_t bA, Double_t bC, UInt_t recoflag)
   {if(fESDZDC) fESDZDC->SetZDC(n1Energy, p1Energy, em1Energy, em2Energy, n2Energy, p2Energy, 
             participants, nPartA, nPartC, b, bA, bC,  recoflag);}
-  void     SetZDCScaler(UInt_t *counts) {if(fESDZDC) fESDZDC->SetZDCScaler(counts);}
-
 
+  void SetCentrality(AliESDCentrality* cent) {fCentrality = cent;}
   // FMD
   void SetFMDData(AliESDFMD * obj);
   AliESDFMD *GetFMDData() const { return fESDFMD; }
@@ -237,10 +249,18 @@ public:
 
   const AliESDVertex *GetPrimaryVertex() const;
 
+
+
+  void SetTOFHeader(const AliTOFHeader * tofEventTime);
+  const AliTOFHeader *GetTOFHeader() const {return fTOFHeader;}
+
+
+
   void SetMultiplicity(const AliMultiplicity *mul);
 
   const AliMultiplicity *GetMultiplicity() const {return fSPDMult;}
-
+  void   EstimateMultiplicity(Int_t &tracklets,Int_t &trITSTPC,Int_t &trITSSApure,
+                             Double_t eta=1.,Bool_t useDCAFlag=kTRUE,Bool_t useV0Flag=kTRUE) const;
 
   Bool_t Clean(Float_t *cleanPars);
   Bool_t RemoveKink(Int_t i)   const;
@@ -251,13 +271,19 @@ public:
     return (const AliESDVertex *)(fSPDPileupVertices?fSPDPileupVertices->UncheckedAt(i):0x0);
   }
   Char_t  AddPileupVertexSPD(const AliESDVertex *vtx);
-  Bool_t  IsPileupFromSPD(Int_t ncont=2, Double_t distz=1., Double_t nSigmaDeltaZ=3., Double_t nSigmaXY=2., Int_t option=0) const;
-
   const AliESDVertex *GetPileupVertexTracks(Int_t i) const {
     return (const AliESDVertex *)(fTrkPileupVertices?fTrkPileupVertices->UncheckedAt(i):0x0);
   }
   Char_t  AddPileupVertexTracks(const AliESDVertex *vtx);
 
+  virtual Bool_t  IsPileupFromSPD(Int_t minContributors=3, 
+                                 Double_t minZdist=0.8, 
+                                 Double_t nSigmaZdist=3., 
+                                 Double_t nSigmaDiamXY=2., 
+                                 Double_t nSigmaDiamZ=5.) const;
+  
+  virtual Bool_t IsPileupFromSPDInMultBins() const;
+
   AliESDtrack *GetTrack(Int_t i) const {
     return (AliESDtrack *)(fTracks?fTracks->UncheckedAt(i):0x0);
   }
@@ -330,6 +356,13 @@ public:
   AliESDCaloCells *GetEMCALCells() const {return fEMCALCells; }  
   AliESDCaloCells *GetPHOSCells() const {return fPHOSCells; }  
 
+  AliESDCaloTrigger* GetCaloTrigger(TString calo) const 
+  {
+         if (calo.Contains("EMCAL")) return fEMCALTrigger;
+         else
+                 return fPHOSTrigger;
+  }
+       
   AliRawDataErrorLog *GetErrorLog(Int_t i) const {
     return (AliRawDataErrorLog *)(fErrorLogs?fErrorLogs->UncheckedAt(i):0x0);
   }
@@ -337,12 +370,6 @@ public:
 
   Int_t GetNumberOfErrorLogs()   const {return fErrorLogs?fErrorLogs->GetEntriesFast():0;}
 
-    
-  void AddPHOSTriggerPosition(TArrayF array)   { if(fPHOSTrigger) fPHOSTrigger->AddTriggerPosition(array); }
-  void AddPHOSTriggerAmplitudes(TArrayF array) { if(fPHOSTrigger) fPHOSTrigger->AddTriggerAmplitudes(array);}
-  void AddEMCALTriggerPosition(TArrayF array)  { if(fEMCALTrigger) fEMCALTrigger->AddTriggerPosition(array); }
-  void AddEMCALTriggerAmplitudes(TArrayF array){ if(fEMCALTrigger) fEMCALTrigger->AddTriggerAmplitudes(array); }
-
   Int_t GetNumberOfPileupVerticesSPD() const {
     return (fSPDPileupVertices?fSPDPileupVertices->GetEntriesFast():0);
   }
@@ -369,11 +396,6 @@ public:
   void SetUseOwnList(Bool_t b){fUseOwnList = b;}
   Bool_t GetUseOwnList() const {return fUseOwnList;}
 
-  TArrayF *GetEMCALTriggerPosition() const {return  fEMCALTrigger?fEMCALTrigger->GetTriggerPosition():0x0;}
-  TArrayF *GetEMCALTriggerAmplitudes() const {return  fEMCALTrigger?fEMCALTrigger->GetTriggerAmplitudes():0x0;}
-  TArrayF *GetPHOSTriggerPosition() const {return  fPHOSTrigger?fPHOSTrigger->GetTriggerPosition():0x0;}
-  TArrayF *GetPHOSTriggerAmplitudes() const {return  fPHOSTrigger?fPHOSTrigger->GetTriggerAmplitudes():0x0;}
-
   void ResetV0s() { if(fV0s) fV0s->Clear(); }
   void ResetCascades() { if(fCascades) fCascades->Clear(); }
   void Reset();
@@ -392,6 +414,13 @@ public:
   void SetStdNames();
   void CopyFromOldESD();
   TList* GetList() const {return fESDObjects;}
+  
+    //Following needed only for mixed event
+  virtual Int_t        EventIndex(Int_t)       const {return 0;}
+  virtual Int_t        EventIndexForCaloCluster(Int_t) const {return 0;}
+  virtual Int_t        EventIndexForPHOSCell(Int_t)    const {return 0;}
+  virtual Int_t        EventIndexForEMCALCell(Int_t)   const {return 0;} 
+  
 
 protected:
   AliESDEvent(const AliESDEvent&);
@@ -436,7 +465,12 @@ protected:
 
   static const char* fgkESDListName[kESDListN]; //!
 
-  ClassDef(AliESDEvent,11)  //ESDEvent class 
+  AliTOFHeader *fTOFHeader;  //! event times (and sigmas) as estimated by TOF
+                            //  combinatorial algorithm.
+                             //  It contains also TOF time resolution
+                             //  and T0spread as written in OCDB
+  AliESDCentrality *fCentrality; // Centrality for AA collision
+  ClassDef(AliESDEvent,12)  //ESDEvent class 
 };
 #endif