fVtxZCut(0), fCent(0), fRp(0), fBadChDist(0),\r
fNVtxZBin(0), fNCentBin(0), fNRpBin(0), fNBadChDistBin(0), fNpid(0),\r
fNmaxMixEv(0), fPi0Mass(0),\r
-fPi0MassWindow(0),\r
-fNbinsPt(0),fPtBegin(0),fPtEnd(0),\r
-fNbinsM(0),fMinM(0),fMaxM(0),\r
+fPi0MassWindow(0),fPi0OverOmegaPtCut(0),fGammaOverOmegaPtCut(0),\r
fhEtalon(0),\r
fRealOmega(0), fMixAOmega(0),\r
fMixBOmega(0), fMixCOmega(0),\r
fNBadChDistBin(ex.fNBadChDistBin),fNpid(ex.fNpid),\r
fNmaxMixEv(ex.fNmaxMixEv), fPi0Mass(ex.fPi0Mass),\r
fPi0MassWindow(ex.fPi0MassWindow),\r
-fNbinsPt(ex.fNbinsPt),fPtBegin(ex.fPtBegin),fPtEnd(ex.fPtEnd),\r
-fNbinsM(ex.fNbinsM),fMinM(ex.fMinM),fMaxM(ex.fMaxM),\r
+fPi0OverOmegaPtCut(ex.fPi0OverOmegaPtCut),fGammaOverOmegaPtCut(ex.fGammaOverOmegaPtCut),\r
fhEtalon(ex.fhEtalon),\r
fRealOmega(ex.fRealOmega), fMixAOmega(ex.fMixAOmega),\r
fMixBOmega(ex.fMixBOmega), fMixCOmega(ex.fMixCOmega),\r
fNmaxMixEv =ex.fNmaxMixEv;\r
fPi0Mass=ex.fPi0Mass;\r
fPi0MassWindow=ex.fPi0MassWindow;\r
+ fPi0OverOmegaPtCut=ex.fPi0OverOmegaPtCut;\r
+ fGammaOverOmegaPtCut=ex.fGammaOverOmegaPtCut;\r
\r
- fNbinsPt=ex.fNbinsPt;fPtBegin=ex.fPtBegin;fPtEnd=ex.fPtEnd;\r
- fNbinsM=ex.fNbinsM;fMinM=ex.fMinM;fMaxM=ex.fMaxM;\r
- \r
fhEtalon=ex.fhEtalon;\r
fRealOmega=ex.fRealOmega;\r
fMixAOmega=ex.fMixAOmega;\r
\r
fPi0Mass=0.13498;\r
fPi0MassWindow=0.015;\r
- fNbinsPt=200;\r
- fPtBegin=0;\r
- fPtEnd=20;\r
- fNbinsM=100; //mass bin number, min and max\r
- fMinM=0;\r
- fMaxM=1;\r
-\r
+ fPi0OverOmegaPtCut=0.8;\r
+ fGammaOverOmegaPtCut=0.3;\r
fNVtxZBin=1;\r
fNCentBin=1;\r
fNRpBin=1;\r
fNpid=3;\r
\r
fVtxZCut = new Double_t [fNVtxZBin];\r
- fVtxZCut[0]=30;\r
- //fVtxZCut[0]=10 ; fVtxZCut[1]=20 ; fVtxZCut[2]=30 ;// fVtxZCut[3]=40 ;;\r
+ for(Int_t i=0;i<fNVtxZBin;i++) fVtxZCut[i]=10*(i+1);\r
\r
fCent=new Double_t[fNCentBin];\r
fCent[0]=0;\r
fRp[0]=0;\r
\r
fBadChDist=new Int_t [fNBadChDistBin];\r
-// fBadChDist[0]=0; fBadChDist[1]=1; fBadChDist[2]=2;\r
- fBadChDist[0]=0; \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
+\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", fNbinsPt,fPtBegin, fPtEnd,fNbinsM,fMinM,fMaxM) ;\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
//______________________________________________________________________________\r
TList * AliAnaOmegaToPi0Gamma::GetCreateOutputObjects()\r
-{ \r
+{ \r
+\r
+ Int_t nptbins = GetHistoPtBins();\r
+ Float_t ptmax = GetHistoPtMax();\r
+ Float_t ptmin = GetHistoPtMin();\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
// store them in fOutputContainer\r
fEventsList = new TList*[fNVtxZBin*fNCentBin*fNRpBin];\r
for(Int_t i=0;i<fNVtxZBin;i++){\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(title, "%s Real Pi0GammaIVM vz_%2.1f_ct_%2.1f_Rp_%2.1f_pid_%d_dist_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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
outputContainer->Add(fRealOmega[index]);\r
\r
sprintf(key,"MAPi0Gamma_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_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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
outputContainer->Add(fMixAOmega[index]);\r
\r
sprintf(key,"MBPi0Gamma_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_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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
outputContainer->Add(fMixBOmega[index]);\r
\r
sprintf(key,"MCPi0Gamma_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_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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
outputContainer->Add(fMixCOmega[index]);\r
\r
sprintf(key,"RPi0Gamma1_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_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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]->SetName(key) ;\r
outputContainer->Add(fRealOmega1[index]);\r
\r
sprintf(key,"MAPi0Gamma1_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_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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]->SetName(key) ;\r
outputContainer->Add(fMixAOmega1[index]);\r
\r
sprintf(key,"MBPi0Gamma1_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_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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]->SetName(key) ;\r
outputContainer->Add(fMixBOmega1[index]);\r
\r
sprintf(key,"MCPi0Gamma1_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_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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]->SetName(key) ;\r
outputContainer->Add(fMixCOmega1[index]);\r
\r
sprintf(key,"RPi0Gamma2_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_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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]->SetName(key) ;\r
outputContainer->Add(fRealOmega2[index]);\r
\r
sprintf(key,"MAPi0Gamma2_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_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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]->SetName(key) ;\r
outputContainer->Add(fMixAOmega2[index]);\r
\r
sprintf(key,"MBPi0Gamma2_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_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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]->SetName(key) ;\r
outputContainer->Add(fMixBOmega2[index]);\r
\r
sprintf(key,"MCPi0Gamma2_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_%d",detector,fVtxZCut[i],fCent[j],fRp[k],ipid,fBadChDist[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
fMixCOmega2[index]->SetName(key) ;\r
if(IsDataMC()){\r
sprintf(key, "%sOmegaPri",detector);\r
sprintf(title,"primary #omega in %s",detector);\r
- fhOmegaPriPt=new TH1F(key, title,fNbinsPt,fPtBegin,fPtEnd);\r
+ fhOmegaPriPt=new TH1F(key, title,nptbins,ptmin,ptmax);\r
fhOmegaPriPt->GetXaxis()->SetTitle("P_{T}");\r
fhOmegaPriPt->GetYaxis()->SetTitle("dN/P_{T}");\r
outputContainer->Add(fhOmegaPriPt);\r
Double_t vert[]={0,0,0} ;\r
GetReader()->GetVertex(vert);\r
Int_t curEventBin =0;\r
- Int_t ivtxzbin = -1;\r
- for(Int_t i=0;i<fNVtxZBin;i++){\r
- // if(TMath::Abs(vert[2])<fVtxZCut[i] && TMath::Abs(vert[2])>=(fVtxZCut[i]-10)) ivtxzbin=i;\r
- if(TMath::Abs(vert[2])<fVtxZCut[i]) ivtxzbin=i;\r
- }\r
+\r
+ Int_t ivtxzbin=(Int_t)TMath::Abs(vert[2])/10;\r
+ if(ivtxzbin>=fNVtxZBin)return;\r
+\r
//centrality\r
Int_t icentbin=0;\r
\r
AliAODPWG4Particle *photon3 = (AliAODPWG4Particle*) (fInputAODGamma->At(j));\r
TLorentzVector dph3(photon3->Px(),photon3->Py(),photon3->Pz(),photon3->E());\r
Int_t lab3=photon3->GetCaloLabel(0);\r
+ Double_t pi0gammapt=(vpi0+dph3).Pt();\r
+ Double_t pi0gammamass=(vpi0+dph3).M();\r
+ Double_t pi0OverOmegaPtRatio =vpi0.Pt()/pi0gammapt; \r
+ Double_t gammaOverOmegaPtRatio= dph3.Pt()/pi0gammapt;\r
+\r
+ //pi0, gamma pt cut \r
+ if(pi0OverOmegaPtRatio>fPi0OverOmegaPtCut || \r
+ gammaOverOmegaPtRatio<fGammaOverOmegaPtCut) continue;\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
photon2->DistToBad()>=fBadChDist[idist] &&\r
photon3->DistToBad()>=fBadChDist[idist] ){\r
\r
- Double_t pi0gammapt=(vpi0+dph3).Pt();\r
- Double_t pi0gammamass=(vpi0+dph3).M();\r
//fill the histograms\r
fRealOmega[index]->Fill(pi0gammapt,pi0gammamass); \r
if(pi0asy<0.7) fRealOmega1[index]->Fill(pi0gammapt,pi0gammamass);\r
for(Int_t mix1=0;mix1<ev2->GetEntries();mix1++){\r
AliAODPWG4Particle *mix1ph = (AliAODPWG4Particle*) (ev2->At(mix1)); \r
TLorentzVector vmixph(mix1ph->Px(),mix1ph->Py(),mix1ph->Pz(),mix1ph->E());\r
+ Double_t pi0gammapt=(vpi0+vmixph).Pt();\r
+ Double_t pi0gammamass=(vpi0+vmixph).M();\r
+ Double_t pi0OverOmegaPtRatio =vpi0.Pt()/pi0gammapt;\r
+ Double_t gammaOverOmegaPtRatio= vmixph.Pt()/pi0gammapt;\r
+\r
+ //pi0, gamma pt cut \r
+ if(pi0OverOmegaPtRatio>fPi0OverOmegaPtCut || \r
+ gammaOverOmegaPtRatio<fGammaOverOmegaPtCut) continue;\r
+\r
for(Int_t ipid=0;ipid<fNpid;ipid++){\r
for(Int_t idist=0;idist<fNBadChDistBin;idist++){\r
Int_t index=curEventBin*fNpid*fNBadChDistBin+ipid*fNBadChDistBin+idist;\r
photon2->DistToBad()>=fBadChDist[idist] &&\r
mix1ph->DistToBad()>=fBadChDist[idist] ){\r
\r
- Double_t pi0gammapt=(vpi0+vmixph).Pt();\r
- Double_t pi0gammamass=(vpi0+vmixph).M();\r
//fill the histograms\r
fMixAOmega[index]->Fill(pi0gammapt,pi0gammamass);\r
if(pi0asy<0.7)fMixAOmega1[index]->Fill(pi0gammapt,pi0gammamass);\r
\r
Double_t pi0gammapt=(vph1+vph2+vph3).Pt();\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
+\r
for(Int_t ipid=0;ipid<fNpid;ipid++){\r
for(Int_t idist=0;idist<fNBadChDistBin;idist++){\r
Int_t index=curEventBin*fNpid*fNBadChDistBin+ipid*fNBadChDistBin+idist;\r
\r
Double_t pi0gammapt=(vph1+vph2+vph3).Pt();\r
Double_t pi0gammamass=(vph1+vph2+vph3).M();\r
- \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
+ \r
for(Int_t ipid=0;ipid<fNpid;ipid++){\r
for(Int_t idist=0;idist<fNBadChDistBin;idist++){\r
Int_t index=curEventBin*fNpid*fNBadChDistBin+ipid*fNBadChDistBin+idist;\r
cvsIVM->Divide(2, 2);\r
\r
cvsIVM->cd(1);\r
- TH2F * h2Real= new TH2F(*fRealOmega[0]);\r
+ char dec[128];\r
+ sprintf(dec,"h2Real_%s",fInputAODGammaName.Data());\r
+ TH2F * h2Real= (TH2F*)fRealOmega[0]->Clone(dec);\r
h2Real->GetXaxis()->SetRangeUser(4,6);\r
TH1F * hRealOmega = (TH1F*) h2Real->ProjectionY();\r
hRealOmega->SetTitle("RealPi0Gamma 4<pt<6");\r
hRealOmega->Draw();\r
\r
cvsIVM->cd(2);\r
- TH2F *h2MixA= new TH2F(*fMixAOmega[0]);\r
+ sprintf(dec,"hMixA_%s",fInputAODGammaName.Data());\r
+ TH2F *h2MixA= (TH2F*)fMixAOmega[0]->Clone(dec);\r
h2MixA->GetXaxis()->SetRangeUser(4,6);\r
TH1F * hMixAOmega = (TH1F*) h2MixA->ProjectionY();\r
hMixAOmega->SetTitle("MixA 4<pt<6");\r
hMixAOmega->Draw();\r
\r
cvsIVM->cd(3);\r
- TH2F * h2MixB=new TH2F(*fMixBOmega[0]);\r
+ sprintf(dec,"hMixB_%s",fInputAODGammaName.Data());\r
+ TH2F * h2MixB= (TH2F*)fMixBOmega[0]->Clone(dec);\r
h2MixB->GetXaxis()->SetRangeUser(4,6);\r
TH1F * hMixBOmega = (TH1F*) h2MixB->ProjectionY();\r
hMixBOmega->SetTitle("MixB 4<pt<6");\r
hMixBOmega->Draw();\r
\r
cvsIVM->cd(4);\r
- TH2F *h2MixC= new TH2F(*fMixCOmega[0]);\r
+ sprintf(dec,"hMixC_%s",fInputAODGammaName.Data());\r
+ TH2F *h2MixC= (TH2F*)fMixCOmega[0]->Clone(dec);\r
h2MixC->GetXaxis()->SetRangeUser(4,6);\r
TH1F * hMixCOmega = (TH1F*) h2MixC->ProjectionY();\r
hMixCOmega->SetTitle("MixC 4<pt<6");\r
AliFiducialCut * fidCut1stYear = new AliFiducialCut();
fidCut1stYear->DoCTSFiducialCut(kFALSE) ;
if(kSimulation){
- fidCut1stYear->DoEMCALFiducialCut(kTRUE) ;
- fidCut1stYear->DoPHOSFiducialCut(kTRUE) ;
- fidCut1stYear->SetSimpleEMCALFiducialCut(0.7,80.,120.);
- fidCut1stYear->SetSimplePHOSFiducialCut(0.12,260.,320.);
+ fidCut1stYear->DoEMCALFiducialCut(kTRUE) ;
+ fidCut1stYear->DoPHOSFiducialCut(kTRUE) ;
+ fidCut1stYear->SetSimpleEMCALFiducialCut(0.7,80.,120.);
+ fidCut1stYear->SetSimplePHOSFiducialCut(0.12,260.,320.);
}
else{
- fidCut1stYear->DoEMCALFiducialCut(kFALSE) ;
- fidCut1stYear->DoPHOSFiducialCut(kFALSE) ;
+ fidCut1stYear->DoEMCALFiducialCut(kFALSE) ;
+ fidCut1stYear->DoPHOSFiducialCut(kFALSE) ;
}
-
+
// AliFiducialCut * fidCut = new AliFiducialCut();
// fidCut->DoCTSFiducialCut(kFALSE) ;
// fidCut->DoEMCALFiducialCut(kTRUE) ;
else qa->SwitchOffDataMC() ;
qa->AddToHistogramsName("AnaCaloQA_");
if(kSimulation){
- qa->SetFiducialCut(fidCut1stYear);
- qa->SwitchOnFiducialCut();
+ qa->SetFiducialCut(fidCut1stYear);
+ qa->SwitchOnFiducialCut();
}
if(qa=="PHOS") qa->SetNumberOfModules(3); //PHOS first year
else qa->SetNumberOfModules(4); //EMCAL first year
qa->SetHistoPtRangeAndNBins(0, 50, 500) ;
qa->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
if(calorimeter == "PHOS"){
- qa->SetHistoEtaRangeAndNBins(-0.13, 0.13, 100) ;
- qa->SetHistoPhiRangeAndNBins(250*TMath::DegToRad(), 330*TMath::DegToRad() , 200) ;
+ qa->SetHistoEtaRangeAndNBins(-0.13, 0.13, 100) ;
+ qa->SetHistoPhiRangeAndNBins(250*TMath::DegToRad(), 330*TMath::DegToRad() , 200) ;
}
else if(calorimeter == "EMCAL"){
- qa->SetHistoEtaRangeAndNBins(-0.8, 0.8, 200) ;
- qa->SetHistoPhiRangeAndNBins(70*TMath::DegToRad(), 130*TMath::DegToRad(), 200) ;
+ qa->SetHistoEtaRangeAndNBins(-0.8, 0.8, 200) ;
+ qa->SetHistoPhiRangeAndNBins(70*TMath::DegToRad(), 130*TMath::DegToRad(), 200) ;
}
qa->SetHistoMassRangeAndNBins(0., 0.6, 300) ;
qa->SetHistoAsymmetryRangeAndNBins(0., 1. , 25) ;
// --------------------
// --- Pi0 Analysis ---
// --------------------
-
-
AliAnaPhoton *anaphoton1 = new AliAnaPhoton();
anaphoton1->SetDebug(-1); //10 for lots of messages
AliAnaPhoton *anaphoton2 = new AliAnaPhoton();
anaphoton2->SetDebug(-1); //10 for lots of messages
- anaphoton2->SetMinPt(2);
+ anaphoton2->SetMinPt(0.);
anaphoton2->SetCaloPID(pid);
anaphoton2->SetCalorimeter(calorimeter);
if(kUseKinematics) anaphoton2->SwitchOnDataMC() ;//Access MC stack and fill more histograms
AliAnaParticleIsolation *anaisol = new AliAnaParticleIsolation();
anaisol->SetDebug(-1);
- anaisol->SetMinPt(2);
+ anaisol->SetMinPt(0);
anaisol->SetInputAODName(Form("Photons%s",calorimeter.Data()));
anaisol->SetCalorimeter(calorimeter);
if(kUseKinematics) anaisol->SwitchOnDataMC() ;//Access MC stack and fill more histograms
AliAnaPi0EbE *anapi0ebe = new AliAnaPi0EbE();
anapi0ebe->SetDebug(-1);//10 for lots of messages
anapi0ebe->SetAnalysisType(AliAnaPi0EbE::kIMCalo);
- anapi0ebe->SetMinPt(2);
+ anapi0ebe->SetMinPt(0);
anapi0ebe->SetCalorimeter(calorimeter);
anapi0ebe->SetInputAODName(Form("Photons%s",calorimeter.Data()));
anapi0ebe->SetOutputAODName(Form("Pi0s%s",calorimeter.Data()));
AliAnaParticleIsolation *anaisolpi0 = new AliAnaParticleIsolation();
anaisolpi0->SetDebug(-1);
- anaisolpi0->SetMinPt(2);
+ anaisolpi0->SetMinPt(0);
anaisolpi0->SetInputAODName(Form("Pi0s%s",calorimeter.Data()));
anaisolpi0->AddToHistogramsName("AnaIsolPi0_");
anaisolpi0->SetCalorimeter(calorimeter);
// ana->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
// ana->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
if(kPrintSettings) anacorrhadronisopi0->Print("");
-
+
+ //analysis the omega->pi0+gamma
+ AliAnaOmegaToPi0Gamma *anaomegaToPi0Gamma = new AliAnaOmegaToPi0Gamma();
+ anaomegaToPi0Gamma->SetDebug(-1);//10 for lots of messages
+ anaomegaToPi0Gamma->SetInputAODName(Form("Pi0s%s",calorimeter.Data()));
+ anaomegaToPi0Gamma->SetInputAODPhotonName(Form("Photons%s",calorimeter.Data()));
+ anaomegaToPi0Gamma->SetNPID(2);
+ anaomegaToPi0Gamma->SetNVtxZ(2);
+ anaomegaToPi0Gamma->SetNBadChDist(3);
+ anaomegaToPi0Gamma->SetNEventsMixed(4);
+ if(calorimeter.Data()=="PHOS")
+ anaomegaToPi0Gamma->SetPi0MassPeakWidthCut(0.008); // PHOS
+ else if(calorimeter.Data()=="EMCAL")
+ anaomegaToPi0Gamma->SetPi0MassPeakWidthCut(0.012); // EMCAL
+ anaomegaToPi0Gamma->SetHistoPtRangeAndNBins(0, 20, 200) ;
+ anaomegaToPi0Gamma->SetHistoMassRangeAndNBins(0, 1, 200) ;
+ anaomegaToPi0Gamma->SetPi0OverOmegaPtCut(0.8);
+ anaomegaToPi0Gamma->SetGammaOverOmegaPtCut(0.2);
+ if(kUseKinematics) anaomegaToPi0Gamma->SwitchOnDataMC() ;//Access MC stack and fill more histograms
+ else anaomegaToPi0Gamma->SwitchOffDataMC() ;//Access MC stack and fill more histograms
+ anaomegaToPi0Gamma->AddToHistogramsName(Form("AnaOmegaToPi0Gamma%s_",calorimeter.Data()));
+ anaomegaToPi0Gamma->Print("");
+
// #### Configure Maker ####
AliAnaPartCorrMaker * maker = new AliAnaPartCorrMaker();
maker->SetReader(reader);//pointer to reader
maker->AddAnalysis(anaisolpi0,9);
maker->AddAnalysis(anacorrhadronpi0,10);
maker->AddAnalysis(anacorrhadronisopi0,11);
-
+ maker->AddAnalysis(anaomegaToPi0Gamma,12);
+
maker->SetAnaDebug(-1) ;
maker->SwitchOnHistogramsMaker() ;
maker->SwitchOnAODsMaker() ;
-
AliAnaPartCorrMaker* ConfigAnalysis()
{
//
printf("ConfigAnalysis() \n");
printf("======================== \n");
- //Detector Fiducial Cuts
+ //Detector Fidutial Cuts
AliFiducialCut * fidCut = new AliFiducialCut();
- fidCut->DoCTSFiducialCut(kFALSE) ;
+ fidCut->DoCTSFiducialCut(kTRUE) ;
fidCut->DoEMCALFiducialCut(kTRUE) ;
fidCut->DoPHOSFiducialCut(kTRUE) ;
- //fidCut->SetSimpleCTSFiducialCut(0.9,0.,360.);
+ fidCut->SetSimpleCTSFiducialCut(0.9,0.,360.);
fidCut->SetSimpleEMCALFiducialCut(0.7,80.,190.);
fidCut->SetSimplePHOSFiducialCut(0.12,220.,320.);
//Switch on or off the detectors information that you want
reader->SwitchOnPHOS();
reader->SwitchOnEMCAL();
- reader->SwitchOffCTS();
+ reader->SwitchOnCTS();
//Min particle pT
- reader->SetEMCALPtMin(0.2);
- reader->SetPHOSPtMin(0.2);
- //reader->SetCTSPtMin(0.2);
+ reader->SetEMCALPtMin(0.5);
+ reader->SetPHOSPtMin(0.5);
+ reader->SetCTSPtMin(0.5);
reader->SetFiducialCut(fidCut);
-
- //Remove the temporal AODs we create.
- reader->SwitchOnCleanStdAOD();
-
reader->Print("");
AliAnaPhoton *anaphoton = new AliAnaPhoton();
anaphoton->SetDebug(-1); //10 for lots of messages
- anaphoton->SetMinPt(0.2);
+ anaphoton->SetMinPt(0.1);
anaphoton->SetMinDistanceToBadChannel(2, 4, 5);
anaphoton->SetCaloPID(pid);
// anaphoton->SetFiducialCut(fidCut); //More acceptance selections if needed at this level
// >>> Second Analysis <<<
AliNeutralMesonSelection *nms = new AliNeutralMesonSelection();
- nms->SetInvMassCutRange(0.1, 0.17) ;
+ nms->SetInvMassCutRange(0.11, 0.16) ;
nms->KeepNeutralMesonSelectionHistos(kTRUE);
//Set Histrograms bins and ranges
- nms->SetHistoERangeAndNBins(0, 50, 100) ;
- nms->SetHistoPtRangeAndNBins(0, 50, 100) ;
- nms->SetHistoAngleRangeAndNBins(0, 0.3, 100) ;
- nms->SetHistoIMRangeAndNBins(0, 0.4, 100) ;
- AliAnaPi0EbE *anapi0 = new AliAnaPi0EbE();
- anapi0->SetDebug(-1);//10 for lots of messages
- anapi0->SetAnalysisType(AliAnaPi0EbE::kIMCalo);
- anapi0->SetInputAODName("PhotonsPHOS");
- anapi0->SetOutputAODName("Pi0sPHOS");
- anapi0->SetOutputAODClassName("AliAODPWG4Particle");
- anapi0->SwitchOffDataMC() ;//Access MC stack and fill more histograms
- anapi0->SetNeutralMesonSelection(nms);
- anapi0->AddToHistogramsName("AnaPi0EbEPHOS_");
+ AliAnaPi0EbE *anapi0EbE = new AliAnaPi0EbE();
+ anapi0EbE->SetDebug(-1);//10 for lots of messages
+ anapi0EbE->SetAnalysisType(AliAnaPi0EbE::kIMCalo);
+ anapi0EbE->SetInputAODName("PhotonsPHOS");
+ anapi0EbE->SetOutputAODName("Pi0sPHOS");
+ anapi0EbE->SetOutputAODClassName("AliAODPWG4Particle");
+ anapi0EbE->SwitchOffDataMC() ;//Access MC stack and fill more histograms
+ anapi0EbE->SetNeutralMesonSelection(nms);
+ anapi0EbE->AddToHistogramsName("AnaPi0EbEPHOS_");
//Set Histrograms bins and ranges
- anapi0->SetHistoPtRangeAndNBins(0, 50, 100) ;
- anapi0->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
- anapi0->SetHistoEtaRangeAndNBins(-0.2, 0.2, 100) ;
- anapi0->Print("");
+
+ anapi0EbE->Print("");
AliAnaOmegaToPi0Gamma *anaomega = new AliAnaOmegaToPi0Gamma();
anaomega->SetDebug(-1);//10 for lots of messages
anaomega->SetInputAODName("Pi0sPHOS");
anaomega->SetInputAODPhotonName("PhotonsPHOS");
- anaomega->SetNPID(3);
+ anaomega->SetNPID(2);
+ anaomega->SetNVtxZ(2);
+ anaomega->SetNBadChDist(1);
anaomega->SetNEventsMixed(4);
- anaomega->SetNPtBinsMinMax(200,0,20.);
- anaomega->SetNMassBinsMinMas(200,0,1.);
- anaomega->SetPi0MassPeakWidthCut(0.015);
+ anaomega->SetPi0MassPeakWidthCut(0.008); //
+ anaomega->SetHistoPtRangeAndNBins(0, 10, 200) ;
+ anaomega->SetHistoMassRangeAndNBins(0, 1, 200) ;
+ anaomega->SetPi0OverOmegaPtCut(0.8);
+ anaomega->SetGammaOverOmegaPtCut(0.2);
anaomega->SwitchOnFiducialCut();
- anaomega->SwitchOnDataMC() ;//Access MC stack and fill more histograms
- anaomega->AddToHistogramsName("AnaNeuPHOS_");
+ anaomega->SwitchOffDataMC() ;//Access MC stack and fill more histograms
+ anaomega->AddToHistogramsName("AnaOmegaToPi0GammaPHOS_");
anaomega->Print("");
-
//for EMCAL
AliCaloPID * pid1 = new AliCaloPID();
// use selection with simple weights
AliAnaPhoton *anaphoton1 = new AliAnaPhoton();
anaphoton1->SetDebug(-1); //10 for lots of messages
- anaphoton1->SetMinPt(0.2);
+ anaphoton1->SetMinPt(0.1);
anaphoton1->SetMinDistanceToBadChannel(2, 4, 5);
anaphoton1->SetCaloPID(pid);
anaphoton1->SetCalorimeter("EMCAL");
anaphoton1->Print("");
AliNeutralMesonSelection *nms1 = new AliNeutralMesonSelection();
- nms1->SetInvMassCutRange(0.1, 0.17) ;
+ nms1->SetInvMassCutRange(0.11, 0.16) ;
nms1->KeepNeutralMesonSelectionHistos(kTRUE);
//Set Histrograms bins and ranges
- nms1->SetHistoERangeAndNBins(0, 50, 100) ;
- nms1->SetHistoPtRangeAndNBins(0, 50, 100) ;
- nms1->SetHistoAngleRangeAndNBins(0, 0.3, 100) ;
- nms1->SetHistoIMRangeAndNBins(0, 0.4, 100) ;
-
- AliAnaPi0EbE *anapi01 = new AliAnaPi0EbE();
- anapi01->SetDebug(-1);//10 for lots of messages
- anapi01->SetAnalysisType(AliAnaPi0EbE::kIMCalo);
- anapi01->SetInputAODName("PhotonsEMCAL");
- anapi01->SetOutputAODName("Pi0sEMCAL");
- anapi01->SetOutputAODClassName("AliAODPWG4Particle");
- anapi01->SwitchOffDataMC() ;//Access MC stack and fill more histograms
- anapi01->SetNeutralMesonSelection(nms1);
- anapi01->AddToHistogramsName("AnaPi0EbEEMCAL_");
+ AliAnaPi0EbE *anapi0EbEEbE1 = new AliAnaPi0EbE();
+ anapi0EbEEbE1->SetDebug(-1);//10 for lots of messages
+ anapi0EbEEbE1->SetAnalysisType(AliAnaPi0EbE::kIMCalo);
+ anapi0EbEEbE1->SetInputAODName("PhotonsEMCAL");
+ anapi0EbEEbE1->SetOutputAODName("Pi0sEMCAL");
+ anapi0EbEEbE1->SetOutputAODClassName("AliAODPWG4Particle");
+ anapi0EbEEbE1->SwitchOffDataMC() ;//Access MC stack and fill more histograms
+ anapi0EbEEbE1->SetNeutralMesonSelection(nms1);
+ anapi0EbEEbE1->AddToHistogramsName("AnaPi0EbEEMCAL_");
//Set Histrograms bins and ranges
- anapi01->SetHistoPtRangeAndNBins(0, 50, 100) ;
- anapi01->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
- anapi01->SetHistoEtaRangeAndNBins(-0.8, 0.8, 100) ;
- anapi01->Print("");
+ anapi0EbEEbE1->Print("");
+
AliAnaOmegaToPi0Gamma *anaomega1 = new AliAnaOmegaToPi0Gamma();
anaomega1->SetDebug(-1);//10 for lots of messages
anaomega1->SetInputAODName("Pi0sEMCAL");
anaomega1->SetInputAODPhotonName("PhotonsEMCAL");
- anaomega1->SetNPID(3);
+ anaomega1->SetNPID(2);
+ anaomega1->SetNVtxZ(2);
+ anaomega1->SetNBadChDist(1);
anaomega1->SetNEventsMixed(4);
- //anaomega1->SetNAsyBinsMinMax(200,0,1.);
- anaomega1->SetNPtBinsMinMax(200,0,20.);
- anaomega1->SetNMassBinsMinMas(200,0,1.);
anaomega1->SetPi0MassPeakWidthCut(0.015);
+ anaomega1->SetHistoPtRangeAndNBins(0, 10, 200) ;
+ anaomega1->SetHistoMassRangeAndNBins(0, 1, 200) ;
+ anaomega1->SetPi0OverOmegaPtCut(0.8);
+ anaomega1->SetGammaOverOmegaPtCut(0.2);
anaomega1->SwitchOnFiducialCut();
- anaomega1->SwitchOnDataMC() ;//Access MC stack and fill more histograms
- anaomega1->AddToHistogramsName("AnaNeuEMCAL_");
+ anaomega1->SwitchOffDataMC() ;//Access MC stack and fill more histograms
+ anaomega1->AddToHistogramsName("AnaOmegaToPi0GammaEMCAL_");
anaomega1->Print("");
-
//---------------------------------------------------------------------
// Set analysis algorithm and reader
//---------------------------------------------------------------------
maker->SetReader(reader);//pointer to reader
maker->SetAnaDebug(0);
maker->AddAnalysis(anaphoton,0);
- maker->AddAnalysis(anapi0,1);
+ maker->AddAnalysis(anapi0EbE,1);
maker->AddAnalysis(anaomega,2);
maker->AddAnalysis(anaphoton1,3);
- maker->AddAnalysis(anapi01,4);
- maker->AddAnalysis(anaomega1,5);
+ maker->AddAnalysis(anapi0EbEEbE1,4);
+ maker->AddAnalysis(anaomega1,5);
maker->SwitchOnHistogramsMaker() ;
maker->SwitchOnAODsMaker() ;