//______________________________________________________________________________\r
AliAnaOmegaToPi0Gamma::AliAnaOmegaToPi0Gamma() : AliAnaPartCorrBaseClass(),\r
fInputAODGamma(0),fInputAODPi0(0), fInputAODGammaName(""),\r
-fEventsList(0), \r
-fNVtxZBin(0), fNCentBin(0), fNRpBin(0), fNBadChDistBin(0), fNpid(0),\r
-fNmaxMixEv(0),fVtxZCut(0), fCent(0), fRp(0), fBadChDist(0),\r
-fPi0Mass(0), fPi0MassWindow(0),fPi0OverOmegaPtCut(0),fGammaOverOmegaPtCut(0),\r
+fEventsList(0),fNVtxZBin(1), fNCentBin(1), fNRpBin(1), fNBadChDistBin(1), fNpid(3),\r
+fNmaxMixEv(4), fVtxZCut(0), fCent(0), fRp(0), fBadChDist(0),\r
+fPi0Mass(0.13498),fPi0MassWindow(0.015),fPi0OverOmegaPtCut(0.8),\r
+fGammaOverOmegaPtCut(0.3),\r
fhEtalon(0),\r
-fRealOmega(0), fMixAOmega(0),\r
-fMixBOmega(0), fMixCOmega(0),\r
+fRealOmega0(0), fMixAOmega0(0),\r
+fMixBOmega0(0), fMixCOmega0(0),\r
fRealOmega1(0), fMixAOmega1(0),\r
fMixBOmega1(0), fMixCOmega1(0),\r
fRealOmega2(0), fMixAOmega2(0),\r
fhOmegaPriPt(0)\r
{\r
//Default Ctor\r
- InitParameters();\r
}\r
\r
//______________________________________________________________________________\r
fInputAODGammaName(ex.fInputAODGammaName),\r
fEventsList(ex.fEventsList), \r
fNVtxZBin(ex.fNVtxZBin), fNCentBin(ex.fNCentBin), fNRpBin(ex.fNRpBin),\r
-fNBadChDistBin(ex.fNBadChDistBin),fNpid(ex.fNpid),fNmaxMixEv(ex.fNmaxMixEv), \r
+fNBadChDistBin(ex.fNBadChDistBin),fNpid(ex.fNpid),\r
+fNmaxMixEv(ex.fNmaxMixEv),\r
fVtxZCut(ex.fVtxZCut), fCent(ex.fCent), fRp(ex.fRp), fBadChDist(ex.fBadChDist),\r
-fPi0Mass(ex.fPi0Mass),fPi0MassWindow(ex.fPi0MassWindow),\r
-fPi0OverOmegaPtCut(ex.fPi0OverOmegaPtCut),fGammaOverOmegaPtCut(ex.fGammaOverOmegaPtCut),\r
+fPi0Mass(ex.fPi0Mass),\r
+fPi0MassWindow(ex.fPi0MassWindow),\r
+fPi0OverOmegaPtCut(ex.fPi0OverOmegaPtCut),\r
+fGammaOverOmegaPtCut(ex.fGammaOverOmegaPtCut),\r
fhEtalon(ex.fhEtalon),\r
-fRealOmega(ex.fRealOmega), fMixAOmega(ex.fMixAOmega),\r
-fMixBOmega(ex.fMixBOmega), fMixCOmega(ex.fMixCOmega),\r
+fRealOmega0(ex.fRealOmega0), fMixAOmega0(ex.fMixAOmega0),\r
+fMixBOmega0(ex.fMixBOmega0), fMixCOmega0(ex.fMixCOmega0),\r
fRealOmega1(ex.fRealOmega1), fMixAOmega1(ex.fMixAOmega1),\r
fMixBOmega1(ex.fMixBOmega1), fMixCOmega1(ex.fMixCOmega1),\r
fRealOmega2(ex.fRealOmega2), fMixAOmega2(ex.fMixAOmega2),\r
fInputAODGammaName = ex.fInputAODGammaName;\r
fEventsList = ex.fEventsList;\r
\r
- fVtxZCut=ex.fVtxZCut;\r
- fCent=ex.fCent;\r
- fRp=ex.fRp;\r
- fBadChDist=ex.fBadChDist;\r
- fNVtxZBin=ex.fNVtxZBin; \r
+ fNVtxZBin=ex.fNVtxZBin;\r
fNCentBin=ex.fNCentBin;\r
fNRpBin=ex.fNRpBin;\r
fNBadChDistBin=ex.fNBadChDistBin;\r
fNpid=ex.fNpid;\r
-\r
fNmaxMixEv =ex.fNmaxMixEv;\r
+\r
+ fVtxZCut=ex.fVtxZCut;\r
+ fCent=ex.fCent;\r
+ fRp=ex.fRp;\r
+ fBadChDist=ex.fBadChDist;\r
+\r
fPi0Mass=ex.fPi0Mass;\r
fPi0MassWindow=ex.fPi0MassWindow;\r
fPi0OverOmegaPtCut=ex.fPi0OverOmegaPtCut;\r
fGammaOverOmegaPtCut=ex.fGammaOverOmegaPtCut;\r
\r
fhEtalon=ex.fhEtalon;\r
- fRealOmega=ex.fRealOmega;\r
- fMixAOmega=ex.fMixAOmega;\r
- fMixBOmega=ex.fMixBOmega;\r
- fMixCOmega=ex.fMixCOmega;\r
+ fRealOmega0=ex.fRealOmega0;\r
+ fMixAOmega0=ex.fMixAOmega0;\r
+ fMixBOmega0=ex.fMixBOmega0;\r
+ fMixCOmega0=ex.fMixCOmega0;\r
fRealOmega1=ex.fRealOmega1;\r
fMixAOmega1=ex.fMixAOmega1;\r
fMixBOmega1=ex.fMixBOmega1;\r
}\r
delete [] fEventsList;\r
fEventsList=0;\r
+\r
+ delete [] fVtxZCut;\r
+ delete [] fCent;\r
+ delete [] fRp;\r
+ delete [] fBadChDist;\r
+\r
}\r
\r
//______________________________________________________________________________\r
{\r
//Init parameters when first called the analysis\r
//Set default parameters\r
- fInputAODGammaName = "PhotonsPHOS";\r
- fNmaxMixEv = 4;\r
-\r
- fPi0Mass=0.13498;\r
- fPi0MassWindow=0.015;\r
- fPi0OverOmegaPtCut=0.8;\r
- fGammaOverOmegaPtCut=0.3;\r
- fNVtxZBin=1;\r
- fNCentBin=1;\r
- fNRpBin=1;\r
- fNBadChDistBin=1;\r
- fNpid=3;\r
-\r
fVtxZCut = new Double_t [fNVtxZBin];\r
for(Int_t i=0;i<fNVtxZBin;i++) fVtxZCut[i]=10*(i+1);\r
\r
fRp[0]=0;\r
\r
fBadChDist=new Int_t [fNBadChDistBin];\r
- for(Int_t j=0;j<fNBadChDistBin;j++) fBadChDist[j] = j+2;\r
- /* \r
- Int_t nptbins = GetHistoPtBins();\r
- Float_t ptmax = GetHistoPtMax();\r
- Float_t ptmin = GetHistoPtMin();\r
+ for(Int_t j=0;j<fNBadChDistBin;j++) fBadChDist[j] = j+2;\r
\r
- Int_t nmassbins = GetHistoMassBins();\r
- Float_t massmin = GetHistoMassMin();\r
- Float_t massmax = GetHistoMassMax();\r
-\r
- fhEtalon = new TH2F("hEtalon","Histo with binning parameters", nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;\r
- fhEtalon->SetXTitle("P_{T} (GeV)") ;\r
- fhEtalon->SetYTitle("m_{inv} (GeV)") ;\r
-*/\r
}\r
\r
\r
//______________________________________________________________________________\r
TList * AliAnaOmegaToPi0Gamma::GetCreateOutputObjects()\r
-{ \r
+{\r
+ InitParameters();\r
\r
Int_t nptbins = GetHistoPtBins();\r
Float_t ptmax = GetHistoPtMax();\r
const char * detector= fInputAODGammaName.Data();\r
Int_t ndim=fNVtxZBin*fNCentBin*fNRpBin*fNBadChDistBin*fNpid;\r
\r
- fRealOmega =new TH2F*[ndim];\r
- fMixAOmega =new TH2F*[ndim];\r
- fMixBOmega =new TH2F*[ndim];\r
- fMixCOmega =new TH2F*[ndim];\r
+ fRealOmega0 =new TH2F*[ndim];\r
+ fMixAOmega0 =new TH2F*[ndim];\r
+ fMixBOmega0 =new TH2F*[ndim];\r
+ fMixCOmega0 =new TH2F*[ndim];\r
\r
fRealOmega1 =new TH2F*[ndim];\r
fMixAOmega1 =new TH2F*[ndim];\r
\r
Int_t index=idim*fNpid*fNBadChDistBin+ipid*fNBadChDistBin+idist;\r
\r
- sprintf(key,"RPi0Gamma_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"RealToPi0Gamma_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s Real Pi0GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
- fRealOmega[index]=(TH2F*)fhEtalon->Clone(key) ;\r
- fRealOmega[index]->SetName(key) ;\r
- fRealOmega[index]->SetTitle(title);\r
- outputContainer->Add(fRealOmega[index]);\r
+ fRealOmega0[index]=(TH2F*)fhEtalon->Clone(key) ;\r
+ fRealOmega0[index]->SetName(key) ;\r
+ fRealOmega0[index]->SetTitle(title);\r
+ outputContainer->Add(fRealOmega0[index]);\r
\r
- sprintf(key,"MAPi0Gamma_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"MixAToPi0Gamma_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s MixA Pi0GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
- fMixAOmega[index]=(TH2F*)fhEtalon->Clone(key) ;\r
- fMixAOmega[index]->SetName(key) ;\r
- fMixAOmega[index]->SetTitle(title);\r
- outputContainer->Add(fMixAOmega[index]);\r
+ fMixAOmega0[index]=(TH2F*)fhEtalon->Clone(key) ;\r
+ fMixAOmega0[index]->SetName(key) ;\r
+ fMixAOmega0[index]->SetTitle(title);\r
+ outputContainer->Add(fMixAOmega0[index]);\r
\r
- sprintf(key,"MBPi0Gamma_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"MixBToPi0Gamma_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s MixB Pi0GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
- fMixBOmega[index]=(TH2F*)fhEtalon->Clone(key) ;\r
- fMixBOmega[index]->SetName(key) ;\r
- fMixBOmega[index]->SetTitle(title);\r
- outputContainer->Add(fMixBOmega[index]);\r
+ fMixBOmega0[index]=(TH2F*)fhEtalon->Clone(key) ;\r
+ fMixBOmega0[index]->SetName(key) ;\r
+ fMixBOmega0[index]->SetTitle(title);\r
+ outputContainer->Add(fMixBOmega0[index]);\r
\r
- sprintf(key,"MCPi0Gamma_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"MixCToPi0Gamma_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s MixC Pi0GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
- fMixCOmega[index]=(TH2F*)fhEtalon->Clone(key) ;\r
- fMixCOmega[index]->SetName(key) ;\r
- fMixCOmega[index]->SetTitle(title);\r
- outputContainer->Add(fMixCOmega[index]);\r
+ fMixCOmega0[index]=(TH2F*)fhEtalon->Clone(key) ;\r
+ fMixCOmega0[index]->SetName(key) ;\r
+ fMixCOmega0[index]->SetTitle(title);\r
+ outputContainer->Add(fMixCOmega0[index]);\r
\r
- sprintf(key,"RPi0Gamma1_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"RealToPi0Gamma1_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s Real Pi0(A<0.7)GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
fRealOmega1[index]=(TH2F*)fhEtalon->Clone(key) ;\r
fRealOmega1[index]->SetTitle(title);\r
outputContainer->Add(fRealOmega1[index]);\r
\r
- sprintf(key,"MAPi0Gamma1_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"MixAToPi0Gamma1_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s MixA Pi0(A<0.7)GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
fMixAOmega1[index]=(TH2F*)fhEtalon->Clone(key) ;\r
fMixAOmega1[index]->SetTitle(title);\r
outputContainer->Add(fMixAOmega1[index]);\r
\r
- sprintf(key,"MBPi0Gamma1_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"MixBToPi0Gamma1_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s MixB Pi0(A<0.7)GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
fMixBOmega1[index]=(TH2F*)fhEtalon->Clone(key) ;\r
fMixBOmega1[index]->SetTitle(title);\r
outputContainer->Add(fMixBOmega1[index]);\r
\r
- sprintf(key,"MCPi0Gamma1_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"MixCToPi0Gamma1_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s MixC Pi0(A<0.7)GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
fMixCOmega1[index]=(TH2F*)fhEtalon->Clone(key) ;\r
fMixCOmega1[index]->SetTitle(title);\r
outputContainer->Add(fMixCOmega1[index]);\r
\r
- sprintf(key,"RPi0Gamma2_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"RealToPi0Gamma2_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s Real Pi0(A<0.8)GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
fRealOmega2[index]=(TH2F*)fhEtalon->Clone(key) ;\r
fRealOmega2[index]->SetTitle(title);\r
outputContainer->Add(fRealOmega2[index]);\r
\r
- sprintf(key,"MAPi0Gamma2_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"MixAToPi0Gamma2_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s MixA Pi0(A<0.8)GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
fMixAOmega2[index]=(TH2F*)fhEtalon->Clone(key) ;\r
fMixAOmega2[index]->SetTitle(title);\r
outputContainer->Add(fMixAOmega2[index]);\r
\r
- sprintf(key,"MBPi0Gamma2_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"MixBToPi0Gamma2_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s MixB Pi0(A<0.8)GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
fMixBOmega2[index]=(TH2F*)fhEtalon->Clone(key) ;\r
fMixBOmega2[index]->SetTitle(title);\r
outputContainer->Add(fMixBOmega2[index]);\r
\r
- sprintf(key,"MCPi0Gamma2_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
+ sprintf(key,"MixCToPi0Gamma2_Vz%dC%dRp%dPid%dDist%d",i,j,k,ipid,idist);\r
sprintf(title, "%s MixC Pi0(A<0.8)GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%dcm",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[idist]);\r
fhEtalon->Clone(key);\r
fMixCOmega2[index]=(TH2F*)fhEtalon->Clone(key) ;\r
fInputAODPi0 = (TClonesArray*)GetInputAODBranch(); //pi0 array\r
Int_t npi0s = fInputAODPi0 ->GetEntries();\r
\r
- if(nphotons<3)return; //for pi0, eta and omega->pi0+gamma->3gamma reconstruction\r
+ if(nphotons<3 || npi0s<1)return; //for pi0, eta and omega->pi0+gamma->3gamma reconstruction\r
\r
- //if((nphotons<3) || (npi0s<=0)) return;\r
//reconstruction of omega(782)->pi0+gamma->3gamma\r
//loop for pi0 and photon\r
- if(GetDebug() > 0) printf("omega->pi0+gamma->3gamma invariant mass analysis ! \n");\r
+ if(GetDebug() > 0) printf("omega->pi0+gamma->3gamma invariant mass analysis ! This event have %d photons and %d pi0 \n", nphotons, npi0s);\r
for(Int_t i=0;i<npi0s;i++){\r
AliAODPWG4Particle * pi0 = (AliAODPWG4Particle*) (fInputAODPi0->At(i)) ; //pi0\r
TLorentzVector vpi0(pi0->Px(),pi0->Py(),pi0->Pz(),pi0->E());\r
Int_t lab1=pi0->GetCaloLabel(0); // photon1 from pi0 decay\r
Int_t lab2=pi0->GetCaloLabel(1); // photon2 from pi0 decay\r
//for omega->pi0+gamma, it needs at least three photons per event\r
-\r
//Get the two decay photons from pi0\r
AliAODPWG4Particle * photon1 =0;\r
AliAODPWG4Particle * photon2 =0;\r
// Double_t eta2=dph2.Eta();\r
// Double_t pi0dist=TMath::Sqrt((phi1-phi2)*(phi1-phi2)+(eta1-eta2)*(eta1-eta2));\r
\r
-\r
if(pi0->GetPdg()==111 && nphotons>2 && npi0s\r
&& TMath::Abs(vpi0.M()-fPi0Mass)<fPi0MassWindow) { //pi0 candidates\r
\r
\r
for(Int_t l=0;l<index1;l++) if(lab3==dc1[l]) lab3=-1;\r
for(Int_t l=0;l<index2;l++) if(lab3==dc2[l]) lab3=-1;\r
-\r
+ \r
if(lab3>0 && lab3!=lab1 && lab3!=lab2){\r
for(Int_t ipid=0;ipid<fNpid;ipid++){\r
for(Int_t idist=0;idist<fNBadChDistBin;idist++){\r
photon1->DistToBad()>=fBadChDist[idist] &&\r
photon2->DistToBad()>=fBadChDist[idist] &&\r
photon3->DistToBad()>=fBadChDist[idist] ){\r
- \r
//fill the histograms\r
- fRealOmega[index]->Fill(pi0gammapt,pi0gammamass); \r
+ if(GetDebug() > 2) printf("Real: index %d pt %2.3f mass %2.3f \n", index, pi0gammapt, pi0gammamass);\r
+ fRealOmega0[index]->Fill(pi0gammapt,pi0gammamass);\r
if(pi0asy<0.7) fRealOmega1[index]->Fill(pi0gammapt,pi0gammamass);\r
if(pi0asy<0.8) fRealOmega2[index]->Fill(pi0gammapt,pi0gammamass);\r
-//printf("real omega %d %2.2f \n", index, pi0gammamass);\r
}\r
}\r
}\r
} \r
delete []dc1;\r
delete []dc2;\r
-\r
+ if(GetDebug() > 0) printf("MixA: (r1_event1+r2_event1)+r3_event2 \n");\r
//-------------------------\r
//background analysis\r
//three background\r
// --A (r1_event1+r2_event1)+r3_event2\r
-\r
Int_t nMixed = fEventsList[curEventBin]->GetSize();\r
for(Int_t im=0;im<nMixed;im++){\r
TClonesArray* ev2= (TClonesArray*) (fEventsList[curEventBin]->At(im));\r
photon1->DistToBad()>=fBadChDist[idist] &&\r
photon2->DistToBad()>=fBadChDist[idist] &&\r
mix1ph->DistToBad()>=fBadChDist[idist] ){\r
-\r
+ if(GetDebug() > 2) printf("MixA: index %d pt %2.3f mass %2.3f \n",index, pi0gammapt, pi0gammamass);\r
//fill the histograms\r
- fMixAOmega[index]->Fill(pi0gammapt,pi0gammamass);\r
+ fMixAOmega0[index]->Fill(pi0gammapt,pi0gammamass);\r
if(pi0asy<0.7)fMixAOmega1[index]->Fill(pi0gammapt,pi0gammamass);\r
if(pi0asy<0.8)fMixAOmega2[index]->Fill(pi0gammapt,pi0gammamass);\r
//printf("mix A %d %2.2f \n", index, pi0gammamass);\r
//\r
// --B (r1_event1+r2_event2)+r3_event2\r
//\r
+ if(GetDebug() >0)printf("MixB: (r1_event1+r2_event2)+r3_event2 \n");\r
for(Int_t i=0;i<nphotons;i++){\r
AliAODPWG4Particle *ph1 = (AliAODPWG4Particle*) (fInputAODGamma->At(i)); \r
TLorentzVector vph1(ph1->Px(),ph1->Py(),ph1->Pz(),ph1->E());\r
Double_t pi0gammamass=(vph1+vph2+vph3).M(); \r
Double_t pi0OverOmegaPtRatio =(vph1+vph2).Pt()/pi0gammapt;\r
Double_t gammaOverOmegaPtRatio= vph3.Pt()/pi0gammapt;\r
-\r
//pi0, gamma pt cut \r
if(pi0OverOmegaPtRatio>fPi0OverOmegaPtCut ||\r
gammaOverOmegaPtRatio<fGammaOverOmegaPtCut) continue;\r
ph1->DistToBad()>=fBadChDist[idist] &&\r
ph2->DistToBad()>=fBadChDist[idist] &&\r
ph3->DistToBad()>=fBadChDist[idist] ){\r
+ if(GetDebug() > 2) printf("MixB: index %d pt %2.3f mass %2.3f \n", index, pi0gammapt, pi0gammamass);\r
//fill histograms\r
- fMixBOmega[index]->Fill(pi0gammapt,pi0gammamass);\r
+ fMixBOmega0[index]->Fill(pi0gammapt,pi0gammamass);\r
if(pi0asy<0.7) fMixBOmega1[index]->Fill(pi0gammapt,pi0gammamass);\r
if(pi0asy<0.8) fMixBOmega2[index]->Fill(pi0gammapt,pi0gammamass);\r
//printf("mix B %d %2.2f \n", index, pi0gammamass);\r
} \r
}\r
}\r
- \r
+ \r
//\r
// --C (r1_event1+r2_event2)+r3_event3\r
//\r
+ if(GetDebug() >0)printf("MixC: (r1_event1+r2_event2)+r3_event3\n");\r
for(Int_t je=(ie+1);je<nMixed;je++){\r
TClonesArray* ev3= (TClonesArray*) (fEventsList[curEventBin]->At(je));\r
for(Int_t mix3=0;mix3<ev3->GetEntries();mix3++){\r
Double_t pi0gammamass=(vph1+vph2+vph3).M();\r
Double_t pi0OverOmegaPtRatio =(vph1+vph2).Pt()/pi0gammapt;\r
Double_t gammaOverOmegaPtRatio= vph3.Pt()/pi0gammapt;\r
- \r
//pi0, gamma pt cut \r
- if(pi0OverOmegaPtRatio>fPi0OverOmegaPtCut ||\r
+ if(pi0OverOmegaPtRatio>fPi0OverOmegaPtCut ||\r
gammaOverOmegaPtRatio<fGammaOverOmegaPtCut) continue;\r
\r
for(Int_t ipid=0;ipid<fNpid;ipid++){\r
ph1->DistToBad()>=fBadChDist[idist] &&\r
ph2->DistToBad()>=fBadChDist[idist] &&\r
ph3->DistToBad()>=fBadChDist[idist] ){\r
+ if(GetDebug() > 2) printf("MixC: index %d pt %2.3f mass %2.3f \n", index, pi0gammapt, pi0gammamass);\r
//fill histograms\r
- fMixCOmega[index]->Fill(pi0gammapt,pi0gammamass);\r
+ fMixCOmega0[index]->Fill(pi0gammapt,pi0gammamass);\r
if(pi0asy<0.7) fMixCOmega1[index]->Fill(pi0gammapt,pi0gammamass);\r
if(pi0asy<0.8) fMixCOmega2[index]->Fill(pi0gammapt,pi0gammamass);\r
//printf("mix C %d %2.2f \n", index, pi0gammamass);\r
}\r
}\r
\r
+\r
//event buffer \r
TClonesArray *currentEvent = new TClonesArray(*fInputAODGamma);\r
if(currentEvent->GetEntriesFast()>0){\r
delete currentEvent ;\r
currentEvent=0 ;\r
}\r
- \r
}\r
\r
//______________________________________________________________________________\r
//read the histograms \r
//for the finalization of the terminate analysis\r
\r
- Int_t index = outputList->IndexOf(outputList->FindObject(GetAddedHistogramsStringToName()+"RPi0Gamma_Vz0C0Rp0Pid0Dist0"));\r
+ Int_t index = outputList->IndexOf(outputList->FindObject(GetAddedHistogramsStringToName()+"RealToPi0Gamma_Vz0C0Rp0Pid0Dist0"));\r
\r
Int_t ndim=fNVtxZBin*fNCentBin*fNRpBin*fNBadChDistBin*fNpid;\r
\r
- if(!fRealOmega) fRealOmega =new TH2F*[ndim];\r
- if(!fMixAOmega) fMixAOmega =new TH2F*[ndim];\r
- if(!fMixBOmega) fMixBOmega =new TH2F*[ndim];\r
- if(!fMixCOmega) fMixCOmega =new TH2F*[ndim];\r
+ if(!fRealOmega0) fRealOmega0 =new TH2F*[ndim];\r
+ if(!fMixAOmega0) fMixAOmega0 =new TH2F*[ndim];\r
+ if(!fMixBOmega0) fMixBOmega0 =new TH2F*[ndim];\r
+ if(!fMixCOmega0) fMixCOmega0 =new TH2F*[ndim];\r
\r
if(!fRealOmega1) fRealOmega1 =new TH2F*[ndim];\r
if(!fMixAOmega1) fMixAOmega1 =new TH2F*[ndim];\r
for(Int_t ipid=0;ipid<fNpid;ipid++){ \r
for(Int_t idist=0;idist<fNBadChDistBin;idist++){ //at particle\r
Int_t ind=idim*fNpid*fNBadChDistBin+ipid*fNBadChDistBin+idist;\r
- fRealOmega[ind]= (TH2F*) outputList->At(index++);\r
- fMixAOmega[ind]= (TH2F*) outputList->At(index++);\r
- fMixBOmega[ind]= (TH2F*) outputList->At(index++);\r
- fMixCOmega[ind]= (TH2F*) outputList->At(index++);\r
+ fRealOmega0[ind]= (TH2F*) outputList->At(index++);\r
+ fMixAOmega0[ind]= (TH2F*) outputList->At(index++);\r
+ fMixBOmega0[ind]= (TH2F*) outputList->At(index++);\r
+ fMixCOmega0[ind]= (TH2F*) outputList->At(index++);\r
\r
fRealOmega1[ind]= (TH2F*) outputList->At(index++);\r
fMixAOmega1[ind]= (TH2F*) outputList->At(index++);\r
cvsIVM->cd(1);\r
char dec[128];\r
sprintf(dec,"h2Real_%s",fInputAODGammaName.Data());\r
- TH2F * h2Real= (TH2F*)fRealOmega[0]->Clone(dec);\r
+ TH2F * h2Real= (TH2F*)fRealOmega0[0]->Clone(dec);\r
h2Real->GetXaxis()->SetRangeUser(4,6);\r
TH1F * hRealOmega = (TH1F*) h2Real->ProjectionY();\r
hRealOmega->SetTitle("RealPi0Gamma 4<pt<6");\r
\r
cvsIVM->cd(2);\r
sprintf(dec,"hMixA_%s",fInputAODGammaName.Data());\r
- TH2F *h2MixA= (TH2F*)fMixAOmega[0]->Clone(dec);\r
+ TH2F *h2MixA= (TH2F*)fMixAOmega0[0]->Clone(dec);\r
h2MixA->GetXaxis()->SetRangeUser(4,6);\r
TH1F * hMixAOmega = (TH1F*) h2MixA->ProjectionY();\r
hMixAOmega->SetTitle("MixA 4<pt<6");\r
\r
cvsIVM->cd(3);\r
sprintf(dec,"hMixB_%s",fInputAODGammaName.Data());\r
- TH2F * h2MixB= (TH2F*)fMixBOmega[0]->Clone(dec);\r
+ TH2F * h2MixB= (TH2F*)fMixBOmega0[0]->Clone(dec);\r
h2MixB->GetXaxis()->SetRangeUser(4,6);\r
TH1F * hMixBOmega = (TH1F*) h2MixB->ProjectionY();\r
hMixBOmega->SetTitle("MixB 4<pt<6");\r
\r
cvsIVM->cd(4);\r
sprintf(dec,"hMixC_%s",fInputAODGammaName.Data());\r
- TH2F *h2MixC= (TH2F*)fMixCOmega[0]->Clone(dec);\r
+ TH2F *h2MixC= (TH2F*)fMixCOmega0[0]->Clone(dec);\r
h2MixC->GetXaxis()->SetRangeUser(4,6);\r
TH1F * hMixCOmega = (TH1F*) h2MixC->ProjectionY();\r
hMixCOmega->SetTitle("MixC 4<pt<6");\r
Bool_t IsBadRun(Int_t /*iRun*/) const {return kFALSE;} //Tests if this run bad according to private list
void SetNEventsMixed(Int_t nevents) { fNmaxMixEv=nevents;} //events to be mixed
- void SetNPID(Int_t pid) {fNpid=pid;}
- void SetNVtxZ(Int_t vtx){fNVtxZBin=vtx;}
- void SetNBadChDist(Int_t dist){fNBadChDistBin=dist;}
+
+ void SetNPID(Int_t pid) {fNpid=pid;} //N pid cut
+ void SetNVtxZ(Int_t vtx){fNVtxZBin=vtx;} //N vertex Z cut
+ void SetNBadChDist(Int_t dist){fNBadChDistBin=dist;} //N dist cut
void SetPi0MassPeakWidthCut(Double_t win){fPi0MassWindow=win;}
+
void SetPi0OverOmegaPtCut(Double_t cut){fPi0OverOmegaPtCut=cut;}
void SetGammaOverOmegaPtCut(Double_t cut){fGammaOverOmegaPtCut=cut;}
void ReadHistograms(TList * outputList);
private:
- TClonesArray * fInputAODGamma; //Input AOD gamma array
- TClonesArray * fInputAODPi0; //Input AOD pi0 array
- TString fInputAODGammaName; //Input AOD gamma name
- TList ** fEventsList; //event list for mixing
-
- Int_t fNVtxZBin; //Number of vertex z cut
- Int_t fNCentBin; //Number of centrality cut
- Int_t fNRpBin; //Number of reaction plane cut
- Int_t fNBadChDistBin; //Number of bad channel dist cut
- Int_t fNpid; //Number of PID cut
- Int_t fNmaxMixEv; //buffer size events to be mixed
-
- Double_t *fVtxZCut; //[fNVtxZBin] vtertx z cut
- Double_t *fCent; //[fNCentBin] centrality cut
- Double_t *fRp; //[fNRpBin] reaction plane cut
- Int_t *fBadChDist; //[fNBadChDistBin] bad channel dist
-
- Double_t fPi0Mass; //nominal pi0 mass
- Double_t fPi0MassWindow; //pi0 mass windows
- Double_t fPi0OverOmegaPtCut; //pi0 Pt over omega pt cut
- Double_t fGammaOverOmegaPtCut; //gamma pt over omega pt cut
-
- TH2F * fhEtalon; //an etalon of 3D histograms
-
- TH2F **fRealOmega; //real omega IVM(asy, pt, m), with Asy_pi0<1
- TH2F **fMixAOmega; //mixA omega IVM(asy, pt, m)
- TH2F **fMixBOmega; //mixB omega IVM(asy, pt, m)
- TH2F **fMixCOmega; //mixC omega IVM(asy, pt, m)
-
- TH2F **fRealOmega1; //real omega IVM(asy, pt, m), with Asy_pi0<0.7
- TH2F **fMixAOmega1; //mixA omega IVM(asy, pt, m)
- TH2F **fMixBOmega1; //mixB omega IVM(asy, pt, m)
- TH2F **fMixCOmega1; //mixC omega IVM(asy, pt, m)
-
- TH2F **fRealOmega2; //real omega IVM(asy, pt, m), with Asy_pi0<0.8
- TH2F **fMixAOmega2; //mixA omega IVM(asy, pt, m)
- TH2F **fMixBOmega2; //mixB omega IVM(asy, pt, m)
- TH2F **fMixCOmega2; //mixC omega IVM(asy, pt, m)
+ TClonesArray * fInputAODGamma; //!Input AOD gamma array
+ TClonesArray * fInputAODPi0; //!Input AOD pi0 array
+ TString fInputAODGammaName; //!Input AOD gamma name
+ TList ** fEventsList; //!event list for mixing
+
+ Int_t fNVtxZBin; //!Number of vertex z cut
+ Int_t fNCentBin; //!Number of centrality cut
+ Int_t fNRpBin; //!Number of reaction plane cut
+ Int_t fNBadChDistBin; //!Number of bad channel dist cut
+ Int_t fNpid; //!Number of PID cut
+ Int_t fNmaxMixEv; //!buffer size events to be mixed
+
+ Double_t *fVtxZCut; //![fNVtxZBin] vtertx z cut
+ Double_t *fCent; //![fNCentBin] centrality cut
+ Double_t *fRp; //![fNRpBin] reaction plane cut
+ Int_t *fBadChDist; //![fNBadChDistBin] bad channel dist
+
+ Double_t fPi0Mass; //!nominal pi0 mass
+ Double_t fPi0MassWindow; //!pi0 mass windows
+ Double_t fPi0OverOmegaPtCut; //!pi0 Pt over omega pt cut
+ Double_t fGammaOverOmegaPtCut; //!gamma pt over omega pt cut
+
+ TH2F * fhEtalon; //!an etalon of 3D histograms
+ TH2F **fRealOmega0; //!real omega IVM(asy, pt, m), with Asy_pi0<1
+ TH2F **fMixAOmega0; //!mixA omega IVM(asy, pt, m)
+ TH2F **fMixBOmega0; //!mixB omega IVM(asy, pt, m)
+ TH2F **fMixCOmega0; //!mixC omega IVM(asy, pt, m)
+ TH2F **fRealOmega1; //!real omega IVM(asy, pt, m), with Asy_pi0<0.7
+ TH2F **fMixAOmega1; //!mixA omega IVM(asy, pt, m)
+ TH2F **fMixBOmega1; //!mixB omega IVM(asy, pt, m)
+ TH2F **fMixCOmega1; //!mixC omega IVM(asy, pt, m)
+ TH2F **fRealOmega2; //!real omega IVM(asy, pt, m), with Asy_pi0<0.8
+ TH2F **fMixAOmega2; //!mixA omega IVM(asy, pt, m)
+ TH2F **fMixBOmega2; //!mixB omega IVM(asy, pt, m)
+ TH2F **fMixCOmega2; //!mixC omega IVM(asy, pt, m)
+ TH1F *fhOmegaPriPt; //!MC primary omega pt in 2pi and |y|<0.5
- TH1F *fhOmegaPriPt; //MC primary omega pt in 2pi and |y|<0.5
ClassDef(AliAnaOmegaToPi0Gamma,2)
} ;