From 789b8a8d56a2b9b0d16d8dea87d5c9cfbe7a32b8 Mon Sep 17 00:00:00 2001 From: morsch Date: Wed, 2 Dec 2009 12:55:20 +0000 Subject: [PATCH] Re-import from release requested by Chiara Oppedisano --- STEER/AliESDZDC.cxx | 158 +++++++++++++++++------------------ STEER/AliESDZDC.h | 6 +- ZDC/AliZDCQADataMakerRec.cxx | 23 ++--- ZDC/AliZDCQADataMakerRec.h | 4 +- 4 files changed, 86 insertions(+), 105 deletions(-) diff --git a/STEER/AliESDZDC.cxx b/STEER/AliESDZDC.cxx index f1bc79bfe0f..492ea918e14 100644 --- a/STEER/AliESDZDC.cxx +++ b/STEER/AliESDZDC.cxx @@ -191,113 +191,107 @@ void AliESDZDC::Print(const Option_t *) const } //______________________________________________________________________________ -const Double_t * AliESDZDC::GetZNCCentroidInPbPb(Float_t beamEne) +Bool_t AliESDZDC::GetZNCentroidInPbPb(Float_t beamEne, Double_t centrZNC[2], Double_t centrZNA[2]) { // Provide coordinates of centroid over ZN (side C) front face + if(beamEne==0){ + printf(" ZDC centroid in PbPb can't be calculated with E_beam = 0 !!!\n"); + for(Int_t jj=0; jj<2; jj++) fZNCCentrCoord[jj] = 999.; + return kFALSE; + } + 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, w; const Float_t alpha=0.395; + Float_t numXZNC=0., numYZNC=0., denZNC=0., cZNC, wZNC; + Float_t numXZNA=0., numYZNA=0., denZNA=0., cZNA, wZNA; // - for(Int_t i=0; i<4; i++) + 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; + wZNC = TMath::Power(fZN1TowerEnergy[i+1], alpha); + numXZNC += x[i]*wZNC; + numYZNC += y[i]*wZNC; + denZNC += wZNC; } - if(den!=0){ - 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; -} - -//______________________________________________________________________________ -const Double_t * AliESDZDC::GetZNACentroidInPbPb(Float_t beamEne) -{ - // 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.; - 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; + wZNA = TMath::Power(fZN1TowerEnergy[i+1], alpha); + numXZNA += x[i]*wZNA; + numYZNA += y[i]*wZNA; + denZNA += wZNA; } + } // - if(den!=0){ - 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; + if(denZNC!=0){ + Float_t nSpecnC = fZDCN1Energy/beamEne; + cZNC = 1.89358-0.71262/(nSpecnC+0.71789); + fZNCCentrCoord[0] = cZNC*numXZNC/denZNC; + fZNCCentrCoord[1] = cZNC*numYZNC/denZNC; + } + else{ + fZNCCentrCoord[0] = fZNCCentrCoord[1] = 999.; } - return fZNACentrCoord; + if(denZNA!=0){ + Float_t nSpecnA = fZDCN1Energy/beamEne; + cZNA = 1.89358-0.71262/(nSpecnA+0.71789); + fZNCCentrCoord[0] = cZNA*numXZNA/denZNA; + fZNCCentrCoord[1] = cZNA*numYZNA/denZNA; + } + else{ + fZNACentrCoord[0] = fZNACentrCoord[1] = 999.; + } + // + for(Int_t il=0; il<2; il++){ + centrZNC[il] = fZNCCentrCoord[il]; + centrZNA[il] = fZNACentrCoord[il]; + } + + return kTRUE; } //______________________________________________________________________________ -const Double_t * AliESDZDC::GetZNCCentroidInpp() +Bool_t AliESDZDC::GetZNCentroidInpp(Double_t centrZNC[2], Double_t centrZNA[2]) { // 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; + Float_t numXZNC=0., numYZNC=0., denZNC=0., wZNC; + Float_t numXZNA=0., numYZNA=0., denZNA=0., wZNA; // - for(Int_t i=0; i<4; i++) + 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; + wZNC = TMath::Power(fZN1TowerEnergy[i+1], alpha); + numXZNC += x[i]*wZNC; + numYZNC += y[i]*wZNC; + denZNC += wZNC; } - - 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; + wZNA = TMath::Power(fZN2TowerEnergy[i+1], alpha); + numXZNA += x[i]*wZNA; + numYZNA += y[i]*wZNA; + denZNA += wZNA; } + } + // + if(denZNC!=0){ + fZNCCentrCoord[0] = numXZNC/denZNC; + fZNCCentrCoord[1] = numYZNC/denZNC; + } + else{ + fZNCCentrCoord[0] = fZNCCentrCoord[1] = 999.; + } + if(denZNA!=0){ + fZNACentrCoord[0] = numXZNA/denZNA; + fZNACentrCoord[1] = numYZNA/denZNA; + } + else{ + fZNACentrCoord[0] = fZNACentrCoord[1] = 999.; + } // - if(den!=0){ - fZNACentrCoord[0] = numX/den; - fZNACentrCoord[1] = numY/den; - } else { - fZNACentrCoord[0] = fZNACentrCoord[1] = 0; + for(Int_t il=0; il<2; il++){ + centrZNC[il] = fZNCCentrCoord[il]; + centrZNA[il] = fZNACentrCoord[il]; } - - return fZNACentrCoord; + + return kTRUE; } diff --git a/STEER/AliESDZDC.h b/STEER/AliESDZDC.h index 9047bda8fe2..ae1549356c5 100644 --- a/STEER/AliESDZDC.h +++ b/STEER/AliESDZDC.h @@ -45,10 +45,8 @@ public: 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]); // void SetZDC(Double_t n1Energy, Double_t p1Energy, Double_t emEnergy0, Double_t emEnergy1, diff --git a/ZDC/AliZDCQADataMakerRec.cxx b/ZDC/AliZDCQADataMakerRec.cxx index f8dc1cb6a16..410d1864193 100644 --- a/ZDC/AliZDCQADataMakerRec.cxx +++ b/ZDC/AliZDCQADataMakerRec.cxx @@ -702,27 +702,17 @@ void AliZDCQADataMakerRec::MakeESDs(AliESDEvent * esd) AliESDZDC * zdcESD = esd->GetESDZDC(); // TString beamType = esd->GetBeamType(); - const Double_t *centr_ZNC, *centr_ZNA; + Double_t centr_ZNC[2]={999.,999}, centr_ZNA[2]={999.,999}; if(((beamType.CompareTo("pp"))==0) || ((beamType.CompareTo("p-p"))==0) ||((beamType.CompareTo("PP"))==0) || ((beamType.CompareTo("P-P"))==0)){ - Float_t beamEne = esd->GetBeamEnergy(); - centr_ZNC = zdcESD->GetZNCCentroidInPbPb(beamEne); - centr_ZNA = zdcESD->GetZNACentroidInPbPb(beamEne); - // - GetESDsData(0)->Fill(centr_ZNC[0], centr_ZNC[1]); - GetESDsData(1)->Fill(centr_ZNA[0], centr_ZNA[1]); + zdcESD->GetZNCentroidInpp(centr_ZNC, centr_ZNA); } else if((beamType.CompareTo("A-A")) == 0){ - centr_ZNC = zdcESD->GetZNCCentroidInpp(); - centr_ZNA = zdcESD->GetZNACentroidInpp(); - // - GetESDsData(0)->Fill(centr_ZNC[0], centr_ZNC[1]); - GetESDsData(1)->Fill(centr_ZNA[0], centr_ZNA[1]); - } - else{ - GetESDsData(0)->Fill(0., 0.); - GetESDsData(1)->Fill(0., 0.); + Float_t beamEne = esd->GetBeamEnergy(); + zdcESD->GetZNCentroidInPbPb(beamEne, centr_ZNC, centr_ZNA); } + GetESDsData(0)->Fill(centr_ZNC[0], centr_ZNC[1]); + GetESDsData(1)->Fill(centr_ZNA[0], centr_ZNA[1]); // GetESDsData(2)->Fill(esd->GetZDCN1Energy()); @@ -796,4 +786,3 @@ void AliZDCQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArr AliQAChecker::Instance()->Run(AliQAv1::kZDC, task, list) ; } - diff --git a/ZDC/AliZDCQADataMakerRec.h b/ZDC/AliZDCQADataMakerRec.h index d9a9c2de67d..704335d29b5 100644 --- a/ZDC/AliZDCQADataMakerRec.h +++ b/ZDC/AliZDCQADataMakerRec.h @@ -25,8 +25,8 @@ public: private: virtual void InitESDs(); - virtual void InitDigits(); - virtual void InitRecPoints(); + virtual void InitDigits() ; + virtual void InitRecPoints(); virtual void InitRaws(); virtual void MakeDigits(TTree * /*recTree*/) ; virtual void MakeDigits() {return;} -- 2.43.0