AliAODEvent::GetHeader now return AliVHeader
authormfloris <michele.floris@cern.ch>
Wed, 3 Sep 2014 08:23:08 +0000 (10:23 +0200)
committerhristov <Peter.Hristov@cern.ch>
Mon, 27 Oct 2014 12:44:02 +0000 (13:44 +0100)
This required patching the base classes in a few places and moving
some of the NanoAOD to STEER/AOD and checking which actual header is
contained in the AODEvent class in a few places.  This commit does not
compile (analysis tasks which use AliAODEvent::GetHeader still need to
be patched)

15 files changed:
ANALYSIS/AliAnalysisTaskSE.cxx
ANALYSIS/AliAnalysisTaskSE.h
PWG/CMakelibPWGDevNanoAOD.pkg
PWG/DevNanoAOD/AliNanoAODHeader.h [deleted file]
STEER/AOD/AliAODEvent.cxx
STEER/AOD/AliAODEvent.h
STEER/AOD/AliAODInputHandler.cxx
STEER/AOD/AliNanoAODHeader.cxx [moved from PWG/DevNanoAOD/AliNanoAODHeader.cxx with 100% similarity]
STEER/AOD/AliNanoAODHeader.h [new file with mode: 0644]
STEER/AOD/AliNanoAODStorage.cxx [moved from PWG/DevNanoAOD/AliNanoAODStorage.cxx with 100% similarity]
STEER/AOD/AliNanoAODStorage.h [moved from PWG/DevNanoAOD/AliNanoAODStorage.h with 100% similarity]
STEER/AOD/AliNanoAODTrackMapping.cxx [moved from PWG/DevNanoAOD/AliNanoAODTrackMapping.cxx with 100% similarity]
STEER/AOD/AliNanoAODTrackMapping.h [moved from PWG/DevNanoAOD/AliNanoAODTrackMapping.h with 100% similarity]
STEER/CMakelibAOD.pkg
STEER/STEERBase/AliVAODHeader.h

index 074bdb3..34b2610 100644 (file)
@@ -55,7 +55,7 @@
 ClassImp(AliAnalysisTaskSE)
 
 ////////////////////////////////////////////////////////////////////////
-AliAODHeader*    AliAnalysisTaskSE::fgAODHeader         = NULL;
+AliVHeader*      AliAnalysisTaskSE::fgAODHeader         = NULL;
 AliTOFHeader*    AliAnalysisTaskSE::fgTOFHeader         = NULL;
 AliAODVZERO*     AliAnalysisTaskSE::fgAODVZERO          = NULL;
 TClonesArray*    AliAnalysisTaskSE::fgAODTracks         = NULL;
index e66753d..78aaaaf 100644 (file)
@@ -88,7 +88,7 @@ class AliAnalysisTaskSE : public AliAnalysisTask
     // Output histos for QA
     TList*                fHistosQA;        //! Output histos for QA
     // Provisions for replication
-    static AliAODHeader*    fgAODHeader;        //! Header for replication
+    static AliVHeader*      fgAODHeader;        //! Header for replication
     static AliTOFHeader*    fgTOFHeader;        //! TOFHeader for replication
     static AliAODVZERO*     fgAODVZERO;         //! VZERO for replication
     static TClonesArray*    fgAODTracks;        //! Tracks for replication
index 101a93e..e5dc493 100644 (file)
@@ -31,11 +31,8 @@ set ( SRCS
     DevNanoAOD/AliAnalysisTaskNanoAODFilter.cxx
     DevNanoAOD/AliESEHelpers.cxx
     DevNanoAOD/AliNanoAODCustomSetter.cxx
-    DevNanoAOD/AliNanoAODHeader.cxx
     DevNanoAOD/AliNanoAODReplicator.cxx
-    DevNanoAOD/AliNanoAODStorage.cxx
     DevNanoAOD/AliNanoAODTrack.cxx
-    DevNanoAOD/AliNanoAODTrackMapping.cxx
     DevNanoAOD/AliAnalysisTaskSpectraAllChNanoAOD.cxx
     )
 
diff --git a/PWG/DevNanoAOD/AliNanoAODHeader.h b/PWG/DevNanoAOD/AliNanoAODHeader.h
deleted file mode 100644 (file)
index 6c9c0ba..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef _ALINANOAODHEADER_H_
-#define _ALINANOAODHEADER_H_
-
-#include "AliVAODHeader.h"
-#include "AliNanoAODStorage.h"
-
-
-
-class AliNanoAODHeader : public AliVAODHeader, public AliNanoAODStorage
-{
-public:
-  using AliVHeader::ClassName;
-  AliNanoAODHeader()  {;}
-  AliNanoAODHeader(Int_t size){ AllocateInternalStorage(size);}
-  virtual ~AliNanoAODHeader(){;}
-
-
-  // Interface methods
-  // AliNanoAODHeader(const AliVHeader& evt); 
-  AliNanoAODHeader& operator=(const AliNanoAODHeader& evt);
-  
-  virtual UShort_t  GetBunchCrossNumber()   const { AliError("Not implemented");return 0;}
-  virtual UInt_t    GetOrbitNumber()        const { AliError("Not implemented");return 0;}
-  virtual UInt_t    GetPeriodNumber()       const { AliError("Not implemented");return 0;}
-  virtual ULong64_t GetTriggerMask()        const { AliError("Not implemented");return 0;}
-  virtual UChar_t   GetTriggerCluster()     const { AliError("Not implemented");return 0;}
-  virtual UInt_t    GetEventType()          const { AliError("Not implemented");return 0;}
-
-  virtual Bool_t   InitMagneticField()             const    {AliError("Not Implemented"); return 0;};
-  virtual void     SetRunNumber(Int_t /*n*/)                    {AliError("Not Implemented");};
-  virtual void     SetMagneticField(Double_t /*magFld*/)        {AliError("Not Implemented");};
-  virtual void     SetMuonMagFieldScale(Double_t /*magFldScl*/) {AliError("Not Implemented");};
-  virtual void     SetDiamond(Float_t */*xy[2]*/,Float_t */*cov[3]*/) {AliError("Not Implemented");}; 
-  virtual void     SetDiamondZ(Float_t /*z*/, Float_t /*sig2z*/)    {AliError("Not Implemented");};
-  virtual Int_t    GetRunNumber()                  const    {AliError("Not Implemented"); return 0;};
-  virtual Double_t GetMuonMagFieldScale()          const    {AliError("Not Implemented"); return 0;};
-  virtual Double_t GetDiamondX()                   const    {AliError("Not Implemented"); return 0;};
-  virtual Double_t GetDiamondY()                   const    {AliError("Not Implemented"); return 0;};
-  virtual Double_t GetDiamondZ()                   const    {AliError("Not Implemented"); return 0;};
-  virtual void     GetDiamondCovXY(Float_t */*cov[3]*/) const    {AliError("Not Implemented");};
-  virtual Double_t GetSigma2DiamondX()             const    {AliError("Not Implemented"); return 0;};
-  virtual Double_t GetSigma2DiamondY()             const    {AliError("Not Implemented"); return 0;};
-  virtual Double_t GetSigma2DiamondZ()             const    {AliError("Not Implemented"); return 0;};
-
-
-
-  virtual void Print(Option_t* /*option = ""*/) const  {Printf("I'm a special header!");}
-  virtual void Clear(Option_t * opt) ;
-
-
-  Double_t  GetMagneticField()      const { return GetVar(1); }
-  Double_t  GetCentrality (const char *estimator = "V0M") { return GetVar(0);}
-  
-  ClassDef(AliNanoAODHeader, 1)
-
-};
-
-#endif /* _ALINANOAODHEADER_H_ */
index 02f9a5f..93a397f 100644 (file)
@@ -99,7 +99,8 @@ AliAODEvent::AliAODEvent(const AliAODEvent& aod):
   fAODFolder(0),
   fConnected(kFALSE),
   fTracksConnected(kFALSE),
-  fHeader(new AliAODHeader(*aod.fHeader)),
+  //  fHeader(new AliAODHeader(*aod.fHeader)),
+  fHeader(0),
   fTracks(new TClonesArray(*aod.fTracks)),
   fVertices(new TClonesArray(*aod.fVertices)),
   fV0s(new TClonesArray(*aod.fV0s)),
@@ -122,6 +123,7 @@ AliAODEvent::AliAODEvent(const AliAODEvent& aod):
   fTrdTracks(new TClonesArray(*aod.fTrdTracks))
 {
   // Copy constructor
+  AddHeader(fHeader);
   AddObject(fHeader);
   AddObject(fTracks);
   AddObject(fVertices);
@@ -399,7 +401,7 @@ void AliAODEvent::GetStdContent()
 {
   // set pointers for standard content
 
-  fHeader        = (AliAODHeader*)fAODObjects->FindObject("header");
+  fHeader        = (AliVAODHeader*)fAODObjects->FindObject("header");
   fTracks        = (TClonesArray*)fAODObjects->FindObject("tracks");
   fVertices      = (TClonesArray*)fAODObjects->FindObject("vertices");
   fV0s           = (TClonesArray*)fAODObjects->FindObject("v0s");
@@ -990,6 +992,7 @@ void AliAODEvent::Reset()
   }
 }
 
+// FIXME: Why is this in event and not in header?
 Float_t AliAODEvent::GetVZEROEqMultiplicity(Int_t i) const
 {
   // Get VZERO Multiplicity for channel i
index 9e15039..aec39d8 100644 (file)
@@ -20,7 +20,7 @@
 #include "AliVParticle.h"
 #include "AliVHeader.h"
 #include "AliAODHeader.h"
-//#include "AliNanoAODHeader.h"
+#include "AliNanoAODHeader.h"
 #include "AliAODTrack.h"
 #include "AliAODVertex.h"
 #include "AliAODv0.h"
@@ -86,14 +86,14 @@ class AliAODEvent : public AliVEvent {
   Bool_t        AreTracksConnected() const {return fTracksConnected;}
 
   // -- Header
-  AliAODHeader    *GetHeader()              const { return fHeader; }
+  AliVHeader    *GetHeader()              const { return fHeader; }
   void          AddHeader(const AliVHeader* hdx)
     {
       delete fHeader; 
       if(dynamic_cast<const AliAODHeader*>(hdx)) {
        fHeader = new AliAODHeader(*(const AliAODHeader*)hdx);
-      // } else if (dynamic_cast<const AliNanoAODHeader*>(hdx)) {
-      //   fHeader = new AliNanoAODHeader(*(const AliNanoAODHeader*)hdx);
+      } else if (dynamic_cast<const AliNanoAODHeader*>(hdx)) {
+        fHeader = new AliNanoAODHeader(*(const AliNanoAODHeader*)hdx);
       }
       else {
         AliError(Form("Unknown header type %s", hdx->ClassName()));
@@ -326,7 +326,7 @@ class AliAODEvent : public AliVEvent {
   Bool_t   fConnected;  //! flag if leaves are alreday connected 
   Bool_t   fTracksConnected;      //! flag if tracks have already pointer to event set
   // standard content
-  AliAODHeader      *fHeader;       //! event information
+  AliVAODHeader   *fHeader;       //! event information
   TClonesArray    *fTracks;       //! charged tracks
   TClonesArray    *fVertices;     //! vertices
   TClonesArray    *fV0s;          //! V0s
index 32ff57c..7f52973 100644 (file)
@@ -149,7 +149,7 @@ Bool_t AliAODInputHandler::BeginEvent(Long64_t entry)
     if (fEventCuts)
       fIsSelectedResult = fEventCuts->GetSelectionMask(fEvent);
     else
-      fIsSelectedResult = fEvent->GetHeader()->GetOfflineTrigger();
+      fIsSelectedResult = static_cast<AliVAODHeader*>(fEvent->GetHeader())->GetOfflineTrigger();
 
     if (fMixingHandler) fMixingHandler->BeginEvent(entry);
 
diff --git a/STEER/AOD/AliNanoAODHeader.h b/STEER/AOD/AliNanoAODHeader.h
new file mode 100644 (file)
index 0000000..60e618d
--- /dev/null
@@ -0,0 +1,85 @@
+#ifndef _ALINANOAODHEADER_H_
+#define _ALINANOAODHEADER_H_
+
+#include "AliVAODHeader.h"
+#include "AliNanoAODStorage.h"
+
+
+
+class AliNanoAODHeader : public AliVAODHeader, public AliNanoAODStorage
+{
+public:
+  using AliVHeader::ClassName;
+  AliNanoAODHeader()  {;}
+  AliNanoAODHeader(Int_t size){ AllocateInternalStorage(size);}
+  virtual ~AliNanoAODHeader(){;}
+
+
+  // Interface methods
+  // AliNanoAODHeader(const AliVHeader& evt); 
+  AliNanoAODHeader& operator=(const AliNanoAODHeader& evt);
+  
+  virtual UShort_t  GetBunchCrossNumber()   const { AliError("Not implemented");return 0;}
+  virtual UInt_t    GetOrbitNumber()        const { AliError("Not implemented");return 0;}
+  virtual UInt_t    GetPeriodNumber()       const { AliError("Not implemented");return 0;}
+  virtual ULong64_t GetTriggerMask()        const { AliError("Not implemented");return 0;}
+  virtual UChar_t   GetTriggerCluster()     const { AliError("Not implemented");return 0;}
+  virtual UInt_t    GetEventType()          const { AliError("Not implemented");return 0;}
+
+  virtual Bool_t   InitMagneticField()             const    {AliError("Not Implemented"); return 0;};
+  virtual void     SetRunNumber(Int_t /*n*/)                    {AliError("Not Implemented");};
+  virtual void     SetMagneticField(Double_t /*magFld*/)        {AliError("Not Implemented");};
+  virtual void     SetMuonMagFieldScale(Double_t /*magFldScl*/) {AliError("Not Implemented");};
+  virtual void     SetDiamond(Float_t */*xy[2]*/,Float_t */*cov[3]*/) {AliError("Not Implemented");}; 
+  virtual void     SetDiamondZ(Float_t /*z*/, Float_t /*sig2z*/)    {AliError("Not Implemented");};
+  virtual Int_t    GetRunNumber()                  const    {AliError("Not Implemented"); return 0;};
+  virtual Double_t GetMuonMagFieldScale()          const    {AliError("Not Implemented"); return 0;};
+  virtual Double_t GetDiamondX()                   const    {AliError("Not Implemented"); return 0;};
+  virtual Double_t GetDiamondY()                   const    {AliError("Not Implemented"); return 0;};
+  virtual Double_t GetDiamondZ()                   const    {AliError("Not Implemented"); return 0;};
+  virtual void     GetDiamondCovXY(Float_t */*cov[3]*/) const    {AliError("Not Implemented");};
+  virtual Double_t GetSigma2DiamondX()             const    {AliError("Not Implemented"); return 0;};
+  virtual Double_t GetSigma2DiamondY()             const    {AliError("Not Implemented"); return 0;};
+  virtual Double_t GetSigma2DiamondZ()             const    {AliError("Not Implemented"); return 0;};
+
+  virtual void     SetOrbitNumber(UInt_t /* nOr */)           {AliError("Not Implemented"); };
+  virtual void     SetPeriodNumber(UInt_t /* nPer */)         {AliError("Not Implemented"); };
+  virtual void     SetBunchCrossNumber(UShort_t /* nBx */)    {AliError("Not Implemented"); };
+  virtual void     SetEventType(UInt_t /* evttype */)         {AliError("Not Implemented"); };
+  virtual void     SetTriggerMask(ULong64_t /* trigMsk */)    {AliError("Not Implemented"); };
+  virtual void     SetTriggerCluster(UChar_t /* trigClus */)  {AliError("Not Implemented"); };
+  virtual void     SetFiredTriggerClasses(TString /* trig */) {AliError("Not Implemented"); };
+  virtual TString  GetFiredTriggerClasses() const             {AliError("Not Implemented"); return "";};
+  virtual Double_t GetZDCN1Energy()         const             {AliError("Not Implemented"); return 0;};
+  virtual Double_t GetZDCP1Energy()         const             {AliError("Not Implemented"); return 0;};
+  virtual Double_t GetZDCN2Energy()         const             {AliError("Not Implemented"); return 0;};
+  virtual Double_t GetZDCP2Energy()         const             {AliError("Not Implemented"); return 0;};
+
+  virtual Double_t GetZDCEMEnergy(Int_t /* i */) const            {AliError("Not Implemented"); return 0;};
+  virtual Int_t    GetNumberOfESDTracks()  const            {AliError("Not Implemented"); return 0;};
+  virtual UInt_t   GetNumberOfITSClusters(Int_t /* ilay */) const {AliError("Not Implemented"); return 0;};
+  virtual Float_t  GetT0spread(Int_t /* i */)               const {AliError("Not Implemented"); return 0;};
+  // FIXME: THIS IS UGLY!!!!
+  // FIXME: use dynamic cast in AliAODEVent?
+  virtual AliCentrality* GetCentralityP()  const {AliError("Not Implemented"); return 0;};
+  virtual AliEventplane* GetEventplaneP()  const {AliError("Not Implemented"); return 0;};
+  virtual const Float_t* GetVZEROEqFactors() const {AliError("Not Implemented"); return 0;};
+  virtual Float_t        GetVZEROEqFactors(Int_t /* i */) const {AliError("Not Implemented"); return 0;};
+  virtual void           SetVZEROEqFactors(const Float_t* /*factors*/) {AliError("Not Implemented"); } 
+
+  virtual UInt_t GetOfflineTrigger()  {AliError("Not Implemented"); return 0;};
+
+
+  virtual void Print(Option_t* /*option = ""*/) const  {Printf("I'm a special header!");}
+  virtual void Clear(Option_t * opt) ;
+
+
+  Double_t  GetMagneticField()      const { return GetVar(1); }
+  Double_t  GetCentrality (const char *estimator = "V0M") { return GetVar(0);}
+  
+  ClassDef(AliNanoAODHeader, 1)
+
+};
+
+#endif /* _ALINANOAODHEADER_H_ */
index 70cbf8c..a4684c9 100644 (file)
@@ -5,6 +5,7 @@ set ( SRCS  AliAODEvent.cxx AliAODHeader.cxx AliAODTrack.cxx AliAODPid.cxx AliAO
 set ( SRCS  
     AOD/AliAODEvent.cxx 
     AOD/AliAODHeader.cxx 
+    AOD/AliNanoAODHeader.cxx
     AOD/AliAODTrack.cxx 
     AOD/AliAODPid.cxx 
     AOD/AliAODVertex.cxx 
@@ -40,6 +41,8 @@ set ( SRCS
     AOD/AliAODHMPIDrings.cxx   
     AOD/AliAODTrdTrack.cxx
     AOD/AliAODTrdTracklet.cxx
+    AOD/AliNanoAODStorage.cxx
+    AOD/AliNanoAODTrackMapping.cxx
     )
 
 string( REPLACE ".cxx" ".h" HDRS "${SRCS}")
@@ -48,4 +51,4 @@ set ( DHDR AODLinkDef.h)
 
 set ( EXPORT ${HDRS} )
 
-set ( EINCLUDE  STEER/ESD STEER/STEERBase PWG/DevNanoAOD)
+set ( EINCLUDE  STEER/ESD STEER/STEERBase)
index fbc46ac..3ccce64 100644 (file)
@@ -47,6 +47,36 @@ class AliVAODHeader : public AliVHeader {
   virtual Double_t GetSigma2DiamondY()             const    = 0;
   virtual Double_t GetSigma2DiamondZ()             const    = 0;
 
+  virtual Bool_t   InitMagneticField()      const       = 0;
+  virtual void     SetRunNumber(Int_t nRun)             = 0;
+  virtual void     SetOrbitNumber(UInt_t nOr)           = 0;
+  virtual void     SetPeriodNumber(UInt_t nPer)         = 0;
+  virtual void     SetBunchCrossNumber(UShort_t nBx)    = 0;
+  virtual void     SetEventType(UInt_t evttype)         = 0;
+  virtual UInt_t   GetEventType()           const       = 0;
+  virtual void     SetTriggerMask(ULong64_t trigMsk)    = 0;
+  virtual void     SetTriggerCluster(UChar_t trigClus)  = 0;
+  virtual void     SetFiredTriggerClasses(TString trig) = 0;
+  virtual TString  GetFiredTriggerClasses() const       = 0;
+  virtual Double_t GetZDCN1Energy()         const       = 0;
+  virtual Double_t GetZDCP1Energy()         const       = 0;
+  virtual Double_t GetZDCN2Energy()         const       = 0;
+  virtual Double_t GetZDCP2Energy()         const       = 0;
+
+  virtual Double_t GetZDCEMEnergy(Int_t /* i */)            const  = 0;
+  virtual Int_t    GetNumberOfESDTracks()                   const  = 0;
+  virtual UInt_t   GetNumberOfITSClusters(Int_t /* ilay */) const  = 0;
+  virtual Float_t  GetT0spread(Int_t /* i */)               const  = 0;
+  // FIXME: THIS IS UGLY!!!!                                       
+  // FIXME: use dynamic cast in AliAODEVent?                       
+  virtual AliCentrality* GetCentralityP()                   const  = 0;
+  virtual AliEventplane* GetEventplaneP()                   const  = 0;
+  virtual const Float_t* GetVZEROEqFactors()                const  = 0;
+  virtual Float_t        GetVZEROEqFactors(Int_t /* i */)   const  = 0;
+  virtual void           SetVZEROEqFactors(const Float_t* /*factors*/)  = 0;
+  virtual UInt_t GetOfflineTrigger()  = 0;
+
+
 };
 
 #endif