Double_t GetZDCN2Energy() const {return fESDZDC->GetZDCN2Energy();}
Double_t GetZDCP2Energy() const {return fESDZDC->GetZDCP2Energy();}
Double_t GetZDCEMEnergy(Int_t i=0) const {return fESDZDC->GetZDCEMEnergy(i);}
- Int_t GetZDCParticipants() const {return fESDZDC->GetZDCParticipants();}
- void SetZDC(Float_t n1Energy, Float_t p1Energy, Float_t em1Energy, Float_t em2Energy,
- Float_t n2Energy, Float_t p2Energy, Int_t participants, Int_t nPartA,
- Int_t nPartC, Double_t b, Double_t bA, Double_t bC, UInt_t recoflag)
- {fESDZDC->SetZDC(n1Energy, p1Energy, em1Energy, em2Energy, n2Energy, p2Energy,
- participants, nPartA, nPartC, b, bA, bC, recoflag);}
- void SetZDCScaler(UInt_t *counts) {fESDZDC->SetZDCScaler(counts);}
+ Int_t GetZDCParticipants() const {return fESDZDC->GetZDCParticipants();}
+ void SetZDC(Float_t n1Energy, Float_t p1Energy, Float_t em1Energy, Float_t em2Energy,
+ Float_t n2Energy, Float_t p2Energy, Int_t participants, Int_t nPartA,
+ Int_t nPartC, Double_t b, Double_t bA, Double_t bC, UInt_t recoflag)
+ {fESDZDC->SetZDC(n1Energy, p1Energy, em1Energy, em2Energy, n2Energy, p2Energy,
+ participants, nPartA, nPartC, b, bA, bC, recoflag);}
+ void SetZDCScaler(UInt_t *counts) {fESDZDC->SetZDCScaler(counts);}
// FMD
Int_t GetNumberOfCaloClusters() const {return fCaloClusters->GetEntriesFast();}
void SetUseOwnList(Bool_t b){fUseOwnList = b;}
- Bool_t GetUseOwnList(){return fUseOwnList;}
+ Bool_t GetUseOwnList() const {return fUseOwnList;}
// Remove this stuff CKB?
//---------------------------------------------------
}
//______________________________________________________________________________
-Double32_t * AliESDZDC::GetZNCCentroid()
+const Double_t * AliESDZDC::GetZNCCentroidInPbPb(Float_t beamEne)
{
// Provide coordinates of centroid over ZN (side C) front face
- Float_t x[4] = {-1.75, 1.75, -1.75, 1.75};
- Float_t y[4] = {-1.75, -1.75, 1.75, 1.75};
+ const Float_t x[4] = {-1.75, 1.75, -1.75, 1.75};
+ const Float_t y[4] = {-1.75, -1.75, 1.75, 1.75};
Float_t numX=0., numY=0., den=0.;
- Float_t c, alpha=0.395, w;
+ Float_t c, w;
+ const Float_t alpha=0.395;
//
- for(Int_t i=0; i<4; i++){
- if(fZN1TowerEnergy[i+1]<0.) fZN1TowerEnergy[i+1]=0.;
- w = TMath::Power(fZN1TowerEnergy[i+1], alpha);
- numX += x[i]*w;
- numY += y[i]*w;
- den += w;
- }
+ for(Int_t i=0; i<4; i++)
+ if(fZN1TowerEnergy[i+1]>0.) {
+ w = TMath::Power(fZN1TowerEnergy[i+1], alpha);
+ numX += x[i]*w;
+ numY += y[i]*w;
+ den += w;
+ }
if(den!=0){
- // ATTENTION! Needs to be changed if E_beam(A-A) != 2.76 A TeV !!!!
- Float_t nSpecn = fZDCN1Energy/2760.;
+ Float_t nSpecn = fZDCN1Energy/beamEne;
c = 1.89358-0.71262/(nSpecn+0.71789);
fZNCCentrCoord[0] = c*numX/den;
fZNCCentrCoord[1] = c*numY/den;
+ } else {
+ fZNCCentrCoord[0] = fZNCCentrCoord[1] = 0;
}
return fZNCCentrCoord;
}
//______________________________________________________________________________
-Double32_t * AliESDZDC::GetZNACentroid()
+const Double_t * AliESDZDC::GetZNACentroidInPbPb(Float_t beamEne)
{
// Provide coordinates of centroid over ZN (side A) front face
- Float_t x[4] = {-1.75, 1.75, -1.75, 1.75};
- Float_t y[4] = {-1.75, -1.75, 1.75, 1.75};
+ const Float_t x[4] = {-1.75, 1.75, -1.75, 1.75};
+ const Float_t y[4] = {-1.75, -1.75, 1.75, 1.75};
Float_t numX=0., numY=0., den=0.;
- Float_t c, alpha=0.395, w;
-
- for(Int_t i=0; i<4; i++){
- if(fZN2TowerEnergy[i+1]<0.) fZN2TowerEnergy[i+1]=0.;
- w = TMath::Power(fZN2TowerEnergy[i+1], alpha);
- numX += x[i]*w;
- numY += y[i]*w;
- den += w;
- }
+ Float_t c, w;
+ const Float_t alpha=0.395;
+
+ for(Int_t i=0; i<4; i++)
+ if(fZN2TowerEnergy[i+1]>0.) {
+ w = TMath::Power(fZN2TowerEnergy[i+1], alpha);
+ numX += x[i]*w;
+ numY += y[i]*w;
+ den += w;
+ }
//
if(den!=0){
- // ATTENTION! Needs to be changed if E_beam(A-A) != 2.76 A TeV !!!!
- Float_t nSpecn = fZDCN2Energy/2760.;
+ Float_t nSpecn = fZDCN2Energy/beamEne;
c = 1.89358-0.71262/(nSpecn+0.71789);
fZNACentrCoord[0] = c*numX/den;
fZNACentrCoord[1] = c*numY/den;
+ } else {
+ fZNACentrCoord[0] = fZNACentrCoord[1] = 0;
+ }
+ return fZNACentrCoord;
+}
+
+//______________________________________________________________________________
+const Double_t * AliESDZDC::GetZNCCentroidInpp()
+{
+ // Provide coordinates of centroid over ZN (side C) front face
+ const Float_t x[4] = {-1.75, 1.75, -1.75, 1.75};
+ const Float_t y[4] = {-1.75, -1.75, 1.75, 1.75};
+ Float_t numX=0., numY=0., den=0.;
+ const Float_t alpha=0.5;
+ Float_t w;
+ //
+ for(Int_t i=0; i<4; i++)
+ if(fZN1TowerEnergy[i+1]>0.) {
+ w = TMath::Power(fZN1TowerEnergy[i+1], alpha);
+ numX += x[i]*w;
+ numY += y[i]*w;
+ den += w;
+ }
+
+ if(den!=0){
+ fZNCCentrCoord[0] = numX/den;
+ fZNCCentrCoord[1] = numY/den;
+ } else {
+ fZNCCentrCoord[0] = fZNCCentrCoord[1] = 0;
+ }
+ return fZNCCentrCoord;
+}
+
+//______________________________________________________________________________
+const Double_t * AliESDZDC::GetZNACentroidInpp()
+{
+ // Provide coordinates of centroid over ZN (side A) front face
+ const Float_t x[4] = {-1.75, 1.75, -1.75, 1.75};
+ const Float_t y[4] = {-1.75, -1.75, 1.75, 1.75};
+ Float_t numX=0., numY=0., den=0.;
+ const Float_t alpha=0.395;
+ Float_t w;
+
+ for(Int_t i=0; i<4; i++)
+ if(fZN2TowerEnergy[i+1]>0.) {
+ w = TMath::Power(fZN2TowerEnergy[i+1], alpha);
+ numX += x[i]*w;
+ numY += y[i]*w;
+ den += w;
+ }
+ //
+ if(den!=0){
+ fZNACentrCoord[0] = numX/den;
+ fZNACentrCoord[1] = numY/den;
+ } else {
+ fZNACentrCoord[0] = fZNACentrCoord[1] = 0;
}
+
return fZNACentrCoord;
}
const Double_t * GetZP1TowerEnergyLR() const {return fZP1TowerEnergyLR;}
const Double_t * GetZP2TowerEnergyLR() const {return fZP2TowerEnergyLR;}
//
- Double32_t * GetZNCCentroid();
- Double32_t * GetZNACentroid();
+ const Double_t * GetZNCCentroidInPbPb(Float_t beamEne);
+ const Double_t * GetZNACentroidInPbPb(Float_t beamEne);
+ const Double_t * GetZNCCentroidInpp();
+ const Double_t * GetZNACentroidInpp();
//
void SetZDC(Double_t n1Energy, Double_t p1Energy,
Double_t emEnergy0, Double_t emEnergy1,
fImpactParameter=b; fImpactParamSideA=bA, fImpactParamSideC=bC,
fESDQuality=recoFlag;}
//
- void SetZN1TowerEnergy(Float_t tow1[5])
+ void SetZN1TowerEnergy(const Float_t tow1[5])
{for(Int_t i=0; i<5; i++) fZN1TowerEnergy[i] = tow1[i];}
- void SetZN2TowerEnergy(Float_t tow2[5])
+ void SetZN2TowerEnergy(const Float_t tow2[5])
{for(Int_t i=0; i<5; i++) fZN2TowerEnergy[i] = tow2[i];}
- void SetZP1TowerEnergy(Float_t tow1[5])
+ void SetZP1TowerEnergy(const Float_t tow1[5])
{for(Int_t i=0; i<5; i++) fZP1TowerEnergy[i] = tow1[i];}
- void SetZP2TowerEnergy(Float_t tow2[5])
+ void SetZP2TowerEnergy(const Float_t tow2[5])
{for(Int_t i=0; i<5; i++) fZP2TowerEnergy[i] = tow2[i];}
- void SetZN1TowerEnergyLR(Float_t tow1[5])
+ void SetZN1TowerEnergyLR(const Float_t tow1[5])
{for(Int_t i=0; i<5; i++) fZN1TowerEnergyLR[i] = tow1[i];}
- void SetZN2TowerEnergyLR(Float_t tow2[5])
+ void SetZN2TowerEnergyLR(const Float_t tow2[5])
{for(Int_t i=0; i<5; i++) fZN2TowerEnergyLR[i] = tow2[i];}
- void SetZP1TowerEnergyLR(Float_t tow1[5])
+ void SetZP1TowerEnergyLR(const Float_t tow1[5])
{for(Int_t i=0; i<5; i++) fZP1TowerEnergyLR[i] = tow1[i];}
- void SetZP2TowerEnergyLR(Float_t tow2[5])
+ void SetZP2TowerEnergyLR(const Float_t tow2[5])
{for(Int_t i=0; i<5; i++) fZP2TowerEnergyLR[i] = tow2[i];}
- void SetZNACentroid(Float_t centrCoord[2])
+ void SetZNACentroid(const Float_t centrCoord[2])
{for(Int_t i=0; i<2; i++) fZNACentrCoord[i] = centrCoord[i];}
- void SetZNCCentroid(Float_t centrCoord[2])
+ 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(UInt_t count[32])
+ void SetZDCScaler(const UInt_t count[32])
{for(Int_t k=0; k<32; k++) fVMEScaler[k] = count[k];}
void Reset();
//
UInt_t fVMEScaler[32]; // counts from VME scaler
- ClassDef(AliESDZDC,11)
+ ClassDef(AliESDZDC,12)
};
#endif
branch->SetAddress(&fDigit);
- Int_t ndig = digitTree->GetEntries();
+ Long64_t ndig = digitTree->GetEntries();
for(Int_t i=0; i<ndig; i++){
digitTree->GetEntry(i);
AliESDZDC * zdcESD = esd->GetESDZDC();
//
TString beamType = esd->GetBeamType();
- Float_t * centr_ZNC, * centr_ZNA;
+ const Double_t *centr_ZNC, *centr_ZNA;
if(((beamType.CompareTo("pp"))==0) || ((beamType.CompareTo("p-p"))==0)
||((beamType.CompareTo("PP"))==0) || ((beamType.CompareTo("P-P"))==0)){
Float_t beamEne = esd->GetBeamEnergy();