//-------------------------------------------------------------------------
#include <TObject.h>
-#include <TMath.h>
-#include <TF1.h>
-
class AliESDZDC: public TObject {
public:
+
+ enum {
+ kCorrectedTDCFilled = BIT(14),
+ kEnergyCalibratedSignal = BIT(15)
+ };
+
AliESDZDC();
AliESDZDC(const AliESDZDC& zdc);
AliESDZDC& operator=(const AliESDZDC& zdc);
const Double_t * GetZP1TowerEnergyLR() const {return fZP1TowerEnergyLR;}
const Double_t * GetZP2TowerEnergyLR() const {return fZP2TowerEnergyLR;}
//
- const Double_t * GetZNCCentroidInPbPb(Float_t beamEne);
- const Double_t * GetZNACentroidInPbPb(Float_t beamEne);
- const Double_t * GetZNCCentroidInpp();
- const Double_t * GetZNACentroidInpp();
+ Bool_t GetZNCentroidInPbPb(Float_t beamEne, Double_t centrZNC[2], Double_t centrZNA[2]);
+ Bool_t GetZNCentroidInpp(Double_t centrZNC[2], Double_t centrZNA[2]);
//
+
+ UInt_t GetZDCScaler(Int_t i) const {return fVMEScaler[i];}
+ const UInt_t* GetZDCScaler() const {return fVMEScaler;}
+
+ Int_t GetZDCTDCData(Int_t i, Int_t j) const {return fZDCTDCData[i][j];}
+ Float_t GetZDCTDCCorrected(Int_t i, Int_t j) const
+ {if(AliESDZDC::kCorrectedTDCFilled) return fZDCTDCCorrected[i][j];
+ else return 0.;}
+ Float_t GetZNTDCSum(Int_t ihit) const
+ {if(ihit<4 && AliESDZDC::kCorrectedTDCFilled) return (Float_t) (fZDCTDCCorrected[10][ihit]+fZDCTDCCorrected[12][ihit]);
+ else return 0.;}
+ Float_t GetZNTDCDiff(Int_t ihit) const
+ {if(ihit<4 && AliESDZDC::kCorrectedTDCFilled) return (Float_t) (fZDCTDCCorrected[12][ihit]-fZDCTDCCorrected[10][ihit]);
+ else return 0.;}
+
void SetZDC(Double_t n1Energy, Double_t p1Energy,
Double_t emEnergy0, Double_t emEnergy1,
Double_t n2Energy, Double_t p2Energy,
{for(Int_t i=0; i<2; i++) fZNACentrCoord[i] = centrCoord[i];}
void SetZNCCentroid(const Float_t centrCoord[2])
{for(Int_t i=0; i<2; i++) fZNCCentrCoord[i] = centrCoord[i];}
-
- UInt_t GetZDCScaler(Int_t i) const {return fVMEScaler[i];}
- const UInt_t* GetZDCScaler() const {return fVMEScaler;}
void SetZDCScaler(const UInt_t count[32])
{for(Int_t k=0; k<32; k++) fVMEScaler[k] = count[k];}
+
+ void SetZDCTDCData(const Int_t values[32][4])
+ {for(Int_t k=0; k<32; k++)
+ for(Int_t j=0; j<4; j++) fZDCTDCData[k][j] = values[k][j];}
+
+ void SetZDCTDCCorrected(const Float_t values[32][4])
+ {for(Int_t k=0; k<32; k++)
+ for(Int_t j=0; j<4; j++) fZDCTDCCorrected[k][j] = values[k][j];}
void Reset();
void Print(const Option_t *opt=0) const;
Double32_t fZNACentrCoord[2]; // Coordinates of the centroid over ZNC
Double32_t fZNCCentrCoord[2]; // Coordinates of the centroid over ZNA
UInt_t fESDQuality; // flags from reconstruction
- //
- UInt_t fVMEScaler[32]; // counts from VME scaler
-
- ClassDef(AliESDZDC,12)
+ UInt_t fVMEScaler[32]; // counts from VME scaler
+ Int_t fZDCTDCData[32][4]; // ZDC TDC data
+ Float_t fZDCTDCCorrected[32][4];// ZDC TDC data in ns corrected 4 phase shift
+
+ ClassDef(AliESDZDC,16)
};
#endif