ROOT logo
#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() {};

  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;

  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 Double_t       GetCentrality () 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;
  virtual Int_t          GetRefMultiplicity()    const  =0;
  virtual Double_t       GetEventplane()         const =0;


};

#endif
 AliVAODHeader.h:1
 AliVAODHeader.h:2
 AliVAODHeader.h:3
 AliVAODHeader.h:4
 AliVAODHeader.h:5
 AliVAODHeader.h:6
 AliVAODHeader.h:7
 AliVAODHeader.h:8
 AliVAODHeader.h:9
 AliVAODHeader.h:10
 AliVAODHeader.h:11
 AliVAODHeader.h:12
 AliVAODHeader.h:13
 AliVAODHeader.h:14
 AliVAODHeader.h:15
 AliVAODHeader.h:16
 AliVAODHeader.h:17
 AliVAODHeader.h:18
 AliVAODHeader.h:19
 AliVAODHeader.h:20
 AliVAODHeader.h:21
 AliVAODHeader.h:22
 AliVAODHeader.h:23
 AliVAODHeader.h:24
 AliVAODHeader.h:25
 AliVAODHeader.h:26
 AliVAODHeader.h:27
 AliVAODHeader.h:28
 AliVAODHeader.h:29
 AliVAODHeader.h:30
 AliVAODHeader.h:31
 AliVAODHeader.h:32
 AliVAODHeader.h:33
 AliVAODHeader.h:34
 AliVAODHeader.h:35
 AliVAODHeader.h:36
 AliVAODHeader.h:37
 AliVAODHeader.h:38
 AliVAODHeader.h:39
 AliVAODHeader.h:40
 AliVAODHeader.h:41
 AliVAODHeader.h:42
 AliVAODHeader.h:43
 AliVAODHeader.h:44
 AliVAODHeader.h:45
 AliVAODHeader.h:46
 AliVAODHeader.h:47
 AliVAODHeader.h:48
 AliVAODHeader.h:49
 AliVAODHeader.h:50
 AliVAODHeader.h:51
 AliVAODHeader.h:52
 AliVAODHeader.h:53
 AliVAODHeader.h:54
 AliVAODHeader.h:55
 AliVAODHeader.h:56
 AliVAODHeader.h:57
 AliVAODHeader.h:58
 AliVAODHeader.h:59
 AliVAODHeader.h:60
 AliVAODHeader.h:61
 AliVAODHeader.h:62
 AliVAODHeader.h:63
 AliVAODHeader.h:64
 AliVAODHeader.h:65
 AliVAODHeader.h:66
 AliVAODHeader.h:67
 AliVAODHeader.h:68
 AliVAODHeader.h:69
 AliVAODHeader.h:70
 AliVAODHeader.h:71
 AliVAODHeader.h:72
 AliVAODHeader.h:73
 AliVAODHeader.h:74
 AliVAODHeader.h:75
 AliVAODHeader.h:76
 AliVAODHeader.h:77
 AliVAODHeader.h:78
 AliVAODHeader.h:79
 AliVAODHeader.h:80
 AliVAODHeader.h:81
 AliVAODHeader.h:82
 AliVAODHeader.h:83
 AliVAODHeader.h:84
 AliVAODHeader.h:85