Adding AliVAODHeader
authormfloris <michele.floris@cern.ch>
Tue, 2 Sep 2014 19:40:35 +0000 (21:40 +0200)
committerhristov <Peter.Hristov@cern.ch>
Mon, 27 Oct 2014 12:44:01 +0000 (13:44 +0100)
PWG/DevNanoAOD/AliNanoAODHeader.h
STEER/AOD/AliAODEvent.h
STEER/AOD/AliAODHeader.cxx
STEER/AOD/AliAODHeader.h
STEER/CMakelibAOD.pkg
STEER/STEERBase/AliVAODHeader.h [new file with mode: 0644]

index 869725f..6c9c0ba 100644 (file)
@@ -1,12 +1,12 @@
 #ifndef _ALINANOAODHEADER_H_
 #define _ALINANOAODHEADER_H_
 
-#include "AliVHeader.h"
+#include "AliVAODHeader.h"
 #include "AliNanoAODStorage.h"
 
 
 
-class AliNanoAODHeader : public AliVHeader, public AliNanoAODStorage
+class AliNanoAODHeader : public AliVAODHeader, public AliNanoAODStorage
 {
 public:
   using AliVHeader::ClassName;
@@ -25,6 +25,25 @@ public:
   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) ;
index 3957a91..9e15039 100644 (file)
@@ -18,7 +18,9 @@
 
 #include "AliVEvent.h"
 #include "AliVParticle.h"
+#include "AliVHeader.h"
 #include "AliAODHeader.h"
+//#include "AliNanoAODHeader.h"
 #include "AliAODTrack.h"
 #include "AliAODVertex.h"
 #include "AliAODv0.h"
@@ -84,11 +86,19 @@ class AliAODEvent : public AliVEvent {
   Bool_t        AreTracksConnected() const {return fTracksConnected;}
 
   // -- Header
-  AliAODHeader *GetHeader()              const { return fHeader; }
-  void          AddHeader(const AliAODHeader* hdx)
+  AliAODHeader    *GetHeader()              const { return fHeader; }
+  void          AddHeader(const AliVHeader* hdx)
     {
-       delete fHeader; fHeader = new AliAODHeader(*hdx);
-       (fAODObjects->FirstLink())->SetObject(fHeader);
+      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 {
+        AliError(Form("Unknown header type %s", hdx->ClassName()));
+      }
+        (fAODObjects->FirstLink())->SetObject(fHeader);
     }
 
   virtual  Bool_t InitMagneticField() const {return fHeader ? fHeader->InitMagneticField() : kFALSE;}
@@ -316,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
+  AliAODHeader      *fHeader;       //! event information
   TClonesArray    *fTracks;       //! charged tracks
   TClonesArray    *fVertices;     //! vertices
   TClonesArray    *fV0s;          //! V0s
index e9475e8..ab8e3e8 100644 (file)
@@ -32,7 +32,7 @@ ClassImp(AliAODHeader)
 
 //______________________________________________________________________________
 AliAODHeader::AliAODHeader() : 
-  AliVHeader(),
+  AliVAODHeader(),
   fMagneticField(-999.),
   fMuonMagFieldScale(-999.),
   fCentrality(-999.),
@@ -98,7 +98,7 @@ AliAODHeader::AliAODHeader(Int_t nRun,
                           UInt_t nOrbit,
                           UInt_t nPeriod,
                           const Char_t *title) :
-  AliVHeader(),
+  AliVAODHeader(),
   fMagneticField(-999.),
   fMuonMagFieldScale(-999.),
   fCentrality(-999.),
@@ -186,7 +186,7 @@ AliAODHeader::AliAODHeader(Int_t nRun,
                           Int_t nDimuons,
                           Int_t nGlobalMuons,                 // AU
                           Int_t nGlobalDimuons) :             // AU
-  AliVHeader(),
+  AliVAODHeader(),
   fMagneticField(magField),
   fMuonMagFieldScale(muonMagFieldScale),
   fCentrality(cent),
@@ -258,7 +258,7 @@ AliAODHeader::~AliAODHeader()
 
 //______________________________________________________________________________
 AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
-  AliVHeader(hdr),
+  AliVAODHeader(hdr),
   fMagneticField(hdr.fMagneticField),
   fMuonMagFieldScale(hdr.fMuonMagFieldScale),
   fCentrality(hdr.fCentrality),
index e70a340..f3d53f9 100644 (file)
@@ -13,6 +13,7 @@
 #include <TVector2.h>
 
 #include "AliVHeader.h"
+#include "AliVAODHeader.h"
 #include "AliAODVertex.h"
 #include <TString.h>
 #include <TBits.h>
@@ -23,7 +24,7 @@ class TGeoHMatrix;
 class TString;
 
 
-class AliAODHeader : public AliVHeader {
+class AliAODHeader : public AliVAODHeader {
 
  public :
   AliAODHeader();
index f6c4f23..70cbf8c 100644 (file)
@@ -48,4 +48,4 @@ set ( DHDR AODLinkDef.h)
 
 set ( EXPORT ${HDRS} )
 
-set ( EINCLUDE  STEER/ESD STEER/STEERBase)
+set ( EINCLUDE  STEER/ESD STEER/STEERBase PWG/DevNanoAOD)
diff --git a/STEER/STEERBase/AliVAODHeader.h b/STEER/STEERBase/AliVAODHeader.h
new file mode 100644 (file)
index 0000000..fbc46ac
--- /dev/null
@@ -0,0 +1,52 @@
+#ifndef ALIVAODHEADER_H
+#define ALIVAODHEADER_H
+/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+
+/* $Id$ */
+
+//-------------------------------------------------------------------------
+//     AOD Virtual event header class
+//     We need a virtual class to abstract the AOD and NanoAOD header classes
+//     Author: Michele Floris, CERN
+//-------------------------------------------------------------------------
+
+#include <TVector2.h>
+
+#include "AliVHeader.h"
+//#include "AliAODVertex.h"
+#include <TString.h>
+#include <TBits.h>
+#include "AliCentrality.h"
+#include "AliEventplane.h"
+
+class TGeoHMatrix;
+class TString;
+
+
+class AliVAODHeader : public AliVHeader {
+
+ public :
+  AliVAODHeader() : AliVHeader() {};
+  
+  virtual ~AliVAODHeader() =0;
+
+  virtual void     SetMagneticField(Double_t magFld)        = 0;
+  virtual void     SetMuonMagFieldScale(Double_t magFldScl) = 0;
+  virtual void     SetDiamond(Float_t xy[2],Float_t cov[3]) = 0; 
+  virtual void     SetDiamondZ(Float_t z, Float_t sig2z)    = 0;
+  virtual Int_t    GetRunNumber()                  const    = 0;
+  virtual Double_t GetMagneticField()              const    = 0;
+  virtual Double_t GetMuonMagFieldScale()          const    = 0;
+  virtual Double_t GetDiamondX()                   const    = 0;
+  virtual Double_t GetDiamondY()                   const    = 0;
+  virtual Double_t GetDiamondZ()                   const    = 0;
+  virtual void     GetDiamondCovXY(Float_t cov[3]) const    = 0;
+  virtual Double_t GetSigma2DiamondX()             const    = 0;
+  virtual Double_t GetSigma2DiamondY()             const    = 0;
+  virtual Double_t GetSigma2DiamondZ()             const    = 0;
+
+};
+
+#endif