#ifndef ALIAODZDC_H
#define ALIAODZDC_H
#include <AliVZDC.h>
class AliAODZDC : public AliVZDC {
public:
AliAODZDC();
AliAODZDC(const AliAODZDC& zdcAOD);
AliAODZDC &operator=(const AliAODZDC& zdcAOD);
virtual ~AliAODZDC() {};
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;}
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;
mutable Double32_t fZNAEnergy;
mutable Double32_t fZPCEnergy;
mutable Double32_t fZPAEnergy;
Double32_t fZEM1Energy;
Double32_t fZEM2Energy;
Double32_t fZNCTowerEnergy[5];
Double32_t fZNATowerEnergy[5];
Double32_t fZPCTowerEnergy[5];
Double32_t fZPATowerEnergy[5];
Double32_t fZNCTowerEnergyLR[5];
Double32_t fZNATowerEnergyLR[5];
Int_t fZDCParticipants;
Int_t fZDCPartSideA;
Int_t fZDCPartSideC;
Double32_t fImpactParameter;
Double32_t fImpactParamSideA;
Double32_t fImpactParamSideC;
Float_t fZDCTDCSum;
Float_t fZDCTDCDifference;
Float_t fZNCTDC;
Float_t fZNATDC;
ClassDef(AliAODZDC,2)
};
#endif