X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSAnalyze.cxx;h=b198b1f77333a8bab2850ea09867e180b939588b;hb=e8a76a2617f19ec07f7a5846e49d3f470164d638;hp=2f8da5d4a73540f9e11c0a8d7a4afa92369ede9d;hpb=351dd6348b2d6a89268f2717d98c08fc85e5dc79;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSAnalyze.cxx b/PHOS/AliPHOSAnalyze.cxx index 2f8da5d4a73..b198b1f7733 100644 --- a/PHOS/AliPHOSAnalyze.cxx +++ b/PHOS/AliPHOSAnalyze.cxx @@ -92,19 +92,23 @@ ClassImp(AliPHOSAnalyze) //____________________________________________________________________________ - AliPHOSAnalyze::AliPHOSAnalyze() +AliPHOSAnalyze::AliPHOSAnalyze(): + fCorrection(1.2), //Value calculated for default parameters of reconstruction + fEvt(0), + ffileName(), + fRunLoader(0) { // default ctor (useless) - fCorrection = 1.2 ; //Value calculated for default parameters of reconstruction - fRunLoader = 0x0; } //____________________________________________________________________________ -AliPHOSAnalyze::AliPHOSAnalyze(Text_t * fileName) +AliPHOSAnalyze::AliPHOSAnalyze(Text_t * fileName): + fCorrection(1.05), //Value calculated for default parameters of reconstruction + fEvt(0), + ffileName(fileName), + fRunLoader(0) { // ctor: analyze events from root file "name" - ffileName = fileName; - fCorrection = 1.05 ; //Value calculated for default parameters of reconstruction fRunLoader = AliRunLoader::Open(fileName,"AliPHOSAnalyze"); if (fRunLoader == 0x0) { @@ -113,8 +117,12 @@ AliPHOSAnalyze::AliPHOSAnalyze(Text_t * fileName) } //____________________________________________________________________________ -AliPHOSAnalyze::AliPHOSAnalyze(const AliPHOSAnalyze & ana) - : TObject(ana) +AliPHOSAnalyze::AliPHOSAnalyze(const AliPHOSAnalyze & ana): + TObject(ana), + fCorrection(0.), + fEvt(0), + ffileName(), + fRunLoader(0) { // copy ctor ( (AliPHOSAnalyze &)ana ).Copy(*this) ; @@ -196,6 +204,10 @@ void AliPHOSAnalyze::DrawRecon(Int_t Nevent,Int_t Nmod){ recPhot->Delete() ; recPhot = new TH2F("recPhot","RecParticles with primary Photon",nx,-x,x,nz,-z,z); + //Get Vertex + Double_t vtx[3]={0.,0.,0.} ; +//DP: extract vertex either from Generator or from data + //Plot Primary Particles @@ -220,7 +232,7 @@ void AliPHOSAnalyze::DrawRecon(Int_t Nevent,Int_t Nmod){ if( primaryType == 22 ) { Int_t moduleNumber ; Double_t primX, primZ ; - phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; + phosgeom->ImpactOnEmc(vtx,primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; if(moduleNumber==Nmod) phot->Fill(primZ,primX,primary->Energy()) ; } @@ -324,7 +336,7 @@ void AliPHOSAnalyze::DrawRecon(Int_t Nevent,Int_t Nmod){ recParticle = (AliPHOSRecParticle *) rp->At(iRecParticle) ; Int_t moduleNumberRec ; Double_t recX, recZ ; - phosgeom->ImpactOnEmc(recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ; + phosgeom->ImpactOnEmc(vtx,recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ; if(moduleNumberRec == Nmod){ Double_t minDistance = 5. ; @@ -342,7 +354,7 @@ void AliPHOSAnalyze::DrawRecon(Int_t Nevent,Int_t Nmod){ primary = fRunLoader->Stack()->Particle(listofprimaries[index]) ; Int_t moduleNumber ; Double_t primX, primZ ; - phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; + phosgeom->ImpactOnEmc(vtx,primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; if(moduleNumberRec == moduleNumber) distance = TMath::Sqrt((recX-primX)*(recX-primX)+(recZ-primZ)*(recZ-primZ) ) ; if(minDistance > distance) @@ -682,6 +694,8 @@ void AliPHOSAnalyze::Ls(){ //read the current event fRunLoader->GetEvent(ievent) ; + Double_t vtx[3]={0.,0.,0.} ; + const AliPHOSRecParticle * recParticle ; Int_t iRecParticle ; TClonesArray * rp = gime->RecParticles() ; @@ -706,7 +720,7 @@ void AliPHOSAnalyze::Ls(){ //find the closest primary Int_t moduleNumberRec ; Double_t recX, recZ ; - phosgeom->ImpactOnEmc(recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ; + phosgeom->ImpactOnEmc(vtx,recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ; Double_t minDistance = 100. ; Int_t closestPrimary = -1 ; @@ -728,7 +742,7 @@ void AliPHOSAnalyze::Ls(){ Int_t moduleNumber ; Double_t primX, primZ ; - phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; + phosgeom->ImpactOnEmc(vtx,primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; if(moduleNumberRec == moduleNumber) { dX = recX - primX; dZ = recZ - primZ; @@ -831,6 +845,10 @@ void AliPHOSAnalyze::PositionResolution() //read the current event fRunLoader->GetEvent(ievent) ; + + //DP:Extract vertex position + Double_t vtx[3]={0.,0.,0.} ; + TClonesArray * rp = gime->RecParticles() ; if(!rp) { AliError(Form("Event %d, Can't find RecParticles", ievent)) ; @@ -856,7 +874,7 @@ void AliPHOSAnalyze::PositionResolution() //find the closest primary Int_t moduleNumberRec ; Double_t recX, recZ ; - phosgeom->ImpactOnEmc(recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ; + phosgeom->ImpactOnEmc(vtx,recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ; Double_t minDistance = 100. ; Int_t closestPrimary = -1 ; @@ -877,7 +895,7 @@ void AliPHOSAnalyze::PositionResolution() primary = fRunLoader->Stack()->Particle(listofprimaries[index]) ; Int_t moduleNumber ; Double_t primX, primZ ; - phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; + phosgeom->ImpactOnEmc(vtx,primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; if(moduleNumberRec == moduleNumber) { dX = recX - primX; dZ = recZ - primZ; @@ -1052,6 +1070,9 @@ void AliPHOSAnalyze::Contamination(){ fRunLoader->GetEvent(ievent) ; + //DP:Extract vertex position + Double_t vtx[3]={0.,0.,0.} ; + TClonesArray * rp = gime->RecParticles() ; if(!rp) { AliError(Form("Event %d, Can't find RecParticles", ievent)) ; @@ -1079,7 +1100,7 @@ void AliPHOSAnalyze::Contamination(){ //check, if photons folls onto PHOS Int_t moduleNumber ; Double_t primX, primZ ; - phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; + phosgeom->ImpactOnEmc(vtx,primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; if(moduleNumber) hPrimary->Fill(primary->Energy()) ; @@ -1098,7 +1119,7 @@ void AliPHOSAnalyze::Contamination(){ //==========find the closest primary Int_t moduleNumberRec ; Double_t recX, recZ ; - phosgeom->ImpactOnEmc(recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ; + phosgeom->ImpactOnEmc(vtx,recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ; Double_t minDistance = 100. ; Int_t closestPrimary = -1 ; @@ -1117,7 +1138,7 @@ void AliPHOSAnalyze::Contamination(){ primary = fRunLoader->Stack()->Particle(listofprimaries[index]) ; Int_t moduleNumber ; Double_t primX, primZ ; - phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; + phosgeom->ImpactOnEmc(vtx,primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ; if(moduleNumberRec == moduleNumber) { dX = recX - primX; dZ = recZ - primZ;