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)
{
}
//____________________________________________________________________________
-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) ;
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
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()) ;
}
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. ;
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)
//read the current event
fRunLoader->GetEvent(ievent) ;
+ Double_t vtx[3]={0.,0.,0.} ;
+
const AliPHOSRecParticle * recParticle ;
Int_t iRecParticle ;
TClonesArray * rp = gime->RecParticles() ;
//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 ;
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;
//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)) ;
//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 ;
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;
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)) ;
//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()) ;
//==========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 ;
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;