iMtof(1),
kPvtxCorr(1),
iBconf(0),
- kTOF(0),
+ kTOF(0),
+//iTriggerSel(-99),
fAOD(NULL),
fESD(NULL),
fEvent(NULL),
{
Centrality[0]=0.0;
Centrality[1]=100.0;
-
+
EtaLimit[0]=-99.0;
EtaLimit[1]=99.0;
-
+
fList[0]=new TList();
fList[0]->SetName("results");
iMtof(1),
kPvtxCorr(1),
iBconf(0),
- kTOF(0),
+ kTOF(0),
+ //iTriggerSel(-99),
fAOD(NULL),
fESD(NULL),
fEvent(NULL),
htemp[iB] = new TH1F("htemp","htemp (avoid the problem with the empty list...);B field",20,-10,10);
- hCentrality[iB][0] = new TH1F("hCentrality_Selected","Centrality (selected events);centrality(%)",20,0,100);
- hCentrality[iB][1] = new TH1F("hCentrality_Analyzed","Centrality (analyzed events);centrality (%)",20,0,100);
+ //htriggerbits[iB] = new TH1I("htriggerbits","htriggerbits; bits",10,-5,5);
+ htriggerbits[iB][0] = new TH1I("htriggerbits_0","trigger mask; bits",45,-5,40);
+ htriggerbits[iB][1] = new TH1I("htriggerbits_1","trigger bits (exclusive); bits",45,-5,40);
+
+ hCentrality[iB][0] = new TH1F("hCentrality_Selected","Centrality (selected events);centrality(%)",20,0,100);//20,0,100
+ hCentrality[iB][1] = new TH1F("hCentrality_Analyzed","Centrality (analyzed events);centrality (%)",20,0,100);//20,0,100
hZvertex[iB][0] = new TH1F("hZvertex_Selected","Vertex distribution of selected events;z vertex (cm)",240,-30,30);
hZvertex[iB][1] = new TH1F("hZvertex_Analyzed","Vertex distribution of analyzed events;z vertex (cm)",240,-30,30);
hDeDxExp[iB][i] = new TProfile(name_hDeDxExp[i],title_hDeDxExp[i],1,0,5,0,1,"");//,500,0,5,0,1000,""); toram
}
- Char_t name_fNsigmaTpc[nPart][200];
- Char_t title_fNsigmaTpc[nPart][200];
+ Char_t name_fNsigmaTpc[nSpec][200];
+ Char_t title_fNsigmaTpc[nSpec][200];
if(kSignalCheck==1) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=100; hbins[1]=100;} toram
- else {hbins[0]=1; hbins[1]=1;}
- for(Int_t i=0;i<nPart;i++) {
- snprintf(name_fNsigmaTpc[i],200,"NsigmaTpc_%s",namePart[i]);
- snprintf(title_fNsigmaTpc[i],200,"NsigmaTpc_%s;p_{TPC}/|z| (GeV/c);n_{#sigma_{TPC}}^{%s}",namePart[i],namePart[i]);
+ else {hbins[0]=100; hbins[1]=100;}//temp!
+ for(Int_t i=0;i<nSpec;i++) {
+ snprintf(name_fNsigmaTpc[i],200,"NsigmaTpc_%s",name[i]);
+ snprintf(title_fNsigmaTpc[i],200,"NsigmaTpc_%s;p_{TPC}/|z| (GeV/c);n_{#sigma_{TPC}}^{%s}",name[i],name[i]);
fNsigmaTpc[iB][i] = new TH2F(name_fNsigmaTpc[i],title_fNsigmaTpc[i],hbins[0],0,5,hbins[1],-5,5);
}
Char_t title_fNsigmaTpc_kTOF[nSpec][200];
for(Int_t i=0;i<nSpec;i++) {
snprintf(name_fNsigmaTpc_kTOF[i],200,"NsigmaTpc_%s_kTOF",name[i]);
- snprintf(title_fNsigmaTpc_kTOF[i],200,"NsigmaTpc_kTOF_%s in DCAxyCut;p/|z| (GeV/c);n_{#sigma_{TPC}}^{%s}",name[i],name[i]);
+ snprintf(title_fNsigmaTpc_kTOF[i],200,"NsigmaTpc_kTOF_%s;p/|z| (GeV/c);n_{#sigma_{TPC}}^{%s}",name[i],name[i]);
fNsigmaTpc_kTOF[iB][i] = new TH2F(name_fNsigmaTpc_kTOF[i],title_fNsigmaTpc_kTOF[i],hbins[0],0,5,hbins[1],-5,5);
}
fNsigmaTof[iB][i] = new TH2F(name_fNsigmaTof[i],title_fNsigmaTof[i],hbins[0],0,5,hbins[1],-5,5);
}
- Char_t name_fNsigmaTof_DcaCut[nSpec][200];
- Char_t title_fNsigmaTof_DcaCut[nSpec][200];
- if(kSignalCheck==1) {hbins[0]=100; hbins[1]=100;}
- else {hbins[0]=1; hbins[1]=1;}
- for(Int_t i=0;i<nSpec;i++) {
- snprintf(name_fNsigmaTof_DcaCut[i],200,"NsigmaTof_DcaCut_%s",name[i]);
- snprintf(title_fNsigmaTof_DcaCut[i],200,"NsigmaTof_%s with DCAxyCut;p_{T}/|z| (GeV/c);n_{#sigma_{TOF}}^{%s}",name[i],name[i]);
- fNsigmaTof_DcaCut[iB][i] = new TH2F(name_fNsigmaTof_DcaCut[i],title_fNsigmaTof_DcaCut[i],hbins[0],0,5,hbins[1],-5,5);
- }
-
- if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
- else {hbins[0]=1; hbins[1]=1;}
- fM2vsP_NoTpcCut[iB][0][0] = new TH2F("fM2vsP_NoTpcCut_pos","m^{2}/z^{2}_{TOF} vs p/|z| (positive charge);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
- fM2vsP_NoTpcCut[iB][0][1] = new TH2F("fM2vsP_NoTpcCut_neg","m^{2}/z^{2}_{TOF} vs p/|z| (negative charge);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
-
if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;}
else if(kSignalCheck==2) {hbins[0]=1; hbins[1]=1;}// {hbins[0]=1000; hbins[1]=100;} toram
- fM2vsP_NoTpcCut[iB][1][0] = new TH2F("fM2vsP_NoTpcCut_DCAxyCut_pos","m^{2}/z^{2}_{TOF} vs p/|z| (positive charge) with DCAxy cut;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
- fM2vsP_NoTpcCut[iB][1][1] = new TH2F("fM2vsP_NoTpcCut_DCAxyCut_neg","m^{2}/z^{2}_{TOF} vs p/|z| (negative charge) with DCAxy cut;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
+ fM2vsP_NoTpcCut[iB][0][0] = new TH2F("fM2vsP_NoTpcCut_pos","m^{2}/z^{2}_{TOF} vs p/|z| (positive charge);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
+ fM2vsP_NoTpcCut[iB][0][1] = new TH2F("fM2vsP_NoTpcCut_neg","m^{2}/z^{2}_{TOF} vs p/|z| (negative charge);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
- Char_t name_fM2vsP[2][18][300];
- Char_t title_fM2vsP[2][18][300];
+ Char_t name_fM2vsP[1][18][300];
+ Char_t title_fM2vsP[1][18][300];
for(Int_t i=0;i<nSpec;i++) {
snprintf(name_fM2vsP[0][i],300,"fM2vsPc_%s",name[i]);
snprintf(title_fM2vsP[0][i],300,"m^{2}/z^{2}_{TOF} vs p/|z| of %s with a NsigmaTpcCut (pReco->pTrue for nuclei);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",name[i]);
- snprintf(name_fM2vsP[1][i],300,"fM2vsPc_%s_DCAxyCut",name[i]);
- snprintf(title_fM2vsP[1][i],300,"m^{2}/z^{2}_{TOF} vs p/|z| of %s with a NsigmaTpcCut and with the DCAxy cut (pReco->pTrue for nuclei);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",name[i]);
-
if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
else {hbins[0]=1; hbins[1]=1;}
fM2vsP[iB][0][i] = new TH2F(name_fM2vsP[0][i],title_fM2vsP[0][i],hbins[0],0,10,hbins[1],0,5);
-
- if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
- else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;}
- else if(kSignalCheck==2) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=1000 oppure 500; hbins[1]=100;} toram
- fM2vsP[iB][1][i] = new TH2F(name_fM2vsP[1][i],title_fM2vsP[1][i],hbins[0],0,6,hbins[1],0,5);//hbins[0],0,10,hbins[1],0,5
}
if(kSignalCheck==1) {hbins[0]=4000; hbins[1]=1000;}
- else {hbins[0]=1; hbins[1]=1;}
+ else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;}
+ else if(kSignalCheck==2) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=1000 oppure 500; hbins[1]=100;} toram
fM2vsZ[iB][0] = new TH2F("fM2vsZ","m^{2}/z^{2}_{TOF} vs z_{TPC} Integrated p_{T};z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
fM2vsZ[iB][1] = new TH2F("fM2vsZ_0.5pT1.0","m^{2}/z^{2}_{TOF} vs z_{TPC} 0.5<pT<1.0;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
fM2vsZ[iB][2] = new TH2F("fM2vsZ_1.0pT1.5","m^{2}/z^{2}_{TOF} vs z_{TPC} 1.0<pT<1.5;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
fM2vsZ[iB][7] = new TH2F("fM2vsZ_3.5pT4.0","m^{2}/z^{2}_{TOF} vs z_{TPC} 3.5<pT<4.0;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
fM2vsZ[iB][8] = new TH2F("fM2vsZ_4.0pT4.5","m^{2}/z^{2}_{TOF} vs z_{TPC} 4.0<pT<4.5;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
fM2vsZ[iB][9] = new TH2F("fM2vsZ_4.5pT5.0","m^{2}/z^{2}_{TOF} vs z_{TPC} 2.0<pT<2.5;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
+
+ Char_t name_h2DCAap[18][200];
+ Char_t title_h2DCAap[18][200];
+
+ for(Int_t iS=0;iS<nSpec;iS++) {
+ snprintf(name_h2DCAap[iS],200,"h2DCAap_%s",name[iS]);
+ snprintf(title_h2DCAap[iS],200,"h2DCA_%s in for p/z<1.5GeV;DCA_{xy} (cm);DCA_{z} (cm)",name[iS]);
+ if(iS==5 || iS==7 || iS==5+9 || iS==7+9) h2DCAap[iB][iS] = new TH2F(name_h2DCAap[iS],title_h2DCAap[iS],1,-3.5,3.5,1,-3.5,3.5);//1750,-3.5,3.5,1750,-3.5,3.5
+ else h2DCAap[iB][iS] = new TH2F(name_h2DCAap[iS],title_h2DCAap[iS],1,-3.5,3.5,1,-3.5,3.5);//1750,-3.5,3.5,1750,-3.5,3.5
+ }
Char_t name_hDCAxy[18][nbin][200];
Char_t title_hDCAxy[18][nbin][200];
Char_t name_hDCAz[18][nbin][200];
Char_t title_hDCAz[18][nbin][200];
+
+ //Char_t name_h2DCA[18][nbin][200];
+ //Char_t title_h2DCA[18][nbin][200];
+
for(Int_t iS=0;iS<nSpec;iS++) {
for(Int_t j=0;j<nbin;j++) {
snprintf(name_hDCAxy[iS][j],200,"hDCAxy_%s_%s",name[iS],name_nbin[j]);
- snprintf(title_hDCAxy[iS][j],200,"hDCAxy_%s_%s;DCA_{xy} (cm)",name[iS],name_nbin[j]);
+ snprintf(title_hDCAxy[iS][j],200,"hDCAxy_%s_%s in DCAzCut;DCA_{xy} (cm)",name[iS],name_nbin[j]);
if(iS==5 || iS==7 || iS==5+9 || iS==7+9) hDCAxy[iB][iS][j] = new TH1D(name_hDCAxy[iS][j],title_hDCAxy[iS][j],875,-3.5,3.5);
else hDCAxy[iB][iS][j] = new TH1D(name_hDCAxy[iS][j],title_hDCAxy[iS][j],1,-3.5,3.5);
snprintf(name_hDCAz[iS][j],200,"hDCAz_%s_%s",name[iS],name_nbin[j]);
- snprintf(title_hDCAz[iS][j],200,"hDCAz_%s_%s;DCA_{z} (cm)",name[iS],name_nbin[j]);
+ snprintf(title_hDCAz[iS][j],200,"hDCAz_%s_%s in DCAxyCut;DCA_{z} (cm)",name[iS],name_nbin[j]);
if(iS==5 || iS==7 || iS==5+9 || iS==7+9) hDCAz[iB][iS][j] = new TH1D(name_hDCAz[iS][j],title_hDCAz[iS][j],875,-3.5,3.5);
else hDCAz[iB][iS][j] = new TH1D(name_hDCAz[iS][j],title_hDCAz[iS][j],1,-3.5,3.5);
+
+ //snprintf(name_h2DCA[iS][j],200,"h2DCA_%s_%s",name[iS],name_nbin[j]);
+ //snprintf(title_h2DCA[iS][j],200,"h2DCA_%s_%s;DCA_{xy} (cm);DCA_{z} (cm)",name[iS],name_nbin[j]);
+ //if(iS==2 || iS==5 || iS==7 || iS==2+9 || iS==5+9 || iS==7+9) h2DCA[iB][iS][j] = new TH2F(name_h2DCA[iS][j],title_h2DCA[iS][j],1,-4,4,1,-4,4);//,160,-4,4,160,-4,4);
+ //else h2DCA[iB][iS][j] = new TH2F(name_h2DCA[iS][j],title_h2DCA[iS][j],1,-4,4,1,-4,4);
}
}
-
+
Char_t name_hM2CutDCAxy[18][nbin][200];
Char_t title_hM2CutDCAxy[18][nbin][200];
- Char_t name_hM2CutGroundDCAxy[18][nbin][200];
- Char_t title_hM2CutGroundDCAxy[18][nbin][200];
for(Int_t iS=0;iS<nSpec;iS++) {
for(Int_t j=0;j<nbin;j++) {
snprintf(name_hM2CutDCAxy[iS][j],200,"hM2_CutDCAxy_%s_%s",name[iS],name_nbin[j]);
- snprintf(title_hM2CutDCAxy[iS][j],200,"m^{2}/z^{2} Tof distribution of %s in DCAxy cut and in %s;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",name[iS],name_nbin[j]);
- snprintf(name_hM2CutGroundDCAxy[iS][j],200,"hM2_GroundCatDCAxy_%s_%s",name[iS],name_nbin[j]);
- snprintf(title_hM2CutGroundDCAxy[iS][j],200,"m^{2}/z^{2} Tof distribution of %s in the bkg. of DCAxy and in %s;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",name[iS],name_nbin[j]);
+ snprintf(title_hM2CutDCAxy[iS][j],200,"m^{2}/z^{2} Tof distribution of %s and in %s;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",name[iS],name_nbin[j]);
}
}
- const Int_t BinM2pT[nPart]={1,1,1,1000,1000,500,1,400,1};//1,1,600,250,500,500,1000,400,600//1,1,1,250,500,500,1,400,1
+ const Int_t BinM2pT[nPart]={1,1,1,1000,500,500,1,400,1};//1,1,600,250,500,500,1000,400,600//1,1,1,250,500,500,1,400,1//1,1,1,1000,500,500,1,400,1
const Double_t RangeM2min[nPart]={0.0,0.0,-0.1,0.0,0.0,0.0,0.0,0.0,0.0};
const Double_t RangeM2max[nPart]={1.0,1.0,0.5,2.0,4.0,6.0,12.0,4.0,6.0};
for(Int_t iS=0;iS<nPart;iS++) {
for(Int_t j=0;j<nbin;j++) {
-
hM2CutDCAxy[iB][iS][j] = new TH1D(name_hM2CutDCAxy[iS][j],title_hM2CutDCAxy[iS][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
- hM2CutGroundDCAxy[iB][iS][j] = new TH1D(name_hM2CutGroundDCAxy[iS][j],title_hM2CutGroundDCAxy[iS][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
-
hM2CutDCAxy[iB][iS+nPart][j] = new TH1D(name_hM2CutDCAxy[iS+nPart][j],title_hM2CutDCAxy[iS+nPart][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
- hM2CutGroundDCAxy[iB][iS+nPart][j] = new TH1D(name_hM2CutGroundDCAxy[iS+nPart][j],title_hM2CutGroundDCAxy[iS+nPart][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
}
}
Char_t name_fPmeanVsBetaGamma[18][200];
Char_t title_fPmeanVsBetaGamma[18][200];
- if(iMtof==2) {hbins[0]=200; hbins[1]=200;}
+ if(iMtof==2) {hbins[0]=1; hbins[1]=1;}//if(iMtof==2) {hbins[0]=200; hbins[1]=200;}
else {hbins[0]=1; hbins[1]=1;}
for(Int_t iS=0;iS<nSpec;iS++) {
snprintf(name_fPmeanVsBetaGamma[iS],200,"fPmeanVsPvtx_%s",name[iS]);
- snprintf(title_fPmeanVsBetaGamma[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s (in DCAxyCut);p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",name[iS],name[iS],name[iS]);
+ snprintf(title_fPmeanVsBetaGamma[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s;p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",name[iS],name[iS],name[iS]);
fPmeanVsBetaGamma[iB][iS]=new TH2F(name_fPmeanVsBetaGamma[iS],title_fPmeanVsBetaGamma[iS],hbins[0],0,10,hbins[1],0.8,1.2);
}
Char_t name_prPmeanVsBetaGamma[18][200];
Char_t title_prPmeanVsBetaGamma[18][200];
- if(iMtof==2) {hbins[0]=200; hbins[1]=200;}
+ if(iMtof==2) {hbins[0]=1; hbins[1]=1;}//if(iMtof==2) {hbins[0]=200; hbins[1]=200;}
else {hbins[0]=1; hbins[1]=1;}
for(Int_t iS=0;iS<nSpec;iS++) {
snprintf(name_prPmeanVsBetaGamma[iS],200,"prPmeanVsPvtx_%s",name[iS]);
- snprintf(title_prPmeanVsBetaGamma[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s (in DCAxyCut);p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",name[iS],name[iS],name[iS]);
+ snprintf(title_prPmeanVsBetaGamma[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s;p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",name[iS],name[iS],name[iS]);
prPmeanVsBetaGamma[iB][iS]=new TProfile(name_prPmeanVsBetaGamma[iS],title_prPmeanVsBetaGamma[iS],hbins[0],0,10,0.8,1.2,"");
}
SetPvtxCorrections();
- prPvtxTrueVsReco[iB][0]=new TProfile("prPvtxTrueVsReco_d","p_{true} vs p_{reco} of d and dbar;p_{reco} (GeV/c); p_{true}/p_{reco} (d)",100,0,10);
- prPvtxTrueVsReco[iB][1]=new TProfile("prPvtxTrueVsReco_t","p_{true} vs p_{reco} of t and tbar;p_{reco} (GeV/c);p_{true}/p_{reco} (t)",100,0,10);
- prPvtxTrueVsReco[iB][2]=new TProfile("prPvtxTrueVsReco_He3","p_{true} vs p_{reco} of He3 and He3bar;p_{reco} (GeV/c);p_{true}/p_{reco} (He3)",100,0,10);
- prPvtxTrueVsReco[iB][3]=new TProfile("prPvtxTrueVsReco_He4","p_{true} vs p_{reco} of He4 and He4bar;p_{reco} (GeV/c);p_{true}/p_{reco} (He4)",100,0,10);
+ prPvtxTrueVsReco[iB][0]=new TProfile("prPvtxTrueVsReco_d","p_{true} vs p_{reco} of d and dbar;p_{reco} (GeV/c); p_{true}/p_{reco} (d)",1,0,10);//,100,0,10
+ prPvtxTrueVsReco[iB][1]=new TProfile("prPvtxTrueVsReco_t","p_{true} vs p_{reco} of t and tbar;p_{reco} (GeV/c);p_{true}/p_{reco} (t)",1,0,10);//,100,0,10
+ prPvtxTrueVsReco[iB][2]=new TProfile("prPvtxTrueVsReco_He3","p_{true} vs p_{reco} of He3 and He3bar;p_{reco} (GeV/c);p_{true}/p_{reco} (He3)",1,0,10);//,100,0,10
+ prPvtxTrueVsReco[iB][3]=new TProfile("prPvtxTrueVsReco_He4","p_{true} vs p_{reco} of He4 and He4bar;p_{reco} (GeV/c);p_{true}/p_{reco} (He4)",1,0,10);//,100,0,10
SetPmeanCorrections();
hbins[0]=200;
for(Int_t iS=0;iS<14;iS++) {
snprintf(name_prPmeanVsBGcorr[iS],200,"prPmeanVsBGcorr_%s",nameTemp[iS]);
- snprintf(title_prPmeanVsBGcorr[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s as parameterized in input TF1 (in DCAxyCut);p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",nameTemp[iS],nameTemp[iS],nameTemp[iS]);
+ snprintf(title_prPmeanVsBGcorr[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s as parameterized in input TF1;p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",nameTemp[iS],nameTemp[iS],nameTemp[iS]);
prPmeanVsBGcorr[iB][iS]=new TProfile(name_prPmeanVsBGcorr[iS],title_prPmeanVsBGcorr[iS],hbins[0],0,20,0.8,1.2,"");
}
fList[iB]->Add(htemp[iB]);
+ for(Int_t i=0;i<2;i++) fList[iB]->Add(htriggerbits[iB][i]);
for(Int_t i=0;i<2;i++) fList[iB]->Add(hCentrality[iB][i]);
for(Int_t i=0;i<2;i++) fList[iB]->Add(hZvertex[iB][i]);
fList[iB]->Add(hEta[iB]);
fList[iB]->Add(hNTrdSlices[iB]);
//for(Int_t i=0;i<2;i++) fList[iB]->Add(fdEdxVSp[iB][i]);
//for(Int_t i=0;i<nPart;i++) fList[iB]->Add(hDeDxExp[iB][i]);
- //for(Int_t i=0;i<nPart;i++) fList[iB]->Add(fNsigmaTpc[iB][i]);
+ for(Int_t i=0;i<nSpec;i++) fList[iB]->Add(fNsigmaTpc[iB][i]);
for(Int_t i=0;i<nPart;i++) {
if(kSignalCheck!=1)
if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
//for(Int_t i=0;i<2;i++) fList[iB]->Add(fBetaTofVSp[iB][i]);
//for(Int_t i=0;i<nPart;i++) fList[iB]->Add(hBetaExp[iB][i]);
//for(Int_t i=0;i<nPart;i++) fList[iB]->Add(fNsigmaTof[iB][i]);
- for(Int_t i=0;i<nPart;i++) {
- if(kSignalCheck!=1)
- if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
- //fList[iB]->Add(fNsigmaTof_DcaCut[iB][i]);
- //fList[iB]->Add(fNsigmaTof_DcaCut[iB][i+nPart]);
- }
//for(Int_t i=0;i<2;i++) fList[iB]->Add(fM2vsP_NoTpcCut[iB][0][i]);
- //for(Int_t i=0;i<2;i++) fList[iB]->Add(fM2vsP_NoTpcCut[iB][1][i]);
for(Int_t i=0;i<nPart;i++) {
if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
//fList[iB]->Add(fM2vsP[iB][0][i]);
//fList[iB]->Add(fM2vsP[iB][0][i+nPart]);
}
- for(Int_t i=0;i<nPart;i++){
- if(kSignalCheck!=1)
- if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
- //fList[iB]->Add(fM2vsP[iB][1][i]);
- //fList[iB]->Add(fM2vsP[iB][1][i+nPart]);
- }
+
for(Int_t i=0;i<2;i++){
//fList[iB]->Add(fPvtxTrueVsReco[i]);
- fList[iB]->Add(prPvtxTrueVsReco[iB][i]);
+ //fList[iB]->Add(prPvtxTrueVsReco[iB][i]);
}
if(iMtof==2) {
for(Int_t i=0;i<nPart;i++){
if(i<2) continue;//e,mu excluded
- fList[iB]->Add(fPmeanVsBetaGamma[iB][i]);
- fList[iB]->Add(prPmeanVsBetaGamma[iB][i]);
- fList[iB]->Add(fPmeanVsBetaGamma[iB][i+nPart]);
- fList[iB]->Add(prPmeanVsBetaGamma[iB][i+nPart]);
+ //fList[iB]->Add(fPmeanVsBetaGamma[iB][i]);
+ //fList[iB]->Add(prPmeanVsBetaGamma[iB][i]);
+ //fList[iB]->Add(fPmeanVsBetaGamma[iB][i+nPart]);
+ //fList[iB]->Add(prPmeanVsBetaGamma[iB][i+nPart]);
}
}
if(iMtof>2) {
//for(Int_t i=0;i<14;i++)fList[iB]->Add(fPmeanVsBGcorr[i]);
- for(Int_t i=0;i<14;i++)fList[iB]->Add(prPmeanVsBGcorr[iB][i]);
+ //for(Int_t i=0;i<14;i++)fList[iB]->Add(prPmeanVsBGcorr[iB][i]);
+ }
+ for(Int_t i=0;i<nPart;i++) {
+ if(i<5 || i==6 || i==8) continue;//e,mu,pi,K,p,t,he4 excluded//i<5 || i==6 || i==8
+ fList[iB]->Add(h2DCAap[iB][i]);
+ fList[iB]->Add(h2DCAap[iB][i+nPart]);
}
+ /*
+ for(Int_t i=0;i<nPart;i++) {
+ if(i<5 || i==6 || i==8) continue;//e,mu,pi,K,p,t,he4 excluded//i<5 || i==6 || i==8
+ for(Int_t j=0;j<nbin;j++){
+ fList[iB]->Add(h2DCA[iB][i][j]);
+ fList[iB]->Add(h2DCA[iB][i+nPart][j]);
+ }
+ }
+ */
//for(Int_t i=0;i<10;i++) fList[iB]->Add(fM2vsZ[iB][i]);
for(Int_t i=0;i<nPart;i++){
if(kSignalCheck!=1)
fList[iB]->Add(hDCAxy[iB][i][j]);
fList[iB]->Add(hDCAz[iB][i][j]);
fList[iB]->Add(hM2CutDCAxy[iB][i][j]);
- fList[iB]->Add(hM2CutGroundDCAxy[iB][i][j]);
fList[iB]->Add(hDCAxy[iB][i+nPart][j]);
fList[iB]->Add(hDCAz[iB][i+nPart][j]);
fList[iB]->Add(hM2CutDCAxy[iB][i+nPart][j]);
- fList[iB]->Add(hM2CutGroundDCAxy[iB][i+nPart][j]);
}
}
//---------------------------EVENT CUTS-----------------------------
if(TMath::Abs(zvtx) < 10.0 && v0Centr>Centrality[0] && v0Centr<Centrality[1]){
+ //TRIGGER SELECTION
+ Int_t iTrigger=-2;
+
+ if(inputHandler->IsEventSelected() & AliVEvent::kMB) iTrigger = 0;
+ if(inputHandler->IsEventSelected() & AliVEvent::kCentral) iTrigger = 16;
+ if(inputHandler->IsEventSelected() & AliVEvent::kSemiCentral) iTrigger = 17;
+ //if((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()) & AliVEvent::kAny) iTrigger = 35;
+
+ if(iTriggerSel!=-99) {//if a dedicated trigger is required
+ if(iTrigger!=iTriggerSel) return;
+ }
+
+ for(Int_t i=0;i<32;i++) {
+ Int_t bit=(1<<i);
+ if(inputHandler->IsEventSelected() & bit) htriggerbits[iBconf][0]->Fill(i);
+ }
+ if(inputHandler->IsEventSelected() & AliVEvent::kAny) htriggerbits[iBconf][0]->Fill(35);
+ if(inputHandler->IsEventSelected() & AliVEvent::kAnyINT) htriggerbits[iBconf][0]->Fill(36);
+
+ htriggerbits[iBconf][1]->Fill(iTrigger);
+
hCentrality[iBconf][1]->Fill(v0Centr);
hZvertex[iBconf][1]->Fill(zvtx);
nTpcCluster=track->GetTPCNcls();
if(nTpcCluster>NminTpcCluster) isMinTpcCluster=kTRUE;
- //-------------------------------------start TRACK CUTS----------------------------------
+ //-------------------------------------start TRACK CUTS (I): for (II) see below--------
if ((track->Pt() < 0.2) || (eta<EtaLimit[0]) || (eta>EtaLimit[1]) || !trkFlag || !isMinTpcCluster)
continue;
- //Vertex determination
- Double_t b[2] = {-99., -99.};
- Double_t bCov[3] = {-99., -99., -99.};
- if (!track->PropagateToDCA(fEvent->GetPrimaryVertex(), fEvent->GetMagneticField(), 100., b, bCov))
- continue;
-
- Double_t DCAxy = b[0];
- Double_t DCAz = b[1];
-
- //Cut on the DCAz
- Bool_t isDCAzCut=kFALSE;
- if(DCAz<DCAzCut) isDCAzCut=kTRUE;
-
- if(!isDCAzCut)
- continue;
-
//For the Tpc purity cut
Double_t dedx = track->GetTPCsignal();
if(dedx<10) continue;
if(nTrdSlices<2 && iTrdCut==1) continue;
if(nTrdSlices>0 && iTrdCut==2) continue;
- //-------------------------------------end TRACK CUTS----------------------------------
+ //-------------------------------------end TRACK CUTS (I)----------------------------------
//-------------------------------------Track info--------------------------------------
Double_t phi= track->Phi();
-
- hEta[iBconf]->Fill(eta);
- hPhi[iBconf]->Fill(phi);
- fEtaPhi[iBconf]->Fill(eta,phi);
- hNTpcCluster[iBconf]->Fill(nTpcCluster);
- hNTrdSlices[iBconf]->Fill(nTrdSlices);
-
Double_t charge = (Double_t)track->Charge();
Double_t p = track->P();
Double_t pt = track->Pt();
Double_t beta = 0.0;
Double_t M2 = 999.9;
Double_t Z2 = 999.9;
-
+
+ //Vertex determination
+ Double_t b[2] = {-99., -99.};
+ Double_t bCov[3] = {-99., -99., -99.};
+ if (!track->PropagateToDCA(fEvent->GetPrimaryVertex(), fEvent->GetMagneticField(), 100., b, bCov))
+ continue;
+
+ Double_t DCAxy = b[0];
+ Double_t DCAz = b[1];
+
kTOF = (track->GetStatus() & AliVTrack::kTOFout) && (track->GetStatus() & AliVTrack::kTIME);
//-----------------------------TPC info------------------------------
Double_t pC[9];
for(Int_t iS=0;iS<9;iS++) pC[iS]=p;
this->MomVertexCorrection(p,pC,eta,FlagPid);
-
+
+ this->FillDCAdist(DCAxy,DCAz,charge,FlagPid,stdFlagPid,pC);
+
+ //-------------------------------------start TRACK CUTS (II)-------------------------------------
+ //Cut on the DCAxy
+ Bool_t isDCAxyCut=kFALSE;
+ if(TMath::Abs(DCAxy)<DCAxyCut) isDCAxyCut=kTRUE;
+
+ //Cut on the DCAz
+ Bool_t isDCAzCut=kFALSE;
+ if(TMath::Abs(DCAz)<DCAzCut) isDCAzCut=kTRUE;
+
+ if (!isDCAxyCut || !isDCAzCut)
+ continue;
+
+ //-------------------------------------end TRACK CUTS (II)----------------------------------
+
+ hEta[iBconf]->Fill(eta);
+ hPhi[iBconf]->Fill(phi);
+ fEtaPhi[iBconf]->Fill(eta,phi);
+ hNTpcCluster[iBconf]->Fill(nTpcCluster);
+ hNTrdSlices[iBconf]->Fill(nTrdSlices);
+
//More TPC info:
for(Int_t iS=0;iS<9;iS++){
expdedx[iS] = fPIDResponse->GetTPCResponse().GetExpectedSignal(track, (AliPID::EParticleType) iS, AliTPCPIDResponse::kdEdxDefault, kTRUE);
hDeDxExp[iBconf][iS]->Fill(pTPC,expdedx[iS]);
nsigmaTPC[iS] = fPIDResponse->NumberOfSigmasTPC(track,(AliPID::EParticleType) iS);
- fNsigmaTpc[iBconf][iS]->Fill(pTPC,nsigmaTPC[iS]);
+ //fNsigmaTpc[iBconf][iS]->Fill(pTPC,nsigmaTPC[iS]);
if(charge>0) {//positive particle
- if(kTOF && (TMath::Abs(DCAxy)<DCAxyCut)) fNsigmaTpc_kTOF[iBconf][iS]->Fill(p,nsigmaTPC[iS]);
+ fNsigmaTpc[iBconf][iS]->Fill(pTPC,nsigmaTPC[iS]);
+ if(kTOF) fNsigmaTpc_kTOF[iBconf][iS]->Fill(p,nsigmaTPC[iS]);
}
else {//negative particle
- if(kTOF && (TMath::Abs(DCAxy)<DCAxyCut)) fNsigmaTpc_kTOF[iBconf][iS+nPart]->Fill(p,nsigmaTPC[iS]);
+ fNsigmaTpc[iBconf][iS+nPart]->Fill(pTPC,nsigmaTPC[iS]);
+ if(kTOF) fNsigmaTpc_kTOF[iBconf][iS+nPart]->Fill(p,nsigmaTPC[iS]);
}
/*
if(TMath::Abs(nsigmaTPC[iS])<NsigmaTpcCut) {
fNsigmaTof[iBconf][iS]->Fill(pt,nsigmaTOF[iS]);
if(charge>0) {
hBetaExp[iBconf][iS]->Fill(p,exptimes[0]/exptimes[iS]);
- if(TMath::Abs(DCAxy)<DCAxyCut) fNsigmaTof_DcaCut[iBconf][iS]->Fill(pt,nsigmaTOF[iS]);
}
else {
hBetaExp[iBconf][iS+nPart]->Fill(p,exptimes[0]/exptimes[iS]);
- if(TMath::Abs(DCAxy)<DCAxyCut) fNsigmaTof_DcaCut[iBconf][iS+nPart]->Fill(pt,nsigmaTOF[iS]);
}
//TOF identification:
//-----------------------------M2 as a function of momentum to the primary vertex if iMtof==1---------------------------------
if(iMtof==1) this->GetMassFromPvertexCorrected(beta,pC,Mass2);
- if(iMtof==2) this->GetPmeanVsBetaGamma(exptimes,pC,FlagPid,FlagPidTof,charge,DCAxy);
+ if(iMtof==2) this->GetPmeanVsBetaGamma(exptimes,pC,FlagPid,FlagPidTof,charge);
//-----------------------------M2 as a function of expected times---------------------------------
if(iMtof==2) this->GetMassFromExpTimes(beta,exptimes,Mass2);
//-----------------------------M2 as a function of mean momentum calculated from expected time and extrapolated to the (anti)nuclei---------------------------------
- if(iMtof>2) this->GetMassFromMeanMom(beta,exptimes,pC,eta,charge,Mass2,FlagPid,FlagPidTof,DCAxy);
+ if(iMtof>2) this->GetMassFromMeanMom(beta,exptimes,pC,eta,charge,Mass2,FlagPid,FlagPidTof);
//-------------------------------Squared Mass TH2 distributions-----------------------
if(charge>0) {
//without TPC
fM2vsP_NoTpcCut[iBconf][0][0]->Fill(M2,p);
- if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP_NoTpcCut[iBconf][1][0]->Fill(M2,p);
//with TPC
for(Int_t iS=0;iS<9;iS++) {
M2=999.9;
//-----------------
if(FlagPid & stdFlagPid[iS]) {
fM2vsP[iBconf][0][iS]->Fill(M2,pC[iS]);
- if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP[iBconf][1][iS]->Fill(M2,pC[iS]);
}
}
}
else {//charge<0
//without TPC
fM2vsP_NoTpcCut[iBconf][0][1]->Fill(M2,p);
- if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP_NoTpcCut[iBconf][1][1]->Fill(M2,p);
- //with TPC
+ //with TPC
for(Int_t iS=0;iS<9;iS++) {
M2=999.9;
M2=Mass2[iS];
//-----------------
if(FlagPid & stdFlagPid[iS]) {
fM2vsP[iBconf][0][iS+nPart]->Fill(M2,pC[iS]);
- if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP[iBconf][1][iS+nPart]->Fill(M2,pC[iS]);
}
}
}
- //------------------------------start DCA and Squared Mass TH1 distributions-------------------------
+ //------------------------------start Squared Mass TH1 distributions-------------------------
Double_t binP[nbin+1];
for(Int_t i=0;i<nbin+1;i++) {
binP[i]=0.4+i*0.1;
if(FlagPid & stdFlagPid[iS]) {
for(Int_t j=0;j<nbin;j++) {
if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
- hDCAxy[iBconf][iS][j]->Fill(DCAxy);
- hDCAxy[iBconf][iS][j]->Fill(-DCAxy);
- hDCAz[iBconf][iS][j]->Fill(DCAz);
- hDCAz[iBconf][iS][j]->Fill(-DCAz);
- if(TMath::Abs(DCAxy)<DCAxyCut) {
- hM2CutDCAxy[iBconf][iS][j]->Fill(M2);
- }
- if(TMath::Abs(DCAxy+0.5)<DCAxyCut) {
- hM2CutGroundDCAxy[iBconf][iS][j]->Fill(M2);
- }
+ hM2CutDCAxy[iBconf][iS][j]->Fill(M2);
break;
}
}//end loop on the p bins (j)
if(FlagPid & stdFlagPid[iS]) {
for(Int_t j=0;j<nbin;j++) {
if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
- hDCAxy[iBconf][iS+nPart][j]->Fill(DCAxy);
- hDCAxy[iBconf][iS+nPart][j]->Fill(-DCAxy);
- hDCAz[iBconf][iS+nPart][j]->Fill(DCAz);
- hDCAz[iBconf][iS+nPart][j]->Fill(-DCAz);
- if(TMath::Abs(DCAxy)<DCAxyCut) {
- hM2CutDCAxy[iBconf][iS+nPart][j]->Fill(M2);
- }
- if(TMath::Abs(DCAxy+0.5)<DCAxyCut) {
- hM2CutGroundDCAxy[iBconf][iS+nPart][j]->Fill(M2);
- }
+ hM2CutDCAxy[iBconf][iS+nPart][j]->Fill(M2);
break;
}
}//end loop on the p bins (j)
return;
}
+//__________________________________________________________________________________________________
+void AliAnalysisNucleiMass::FillDCAdist(Double_t DCAxy, Double_t DCAz, Double_t charge, Int_t FlagPid, Int_t stdFlagPid[9], Double_t *pC){
+
+ Double_t binP[nbin+1];
+ for(Int_t i=0;i<nbin+1;i++) {
+ binP[i]=0.4+i*0.1;
+ }
+
+ if(charge>0) {
+ for(Int_t iS=0;iS<9;iS++) {
+ if(FlagPid & stdFlagPid[iS]) {
+ if(pC[iS]<1.5) {
+ h2DCAap[iBconf][iS]->Fill(DCAxy,DCAz);
+ h2DCAap[iBconf][iS]->Fill(-DCAxy,-DCAz);
+ }
+ for(Int_t j=0;j<nbin;j++) {
+ if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
+ if(TMath::Abs(DCAz)<DCAzCut) {
+ hDCAxy[iBconf][iS][j]->Fill(DCAxy);
+ hDCAxy[iBconf][iS][j]->Fill(-DCAxy);
+ }
+ if(TMath::Abs(DCAxy)<DCAxyCut) {
+ hDCAz[iBconf][iS][j]->Fill(DCAz);
+ hDCAz[iBconf][iS][j]->Fill(-DCAz);
+ }
+ //h2DCA[iBconf][iS][j]->Fill(DCAxy,DCAz);
+ //h2DCA[iBconf][iS][j]->Fill(-DCAxy,-DCAz);
+ break;
+ }
+ }//end loop on the p bins (j)
+ }
+ }//end loop on the particle species (iS)
+ }
+ else {//charge<0
+ for(Int_t iS=0;iS<9;iS++) {
+ if(FlagPid & stdFlagPid[iS]) {
+ if(pC[iS]<1.5) {
+ h2DCAap[iBconf][iS+nPart]->Fill(DCAxy,DCAz);
+ h2DCAap[iBconf][iS+nPart]->Fill(-DCAxy,-DCAz);
+ }
+ for(Int_t j=0;j<nbin;j++) {
+ if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
+ if(TMath::Abs(DCAz)<DCAzCut) {
+ hDCAxy[iBconf][iS+nPart][j]->Fill(DCAxy);
+ hDCAxy[iBconf][iS+nPart][j]->Fill(-DCAxy);
+ }
+ if(TMath::Abs(DCAxy)<DCAxyCut) {
+ hDCAz[iBconf][iS+nPart][j]->Fill(DCAz);
+ hDCAz[iBconf][iS+nPart][j]->Fill(-DCAz);
+ }
+ //h2DCA[iBconf][iS+nPart][j]->Fill(DCAxy,DCAz);
+ //h2DCA[iBconf][iS+nPart][j]->Fill(-DCAxy,-DCAz);
+ break;
+ }
+ }//end loop on the p bins (j)
+ }
+ }//end loop on the particle species (iS)
+ }
+
+ return;
+}
//_____________________________________________________________________________
void AliAnalysisNucleiMass::GetMassFromPvertex(Double_t beta, Double_t p, Double_t &M2) {
return;
}
//____________________________________________________________________________________________________________
-void AliAnalysisNucleiMass::GetPmeanVsBetaGamma(Double_t *IntTimes, Double_t *pVtx, Int_t FlagPid, Int_t FlagPidTof, Double_t charge, Double_t DCAxy) {
+void AliAnalysisNucleiMass::GetPmeanVsBetaGamma(Double_t *IntTimes, Double_t *pVtx, Int_t FlagPid, Int_t FlagPidTof, Double_t charge) {
// m = p_exp/beta/gamma where p_exp = mPDG*beta_exp*gamma_exp; beta_exp = L/t_exp/c = t_e/t_exp ; beta=L/tof/c = t_e/tof
// In this way m_tof = mPDG only if tof=t_exp
pExp[iS]=TMath::Sqrt(p2Exp[iS]);
if((FlagPid & stdFlagPid[iS]) && (FlagPidTof & stdFlagPid[iS])) {
- if(TMath::Abs(DCAxy)>DCAxyCut) continue;
if(charge>0){
fPmeanVsBetaGamma[iBconf][iS]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
prPmeanVsBetaGamma[iBconf][iS]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
}
//____________________________________________________________________________________________________________
-void AliAnalysisNucleiMass::GetMassFromMeanMom(Double_t beta, Double_t *IntTimes, Double_t *pVtx, Double_t eta, Double_t charge, Double_t *Mass2, Int_t FlagPid, Int_t FlagPidTof, Double_t DCAxy) {//Double_t *Mass2, Int_t iCorr
+void AliAnalysisNucleiMass::GetMassFromMeanMom(Double_t beta, Double_t *IntTimes, Double_t *pVtx, Double_t eta, Double_t charge, Double_t *Mass2, Int_t FlagPid, Int_t FlagPidTof) {//Double_t *Mass2, Int_t iCorr
// m = p_exp/beta/gamma where p_exp = mPDG*beta_exp*gamma_exp; beta_exp = L/t_exp/c = t_e/t_exp ; beta=L/tof/c = t_e/tof
// In this way m_tof = mPDG only if tof=t_exp
Mass2[iS]=p2Exp[iS]*(1-beta*beta)/(beta*beta);
//-----------
- if(TMath::Abs(DCAxy)>DCAxyCut) continue;
if(iS>1) {
if((FlagPid & stdFlagPid[iS]) && (FlagPidTof & stdFlagPid[iS])) {