#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;
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) ;
#include "AliVEvent.h"
#include "AliVParticle.h"
+#include "AliVHeader.h"
#include "AliAODHeader.h"
+//#include "AliNanoAODHeader.h"
#include "AliAODTrack.h"
#include "AliAODVertex.h"
#include "AliAODv0.h"
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;}
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
//______________________________________________________________________________
AliAODHeader::AliAODHeader() :
- AliVHeader(),
+ AliVAODHeader(),
fMagneticField(-999.),
fMuonMagFieldScale(-999.),
fCentrality(-999.),
UInt_t nOrbit,
UInt_t nPeriod,
const Char_t *title) :
- AliVHeader(),
+ AliVAODHeader(),
fMagneticField(-999.),
fMuonMagFieldScale(-999.),
fCentrality(-999.),
Int_t nDimuons,
Int_t nGlobalMuons, // AU
Int_t nGlobalDimuons) : // AU
- AliVHeader(),
+ AliVAODHeader(),
fMagneticField(magField),
fMuonMagFieldScale(muonMagFieldScale),
fCentrality(cent),
//______________________________________________________________________________
AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
- AliVHeader(hdr),
+ AliVAODHeader(hdr),
fMagneticField(hdr.fMagneticField),
fMuonMagFieldScale(hdr.fMuonMagFieldScale),
fCentrality(hdr.fCentrality),
#include <TVector2.h>
#include "AliVHeader.h"
+#include "AliVAODHeader.h"
#include "AliAODVertex.h"
#include <TString.h>
#include <TBits.h>
class TString;
-class AliAODHeader : public AliVHeader {
+class AliAODHeader : public AliVAODHeader {
public :
AliAODHeader();
set ( EXPORT ${HDRS} )
-set ( EINCLUDE STEER/ESD STEER/STEERBase)
+set ( EINCLUDE STEER/ESD STEER/STEERBase PWG/DevNanoAOD)
--- /dev/null
+#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