3ccce648e15922bfa01565051920d7fa10390678
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliVAODHeader.h
1 #ifndef ALIVAODHEADER_H
2 #define ALIVAODHEADER_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //     AOD Virtual event header class
10 //     We need a virtual class to abstract the AOD and NanoAOD header classes
11 //     Author: Michele Floris, CERN
12 //-------------------------------------------------------------------------
13
14 #include <TVector2.h>
15
16 #include "AliVHeader.h"
17 //#include "AliAODVertex.h"
18 #include <TString.h>
19 #include <TBits.h>
20 #include "AliCentrality.h"
21 #include "AliEventplane.h"
22
23 class TGeoHMatrix;
24 class TString;
25
26
27 class AliVAODHeader : public AliVHeader {
28
29  public :
30   AliVAODHeader() : AliVHeader() {};
31  
32   
33   virtual ~AliVAODHeader() =0;
34
35   virtual void     SetMagneticField(Double_t magFld)        = 0;
36   virtual void     SetMuonMagFieldScale(Double_t magFldScl) = 0;
37   virtual void     SetDiamond(Float_t xy[2],Float_t cov[3]) = 0; 
38   virtual void     SetDiamondZ(Float_t z, Float_t sig2z)    = 0;
39   virtual Int_t    GetRunNumber()                  const    = 0;
40   virtual Double_t GetMagneticField()              const    = 0;
41   virtual Double_t GetMuonMagFieldScale()          const    = 0;
42   virtual Double_t GetDiamondX()                   const    = 0;
43   virtual Double_t GetDiamondY()                   const    = 0;
44   virtual Double_t GetDiamondZ()                   const    = 0;
45   virtual void     GetDiamondCovXY(Float_t cov[3]) const    = 0;
46   virtual Double_t GetSigma2DiamondX()             const    = 0;
47   virtual Double_t GetSigma2DiamondY()             const    = 0;
48   virtual Double_t GetSigma2DiamondZ()             const    = 0;
49
50   virtual Bool_t   InitMagneticField()      const       = 0;
51   virtual void     SetRunNumber(Int_t nRun)             = 0;
52   virtual void     SetOrbitNumber(UInt_t nOr)           = 0;
53   virtual void     SetPeriodNumber(UInt_t nPer)         = 0;
54   virtual void     SetBunchCrossNumber(UShort_t nBx)    = 0;
55   virtual void     SetEventType(UInt_t evttype)         = 0;
56   virtual UInt_t   GetEventType()           const       = 0;
57   virtual void     SetTriggerMask(ULong64_t trigMsk)    = 0;
58   virtual void     SetTriggerCluster(UChar_t trigClus)  = 0;
59   virtual void     SetFiredTriggerClasses(TString trig) = 0;
60   virtual TString  GetFiredTriggerClasses() const       = 0;
61   virtual Double_t GetZDCN1Energy()         const       = 0;
62   virtual Double_t GetZDCP1Energy()         const       = 0;
63   virtual Double_t GetZDCN2Energy()         const       = 0;
64   virtual Double_t GetZDCP2Energy()         const       = 0;
65
66   virtual Double_t GetZDCEMEnergy(Int_t /* i */)            const  = 0;
67   virtual Int_t    GetNumberOfESDTracks()                   const  = 0;
68   virtual UInt_t   GetNumberOfITSClusters(Int_t /* ilay */) const  = 0;
69   virtual Float_t  GetT0spread(Int_t /* i */)               const  = 0;
70   // FIXME: THIS IS UGLY!!!!                                       
71   // FIXME: use dynamic cast in AliAODEVent?                       
72   virtual AliCentrality* GetCentralityP()                   const  = 0;
73   virtual AliEventplane* GetEventplaneP()                   const  = 0;
74   virtual const Float_t* GetVZEROEqFactors()                const  = 0;
75   virtual Float_t        GetVZEROEqFactors(Int_t /* i */)   const  = 0;
76   virtual void           SetVZEROEqFactors(const Float_t* /*factors*/)  = 0;
77   virtual UInt_t GetOfflineTrigger()  = 0;
78
79
80 };
81
82 #endif