From a87bdc43af2fc56eb17ca06214c7a1885e62268a Mon Sep 17 00:00:00 2001 From: mfloris Date: Tue, 2 Sep 2014 21:40:35 +0200 Subject: [PATCH] Adding AliVAODHeader --- PWG/DevNanoAOD/AliNanoAODHeader.h | 23 ++++++++++++-- STEER/AOD/AliAODEvent.h | 20 +++++++++--- STEER/AOD/AliAODHeader.cxx | 8 ++--- STEER/AOD/AliAODHeader.h | 3 +- STEER/CMakelibAOD.pkg | 2 +- STEER/STEERBase/AliVAODHeader.h | 52 +++++++++++++++++++++++++++++++ 6 files changed, 95 insertions(+), 13 deletions(-) create mode 100644 STEER/STEERBase/AliVAODHeader.h diff --git a/PWG/DevNanoAOD/AliNanoAODHeader.h b/PWG/DevNanoAOD/AliNanoAODHeader.h index 869725f8189..6c9c0ba218d 100644 --- a/PWG/DevNanoAOD/AliNanoAODHeader.h +++ b/PWG/DevNanoAOD/AliNanoAODHeader.h @@ -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) ; diff --git a/STEER/AOD/AliAODEvent.h b/STEER/AOD/AliAODEvent.h index 3957a91c198..9e15039f223 100644 --- a/STEER/AOD/AliAODEvent.h +++ b/STEER/AOD/AliAODEvent.h @@ -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(hdx)) { + fHeader = new AliAODHeader(*(const AliAODHeader*)hdx); + // } else if (dynamic_cast(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 diff --git a/STEER/AOD/AliAODHeader.cxx b/STEER/AOD/AliAODHeader.cxx index e9475e8aeda..ab8e3e8e3ce 100644 --- a/STEER/AOD/AliAODHeader.cxx +++ b/STEER/AOD/AliAODHeader.cxx @@ -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), diff --git a/STEER/AOD/AliAODHeader.h b/STEER/AOD/AliAODHeader.h index e70a3409567..f3d53f9cb38 100644 --- a/STEER/AOD/AliAODHeader.h +++ b/STEER/AOD/AliAODHeader.h @@ -13,6 +13,7 @@ #include #include "AliVHeader.h" +#include "AliVAODHeader.h" #include "AliAODVertex.h" #include #include @@ -23,7 +24,7 @@ class TGeoHMatrix; class TString; -class AliAODHeader : public AliVHeader { +class AliAODHeader : public AliVAODHeader { public : AliAODHeader(); diff --git a/STEER/CMakelibAOD.pkg b/STEER/CMakelibAOD.pkg index f6c4f23636a..70cbf8cc3c8 100644 --- a/STEER/CMakelibAOD.pkg +++ b/STEER/CMakelibAOD.pkg @@ -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 index 00000000000..fbc46ac9903 --- /dev/null +++ b/STEER/STEERBase/AliVAODHeader.h @@ -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 + +#include "AliVHeader.h" +//#include "AliAODVertex.h" +#include +#include +#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 -- 2.43.0