ROOT logo
#ifndef ALIAODZDC_H
#define ALIAODZDC_H

//-------------------------------------------------------------------------
//     Class for AOD ZDC data
//     Author: Chiara Oppedisano
//     Chiara.Oppedisano@cern.ch March 2011
//-------------------------------------------------------------------------

#include <AliVZDC.h>

class AliAODZDC : public AliVZDC {
public:

  AliAODZDC();
  AliAODZDC(const AliAODZDC& zdcAOD);
  AliAODZDC &operator=(const AliAODZDC& zdcAOD);
 
  virtual ~AliAODZDC() {};
 
  // Getters  
   
  virtual Short_t  GetZDCParticipants() const {return fZDCParticipants;}
  virtual Short_t  GetZDCPartSideA()	const {return fZDCPartSideA;}
  virtual Short_t  GetZDCPartSideC()	const {return fZDCPartSideC;}
  virtual Double_t GetImpactParameter()  const {return fImpactParameter;}
  virtual Double_t GetImpactParamSideA() const {return fImpactParamSideA;}
  virtual Double_t GetImpactParamSideC() const {return fImpactParamSideC;}

  virtual Double_t GetZNCEnergy() const;
  virtual Double_t GetZPCEnergy() const;
  virtual Double_t GetZNAEnergy() const;
  virtual Double_t GetZPAEnergy() const;
  virtual Double_t GetZEM1Energy() const {return fZEM1Energy;}
  virtual Double_t GetZEM2Energy() const {return fZEM2Energy;}
  
  virtual const Double_t *GetZNCTowerEnergy() const {return fZNCTowerEnergy;}
  virtual const Double_t *GetZNATowerEnergy() const {return fZNATowerEnergy;}
  virtual const Double_t *GetZPCTowerEnergy() const {return fZPCTowerEnergy;}
  virtual const Double_t *GetZPATowerEnergy() const {return fZPATowerEnergy;}
  virtual const Double_t *GetZNCTowerEnergyLR() const {return fZNCTowerEnergyLR;}
  virtual const Double_t *GetZNATowerEnergyLR() const {return fZNATowerEnergyLR;}
  
  virtual Bool_t GetZNCentroidInPbPb(Float_t beamEne, Double_t centrZNC[2], Double_t centrZNA[2]);
  virtual Bool_t GetZNCentroidInpp(Double_t centrZNC[2], Double_t centrZNA[2]);

  virtual Float_t GetZNCTime() const {return fZNCTDC;}
  virtual Float_t GetZNATime() const {return fZNATDC;}

  virtual Float_t GetZDCTimeSum() const {return fZDCTDCSum;}
  virtual Float_t GetZDCTimeDiff() const {return fZDCTDCDifference;}

  // Setters  
  
  void  SetZEM1Energy(const Double_t zem1) {fZEM1Energy = zem1;}
  void  SetZEM2Energy(const Double_t zem2) {fZEM2Energy = zem2;}
  void  SetZNCTowers(const Double_t value[5], const Double_t valueLG[5]);
  void  SetZNATowers(const Double_t value[5], const Double_t valueLG[5]);
  void  SetZPCTowers(const Double_t value[5])
  	{for(Int_t i=0; i<5; i++) fZPCTowerEnergy[i] = value[i];}
  void  SetZPATowers(const Double_t value[5])
  	{for(Int_t i=0; i<5; i++) fZPATowerEnergy[i] = value[i];}
  
  void  SetZDCParticipants(Int_t npart, Int_t npartA, Int_t npartC) 
  	{fZDCParticipants=npart; fZDCPartSideA=npartA; fZDCPartSideC=npartC;}
  
  void  SetZDCImpactParameter(Float_t b, Float_t bA, Float_t bC)
  	{fImpactParameter=b; fImpactParamSideA=bA; fImpactParamSideC=bC;}
 
  void  SetZDCTDCSum(Float_t tdc)  {fZDCTDCSum = tdc;}
  void  SetZDCTDCDiff(Float_t tdc) {fZDCTDCDifference = tdc;}
  
  void  SetZNCTDC(Float_t tdc) {fZNCTDC = tdc;}
  void  SetZNATDC(Float_t tdc) {fZNATDC = tdc;}
 
 
protected:
  
  mutable Double32_t   fZNCEnergy;   	      //!E in ZNC
  mutable Double32_t   fZNAEnergy;   	      //!E in ZNA
  mutable Double32_t   fZPCEnergy;   	      //!E in ZPC
  mutable Double32_t   fZPAEnergy;   	      //!E in ZPA
  Double32_t   fZEM1Energy;   	      // E in ZEM1
  Double32_t   fZEM2Energy;	      // E in ZEM2
  Double32_t   fZNCTowerEnergy[5];    // E in 5 ZNC sectors - high gain chain
  Double32_t   fZNATowerEnergy[5];    // E in 5 ZNA sectors - high gain chain
  Double32_t   fZPCTowerEnergy[5];    // E in 5 ZPC sectors - high gain chain
  Double32_t   fZPATowerEnergy[5];    // E in 5 ZPA sectors - high gain chain
  Double32_t   fZNCTowerEnergyLR[5];  // E in 5 ZNC sectors - low gain chain
  Double32_t   fZNATowerEnergyLR[5];  // E in 5 ZNA sectors - low gain chain
  //
  Int_t     fZDCParticipants;	   // number of participants estimated by the ZDC (ONLY in A-A)
  Int_t     fZDCPartSideA;	   // number of participants estimated by the ZDC (ONLY in A-A)
  Int_t     fZDCPartSideC;	   // number of participants estimated by the ZDC (ONLY in A-A)
  //
  Double32_t   fImpactParameter;   // impact parameter estimated by the ZDC (ONLY in A-A)
  Double32_t   fImpactParamSideA;  // impact parameter estimated by the ZDC (ONLY in A-A)
  Double32_t   fImpactParamSideC;  // impact parameter estimated by the ZDC (ONLY in A-A)
  //
  Float_t   fZDCTDCSum;	   	   // ZDC TDC sum in ns corrected 4 phase shift
  Float_t   fZDCTDCDifference;	   // ZDC TDC diff. in ns corrected 4 phase shift
  Float_t   fZNCTDC; 	   	   // ZNCC TDC sum in ns corrected 4 phase shift        
  Float_t   fZNATDC;     	   // ZNA TDC diff. in ns corrected 4 phase shift;     


  ClassDef(AliAODZDC,2)
};

#endif
 AliAODZDC.h:1
 AliAODZDC.h:2
 AliAODZDC.h:3
 AliAODZDC.h:4
 AliAODZDC.h:5
 AliAODZDC.h:6
 AliAODZDC.h:7
 AliAODZDC.h:8
 AliAODZDC.h:9
 AliAODZDC.h:10
 AliAODZDC.h:11
 AliAODZDC.h:12
 AliAODZDC.h:13
 AliAODZDC.h:14
 AliAODZDC.h:15
 AliAODZDC.h:16
 AliAODZDC.h:17
 AliAODZDC.h:18
 AliAODZDC.h:19
 AliAODZDC.h:20
 AliAODZDC.h:21
 AliAODZDC.h:22
 AliAODZDC.h:23
 AliAODZDC.h:24
 AliAODZDC.h:25
 AliAODZDC.h:26
 AliAODZDC.h:27
 AliAODZDC.h:28
 AliAODZDC.h:29
 AliAODZDC.h:30
 AliAODZDC.h:31
 AliAODZDC.h:32
 AliAODZDC.h:33
 AliAODZDC.h:34
 AliAODZDC.h:35
 AliAODZDC.h:36
 AliAODZDC.h:37
 AliAODZDC.h:38
 AliAODZDC.h:39
 AliAODZDC.h:40
 AliAODZDC.h:41
 AliAODZDC.h:42
 AliAODZDC.h:43
 AliAODZDC.h:44
 AliAODZDC.h:45
 AliAODZDC.h:46
 AliAODZDC.h:47
 AliAODZDC.h:48
 AliAODZDC.h:49
 AliAODZDC.h:50
 AliAODZDC.h:51
 AliAODZDC.h:52
 AliAODZDC.h:53
 AliAODZDC.h:54
 AliAODZDC.h:55
 AliAODZDC.h:56
 AliAODZDC.h:57
 AliAODZDC.h:58
 AliAODZDC.h:59
 AliAODZDC.h:60
 AliAODZDC.h:61
 AliAODZDC.h:62
 AliAODZDC.h:63
 AliAODZDC.h:64
 AliAODZDC.h:65
 AliAODZDC.h:66
 AliAODZDC.h:67
 AliAODZDC.h:68
 AliAODZDC.h:69
 AliAODZDC.h:70
 AliAODZDC.h:71
 AliAODZDC.h:72
 AliAODZDC.h:73
 AliAODZDC.h:74
 AliAODZDC.h:75
 AliAODZDC.h:76
 AliAODZDC.h:77
 AliAODZDC.h:78
 AliAODZDC.h:79
 AliAODZDC.h:80
 AliAODZDC.h:81
 AliAODZDC.h:82
 AliAODZDC.h:83
 AliAODZDC.h:84
 AliAODZDC.h:85
 AliAODZDC.h:86
 AliAODZDC.h:87
 AliAODZDC.h:88
 AliAODZDC.h:89
 AliAODZDC.h:90
 AliAODZDC.h:91
 AliAODZDC.h:92
 AliAODZDC.h:93
 AliAODZDC.h:94
 AliAODZDC.h:95
 AliAODZDC.h:96
 AliAODZDC.h:97
 AliAODZDC.h:98
 AliAODZDC.h:99
 AliAODZDC.h:100
 AliAODZDC.h:101
 AliAODZDC.h:102
 AliAODZDC.h:103
 AliAODZDC.h:104
 AliAODZDC.h:105
 AliAODZDC.h:106
 AliAODZDC.h:107
 AliAODZDC.h:108
 AliAODZDC.h:109