fContTrackMatrix(0),\r
fContMultTrackMatrix(0),\r
fCorrMatrixFileName(""),\r
- fCosmicsHisto(0)\r
+ fCosmicsHisto(0),\r
+ fEventCount(0)\r
{\r
// default constructor\r
for(Int_t i=0; i<AlidNdPtHelper::kCutSteps; i++) { \r
fContTrackMatrix(0),\r
fContMultTrackMatrix(0),\r
fCorrMatrixFileName(corrMatrixFileName),\r
- fCosmicsHisto(0)\r
+ fCosmicsHisto(0),\r
+ fEventCount(0)\r
{\r
// constructor\r
for(Int_t i=0; i<AlidNdPtHelper::kCutSteps; i++) { \r
if(fMCEventPrimTrackMeanPtTrueMult1) delete fMCEventPrimTrackMeanPtTrueMult1; fMCEventPrimTrackMeanPtTrueMult1=0;\r
\r
if(fCosmicsHisto) delete fCosmicsHisto; fCosmicsHisto=0;\r
+ if(fEventCount) delete fEventCount; fEventCount=0;\r
\r
for(Int_t i=0; i<AlidNdPtHelper::kCutSteps; i++) { \r
if(fRecTrackHist1[i]) delete fRecTrackHist1[i]; fRecTrackHist1[i]=0;\r
Double_t binsZv[zvNbins+1] = {-30.,-25.,-20.,-15.,-10.,-5.,0.,5.,10.,15.,20.,25.,30.};\r
*/\r
\r
- const Int_t ptNbins = 55; \r
- Double_t binsPt[ptNbins+1] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.2,2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.5,5.0,5.5,6.0,6.5,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0};\r
+\r
+ const Int_t ptNbins = 68;\r
+ Double_t binsPt[ptNbins+1] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.2,2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.5,5.0,5.5,6.0,6.5,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,40.0,45.0,50.0};\r
+\r
+\r
Double_t binsEta[etaNbins+1] = {-1.5,-1.4,-1.3,-1.2,-1.1,-1.0,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,0.,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5};\r
Double_t binsZv[zvNbins+1] = {-30.,-25.,-20.,-15.,-10.,-5.,0.,5.,10.,15.,20.,25.,30.};\r
\r
Int_t binsMCAllPrimTrackMultHist1[3]={ptNbins,etaNbins,150};\r
Double_t minMCAllPrimTrackMultHist1[3]={0.,-1.,-0.5}; \r
Double_t maxMCAllPrimTrackMultHist1[3]={20.,1.,149.5}; \r
- sprintf(name,"fMCAllPrimTrackMultHist1");\r
- sprintf(title,"mcPt:mcEta:multiplicity");\r
+ snprintf(name,256,"fMCAllPrimTrackMultHist1");\r
+ snprintf(title,256,"mcPt:mcEta:multiplicity");\r
\r
fMCAllPrimTrackMultHist1 = new THnSparseF(name,title,3,binsMCAllPrimTrackMultHist1,minMCAllPrimTrackMultHist1,maxMCAllPrimTrackMultHist1);\r
fMCAllPrimTrackMultHist1->SetBinEdges(0,binsPt);\r
Int_t binsMCNDEventAllPrimTrackMultHist1[3]={ptNbins,etaNbins,150};\r
Double_t minMCNDEventAllPrimTrackMultHist1[3]={0.,-1.,-0.5}; \r
Double_t maxMCNDEventAllPrimTrackMultHist1[3]={20.,1.,149.5}; \r
- sprintf(name,"fMCNDEventAllPrimTrackMultHist1");\r
- sprintf(title,"mcPt:mcEta:multiplicity");\r
+ snprintf(name,256,"fMCNDEventAllPrimTrackMultHist1");\r
+ snprintf(title,256,"mcPt:mcEta:multiplicity");\r
\r
fMCNDEventAllPrimTrackMultHist1 = new THnSparseF(name,title,3,binsMCNDEventAllPrimTrackMultHist1,minMCNDEventAllPrimTrackMultHist1,maxMCNDEventAllPrimTrackMultHist1);\r
fMCNDEventAllPrimTrackMultHist1->SetBinEdges(0,binsPt);\r
Int_t binsMCNSDEventAllPrimTrackMultHist1[3]={ptNbins,etaNbins,150};\r
Double_t minMCNSDEventAllPrimTrackMultHist1[3]={0.,-1.,-0.5}; \r
Double_t maxMCNSDEventAllPrimTrackMultHist1[3]={20.,1.,149.5}; \r
- sprintf(name,"fMCNSDEventAllPrimTrackMultHist1");\r
- sprintf(title,"mcPt:mcEta:multiplicity");\r
+ snprintf(name,256,"fMCNSDEventAllPrimTrackMultHist1");\r
+ snprintf(title,256,"mcPt:mcEta:multiplicity");\r
\r
fMCNSDEventAllPrimTrackMultHist1 = new THnSparseF(name,title,3,binsMCNSDEventAllPrimTrackMultHist1,minMCNSDEventAllPrimTrackMultHist1,maxMCNSDEventAllPrimTrackMultHist1);\r
fMCNSDEventAllPrimTrackMultHist1->SetBinEdges(0,binsPt);\r
Int_t binsMCEventTriggerPrimTrackMultHist1[3]={ptNbins,etaNbins,150};\r
Double_t minMCEventTriggerPrimTrackMultHist1[3]={0.,-1.,-0.5}; \r
Double_t maxMCEventTriggerPrimTrackMultHist1[3]={20.,1.,149.5}; \r
- sprintf(name,"fMCTriggerPrimTrackMultHist1");\r
- sprintf(title,"mcPt:mcEta:multiplicity");\r
+ snprintf(name,256,"fMCTriggerPrimTrackMultHist1");\r
+ snprintf(title,256,"mcPt:mcEta:multiplicity");\r
\r
fMCTriggerPrimTrackMultHist1 = new THnSparseF(name,title,3,binsMCEventTriggerPrimTrackMultHist1,minMCEventTriggerPrimTrackMultHist1,maxMCEventTriggerPrimTrackMultHist1);\r
fMCTriggerPrimTrackMultHist1->SetBinEdges(0,binsPt);\r
Int_t binsMCEventPrimTrackMultHist1[3]={ptNbins,etaNbins,150};\r
Double_t minMCEventPrimTrackMultHist1[3]={0.,-1.,-0.5}; \r
Double_t maxMCEventPrimTrackMultHist1[3]={20.,1.,149.5}; \r
- sprintf(name,"fMCEventPrimTrackMultHist1");\r
- sprintf(title,"mcPt:mcEta:multiplicity");\r
+ snprintf(name,256,"fMCEventPrimTrackMultHist1");\r
+ snprintf(title,256,"mcPt:mcEta:multiplicity");\r
\r
fMCEventPrimTrackMultHist1 = new THnSparseF(name,title,3,binsMCEventPrimTrackMultHist1,minMCEventPrimTrackMultHist1,maxMCEventPrimTrackMultHist1);\r
fMCEventPrimTrackMultHist1->SetBinEdges(0,binsPt);\r
Int_t binsMCAllPrimTrackTrueMultHist1[3]={ptNbins,etaNbins,150};\r
Double_t minMCAllPrimTrackTrueMultHist1[3]={0.,-1.,-0.5}; \r
Double_t maxMCAllPrimTrackTrueMultHist1[3]={20.,1.,149.5}; \r
- sprintf(name,"fMCAllPrimTrackTrueMultHist1");\r
- sprintf(title,"mcPt:mcEta:true_mult");\r
+ snprintf(name,256,"fMCAllPrimTrackTrueMultHist1");\r
+ snprintf(title,256,"mcPt:mcEta:true_mult");\r
\r
fMCAllPrimTrackTrueMultHist1 = new THnSparseF(name,title,3,binsMCAllPrimTrackTrueMultHist1,minMCAllPrimTrackTrueMultHist1,maxMCAllPrimTrackTrueMultHist1);\r
fMCAllPrimTrackTrueMultHist1->SetBinEdges(0,binsPt);\r
Int_t binsMCNDEventAllPrimTrackTrueMultHist1[3]={ptNbins,etaNbins,150};\r
Double_t minMCNDEventAllPrimTrackTrueMultHist1[3]={0.,-1.,-0.5}; \r
Double_t maxMCNDEventAllPrimTrackTrueMultHist1[3]={20.,1.,149.5}; \r
- sprintf(name,"fMCNDEventAllPrimTrackTrueMultHist1");\r
- sprintf(title,"mcPt:mcEta:true_mult");\r
+ snprintf(name,256,"fMCNDEventAllPrimTrackTrueMultHist1");\r
+ snprintf(title,256,"mcPt:mcEta:true_mult");\r
\r
fMCNDEventAllPrimTrackTrueMultHist1 = new THnSparseF(name,title,3,binsMCNDEventAllPrimTrackTrueMultHist1,minMCNDEventAllPrimTrackTrueMultHist1,maxMCNDEventAllPrimTrackTrueMultHist1);\r
fMCNDEventAllPrimTrackTrueMultHist1->SetBinEdges(0,binsPt);\r
Int_t binsMCNSDEventAllPrimTrackTrueMultHist1[3]={ptNbins,etaNbins,150};\r
Double_t minMCNSDEventAllPrimTrackTrueMultHist1[3]={0.,-1.,-0.5}; \r
Double_t maxMCNSDEventAllPrimTrackTrueMultHist1[3]={20.,1.,149.5}; \r
- sprintf(name,"fMCNSDEventAllPrimTrackTrueMultHist1");\r
- sprintf(title,"mcPt:mcEta:true_mult");\r
+ snprintf(name,256,"fMCNSDEventAllPrimTrackTrueMultHist1");\r
+ snprintf(title,256,"mcPt:mcEta:true_mult");\r
\r
fMCNSDEventAllPrimTrackTrueMultHist1 = new THnSparseF(name,title,3,binsMCNSDEventAllPrimTrackTrueMultHist1,minMCNSDEventAllPrimTrackTrueMultHist1,maxMCNSDEventAllPrimTrackTrueMultHist1);\r
fMCNSDEventAllPrimTrackTrueMultHist1->SetBinEdges(0,binsPt);\r
Int_t binsMCEventTriggerPrimTrackTrueMultHist1[3]={ptNbins,etaNbins,150};\r
Double_t minMCEventTriggerPrimTrackTrueMultHist1[3]={0.,-1.,-0.5}; \r
Double_t maxMCEventTriggerPrimTrackTrueMultHist1[3]={20.,1.,149.5}; \r
- sprintf(name,"fMCTriggerPrimTrackTrueMultHist1");\r
- sprintf(title,"mcPt:mcEta:true_mult");\r
+ snprintf(name,256,"fMCTriggerPrimTrackTrueMultHist1");\r
+ snprintf(title,256,"mcPt:mcEta:true_mult");\r
\r
fMCTriggerPrimTrackTrueMultHist1 = new THnSparseF(name,title,3,binsMCEventTriggerPrimTrackTrueMultHist1,minMCEventTriggerPrimTrackTrueMultHist1,maxMCEventTriggerPrimTrackTrueMultHist1);\r
fMCTriggerPrimTrackTrueMultHist1->SetBinEdges(0,binsPt);\r
Int_t binsMCEventPrimTrackTrueMultHist1[3]={ptNbins,etaNbins,150};\r
Double_t minMCEventPrimTrackTrueMultHist1[3]={0.,-1.,-0.5}; \r
Double_t maxMCEventPrimTrackTrueMultHist1[3]={20.,1.,149.5}; \r
- sprintf(name,"fMCEventPrimTrackTrueMultHist1");\r
- sprintf(title,"mcPt:mcEta:true_mult");\r
+ snprintf(name,256,"fMCEventPrimTrackTrueMultHist1");\r
+ snprintf(title,256,"mcPt:mcEta:true_mult");\r
\r
fMCEventPrimTrackTrueMultHist1 = new THnSparseF(name,title,3,binsMCEventPrimTrackTrueMultHist1,minMCEventPrimTrackTrueMultHist1,maxMCEventPrimTrackTrueMultHist1);\r
fMCEventPrimTrackTrueMultHist1->SetBinEdges(0,binsPt);\r
Int_t binsMCAllPrimTrackTrueMultHist2[3]={ptNbins,150,150};\r
Double_t minMCAllPrimTrackTrueMultHist2[3]={0.,-0.5,-0.5}; \r
Double_t maxMCAllPrimTrackTrueMultHist2[3]={20.,149.5,149.5}; \r
- sprintf(name,"fMCAllPrimTrackTrueMultHist2");\r
- sprintf(title,"mcPt:mult:true_mult");\r
+ snprintf(name,256,"fMCAllPrimTrackTrueMultHist2");\r
+ snprintf(title,256,"mcPt:mult:true_mult");\r
\r
fMCAllPrimTrackTrueMultHist2 = new THnSparseF(name,title,3,binsMCAllPrimTrackTrueMultHist2,minMCAllPrimTrackTrueMultHist2,maxMCAllPrimTrackTrueMultHist2);\r
fMCAllPrimTrackTrueMultHist2->SetBinEdges(0,binsPt);\r
Int_t binsMCNDEventAllPrimTrackTrueMultHist2[3]={ptNbins,150,150};\r
Double_t minMCNDEventAllPrimTrackTrueMultHist2[3]={0.,-0.5,-0.5}; \r
Double_t maxMCNDEventAllPrimTrackTrueMultHist2[3]={20.,149.5,149.5}; \r
- sprintf(name,"fMCNDEventAllPrimTrackTrueMultHist2");\r
- sprintf(title,"mcPt:mult:true_mult");\r
+ snprintf(name,256,"fMCNDEventAllPrimTrackTrueMultHist2");\r
+ snprintf(title,256,"mcPt:mult:true_mult");\r
\r
fMCNDEventAllPrimTrackTrueMultHist2 = new THnSparseF(name,title,3,binsMCNDEventAllPrimTrackTrueMultHist2,minMCNDEventAllPrimTrackTrueMultHist2,maxMCNDEventAllPrimTrackTrueMultHist2);\r
fMCNDEventAllPrimTrackTrueMultHist2->SetBinEdges(0,binsPt);\r
Int_t binsMCNSDEventAllPrimTrackTrueMultHist2[3]={ptNbins,150,150};\r
Double_t minMCNSDEventAllPrimTrackTrueMultHist2[3]={0.,-0.5,-0.5}; \r
Double_t maxMCNSDEventAllPrimTrackTrueMultHist2[3]={20.,149.5,149.5}; \r
- sprintf(name,"fMCNSDEventAllPrimTrackTrueMultHist2");\r
- sprintf(title,"mcPt:mult:true_mult");\r
+ snprintf(name,256,"fMCNSDEventAllPrimTrackTrueMultHist2");\r
+ snprintf(title,256,"mcPt:mult:true_mult");\r
\r
fMCNSDEventAllPrimTrackTrueMultHist2 = new THnSparseF(name,title,3,binsMCNSDEventAllPrimTrackTrueMultHist2,minMCNSDEventAllPrimTrackTrueMultHist2,maxMCNSDEventAllPrimTrackTrueMultHist2);\r
fMCNSDEventAllPrimTrackTrueMultHist2->SetBinEdges(0,binsPt);\r
Int_t binsMCEventTriggerPrimTrackTrueMultHist2[3]={ptNbins,150,150};\r
Double_t minMCEventTriggerPrimTrackTrueMultHist2[3]={0.,-0.5,-0.5}; \r
Double_t maxMCEventTriggerPrimTrackTrueMultHist2[3]={20.,149.5,149.5}; \r
- sprintf(name,"fMCTriggerPrimTrackTrueMultHist2");\r
- sprintf(title,"mcPt:mult:true_mult");\r
+ snprintf(name,256,"fMCTriggerPrimTrackTrueMultHist2");\r
+ snprintf(title,256,"mcPt:mult:true_mult");\r
\r
fMCTriggerPrimTrackTrueMultHist2 = new THnSparseF(name,title,3,binsMCEventTriggerPrimTrackTrueMultHist2,minMCEventTriggerPrimTrackTrueMultHist2,maxMCEventTriggerPrimTrackTrueMultHist2);\r
fMCTriggerPrimTrackTrueMultHist2->SetBinEdges(0,binsPt);\r
Int_t binsMCEventPrimTrackTrueMultHist2[3]={ptNbins,150,150};\r
Double_t minMCEventPrimTrackTrueMultHist2[3]={0.,-0.5,-0.5}; \r
Double_t maxMCEventPrimTrackTrueMultHist2[3]={20.,149.5,149.5}; \r
- sprintf(name,"fMCEventPrimTrackTrueMultHist2");\r
- sprintf(title,"mcPt:mult:true_mult");\r
+ snprintf(name,256,"fMCEventPrimTrackTrueMultHist2");\r
+ snprintf(title,256,"mcPt:mult:true_mult");\r
\r
fMCEventPrimTrackTrueMultHist2 = new THnSparseF(name,title,3,binsMCEventPrimTrackTrueMultHist2,minMCEventPrimTrackTrueMultHist2,maxMCEventPrimTrackTrueMultHist2);\r
fMCEventPrimTrackTrueMultHist2->SetBinEdges(0,binsPt);\r
Int_t binsMCAllPrimTrackMeanPtTrueMult1[2]={100,150};\r
Double_t minMCAllPrimTrackMeanPtTrueMult1[2]={0.,-0.5}; \r
Double_t maxMCAllPrimTrackMeanPtTrueMult1[2]={10.,149.5}; \r
- sprintf(name,"fMCAllPrimTrackMeanPtTrueMult1");\r
- sprintf(title,"event <mcPt>:true_mult");\r
+ snprintf(name,256,"fMCAllPrimTrackMeanPtTrueMult1");\r
+ snprintf(title,256,"event <mcPt>:true_mult");\r
\r
fMCAllPrimTrackMeanPtTrueMult1 = new THnSparseF(name,title,2,binsMCAllPrimTrackMeanPtTrueMult1,minMCAllPrimTrackMeanPtTrueMult1,maxMCAllPrimTrackMeanPtTrueMult1);\r
fMCAllPrimTrackMeanPtTrueMult1->GetAxis(0)->SetTitle("<mcPt> (GeV/c)");\r
Int_t binsMCAllPrimTrackMeanPtMult1[2]={100,150};\r
Double_t minMCAllPrimTrackMeanPtMult1[2]={0.,-0.5}; \r
Double_t maxMCAllPrimTrackMeanPtMult1[2]={10.,149.5}; \r
- sprintf(name,"fMCAllPrimTrackMeanPtMult1");\r
- sprintf(title,"event <mcPt>:mult");\r
+ snprintf(name,256,"fMCAllPrimTrackMeanPtMult1");\r
+ snprintf(title,256,"event <mcPt>:mult");\r
\r
fMCAllPrimTrackMeanPtMult1 = new THnSparseF(name,title,2,binsMCAllPrimTrackMeanPtMult1,minMCAllPrimTrackMeanPtMult1,maxMCAllPrimTrackMeanPtMult1);\r
fMCAllPrimTrackMeanPtMult1->GetAxis(0)->SetTitle("<mcPt> (GeV/c)");\r
Int_t binsMCNDEventAllPrimTrackMeanPtTrueMult1[2]={100,150};\r
Double_t minMCNDEventAllPrimTrackMeanPtTrueMult1[2]={0.,-0.5}; \r
Double_t maxMCNDEventAllPrimTrackMeanPtTrueMult1[2]={10.,149.5}; \r
- sprintf(name,"fMCNDEventAllPrimTrackMeanPtTrueMult1");\r
- sprintf(title,"event <mcPt>:true_mult");\r
+ snprintf(name,256,"fMCNDEventAllPrimTrackMeanPtTrueMult1");\r
+ snprintf(title,256,"event <mcPt>:true_mult");\r
\r
fMCNDEventAllPrimTrackMeanPtTrueMult1 = new THnSparseF(name,title,2,binsMCNDEventAllPrimTrackMeanPtTrueMult1,minMCNDEventAllPrimTrackMeanPtTrueMult1,maxMCNDEventAllPrimTrackMeanPtTrueMult1);\r
fMCNDEventAllPrimTrackMeanPtTrueMult1->GetAxis(0)->SetTitle("<mcPt> (GeV/c)");\r
Int_t binsMCNDEventAllPrimTrackMeanPtMult1[2]={100,150};\r
Double_t minMCNDEventAllPrimTrackMeanPtMult1[2]={0.,-0.5}; \r
Double_t maxMCNDEventAllPrimTrackMeanPtMult1[2]={10.,149.5}; \r
- sprintf(name,"fMCNDEventAllPrimTrackMeanPtMult1");\r
- sprintf(title,"event <mcPt>:mult");\r
+ snprintf(name,256,"fMCNDEventAllPrimTrackMeanPtMult1");\r
+ snprintf(title,256,"event <mcPt>:mult");\r
\r
fMCNDEventAllPrimTrackMeanPtMult1 = new THnSparseF(name,title,2,binsMCNDEventAllPrimTrackMeanPtMult1,minMCNDEventAllPrimTrackMeanPtMult1,maxMCNDEventAllPrimTrackMeanPtMult1);\r
fMCNDEventAllPrimTrackMeanPtMult1->GetAxis(0)->SetTitle("<mcPt> (GeV/c)");\r
Int_t binsMCNSDEventAllPrimTrackMeanPtTrueMult1[2]={100,150};\r
Double_t minMCNSDEventAllPrimTrackMeanPtTrueMult1[2]={0.,-0.5}; \r
Double_t maxMCNSDEventAllPrimTrackMeanPtTrueMult1[2]={10.,149.5}; \r
- sprintf(name,"fMCNSDEventAllPrimTrackMeanPtTrueMult1");\r
- sprintf(title,"event <mcPt>:true_mult");\r
+ snprintf(name,256,"fMCNSDEventAllPrimTrackMeanPtTrueMult1");\r
+ snprintf(title,256,"event <mcPt>:true_mult");\r
\r
fMCNSDEventAllPrimTrackMeanPtTrueMult1 = new THnSparseF(name,title,2,binsMCNSDEventAllPrimTrackMeanPtTrueMult1,minMCNSDEventAllPrimTrackMeanPtTrueMult1,maxMCNSDEventAllPrimTrackMeanPtTrueMult1);\r
fMCNSDEventAllPrimTrackMeanPtTrueMult1->GetAxis(0)->SetTitle("<mcPt> (GeV/c)");\r
Int_t binsMCNSDEventAllPrimTrackMeanPtMult1[2]={100,150};\r
Double_t minMCNSDEventAllPrimTrackMeanPtMult1[2]={0.,-0.5}; \r
Double_t maxMCNSDEventAllPrimTrackMeanPtMult1[2]={10.,149.5}; \r
- sprintf(name,"fMCNSDEventAllPrimTrackMeanPtMult1");\r
- sprintf(title,"event <mcPt>:mult");\r
+ snprintf(name,256,"fMCNSDEventAllPrimTrackMeanPtMult1");\r
+ snprintf(title,256,"event <mcPt>:mult");\r
\r
fMCNSDEventAllPrimTrackMeanPtMult1 = new THnSparseF(name,title,2,binsMCNSDEventAllPrimTrackMeanPtMult1,minMCNSDEventAllPrimTrackMeanPtMult1,maxMCNSDEventAllPrimTrackMeanPtMult1);\r
fMCNSDEventAllPrimTrackMeanPtMult1->GetAxis(0)->SetTitle("<mcPt> (GeV/c)");\r
Int_t binsMCTriggerPrimTrackMeanPtTrueMult1[2]={100,150};\r
Double_t minMCTriggerPrimTrackMeanPtTrueMult1[2]={0.,-0.5}; \r
Double_t maxMCTriggerPrimTrackMeanPtTrueMult1[2]={10.,149.5}; \r
- sprintf(name,"fMCTriggerPrimTrackMeanPtTrueMult1");\r
- sprintf(title,"event <mcPt>:true_mult");\r
+ snprintf(name,256,"fMCTriggerPrimTrackMeanPtTrueMult1");\r
+ snprintf(title,256,"event <mcPt>:true_mult");\r
\r
fMCTriggerPrimTrackMeanPtTrueMult1 = new THnSparseF(name,title,2,binsMCTriggerPrimTrackMeanPtTrueMult1,minMCTriggerPrimTrackMeanPtTrueMult1,maxMCTriggerPrimTrackMeanPtTrueMult1);\r
fMCTriggerPrimTrackMeanPtTrueMult1->GetAxis(0)->SetTitle("<mcPt> (GeV/c)");\r
Int_t binsMCTriggerPrimTrackMeanPtMult1[2]={100,150};\r
Double_t minMCTriggerPrimTrackMeanPtMult1[2]={0.,-0.5}; \r
Double_t maxMCTriggerPrimTrackMeanPtMult1[2]={10.,149.5}; \r
- sprintf(name,"fMCTriggerPrimTrackMeanPtMult1");\r
- sprintf(title,"event <mcPt>:mult");\r
+ snprintf(name,256,"fMCTriggerPrimTrackMeanPtMult1");\r
+ snprintf(title,256,"event <mcPt>:mult");\r
\r
fMCTriggerPrimTrackMeanPtMult1 = new THnSparseF(name,title,2,binsMCTriggerPrimTrackMeanPtMult1,minMCTriggerPrimTrackMeanPtMult1,maxMCTriggerPrimTrackMeanPtMult1);\r
fMCTriggerPrimTrackMeanPtMult1->GetAxis(0)->SetTitle("<mcPt> (GeV/c)");\r
Int_t binsMCEventPrimTrackMeanPtTrueMult1[2]={100,150};\r
Double_t minMCEventPrimTrackMeanPtTrueMult1[2]={0.,-0.5}; \r
Double_t maxMCEventPrimTrackMeanPtTrueMult1[2]={10.,149.5}; \r
- sprintf(name,"fMCEventPrimTrackMeanPtTrueMult1");\r
- sprintf(title,"event <mcPt>:true_mult");\r
+ snprintf(name,256,"fMCEventPrimTrackMeanPtTrueMult1");\r
+ snprintf(title,256,"event <mcPt>:true_mult");\r
\r
fMCEventPrimTrackMeanPtTrueMult1 = new THnSparseF(name,title,2,binsMCEventPrimTrackMeanPtTrueMult1,minMCEventPrimTrackMeanPtTrueMult1,maxMCEventPrimTrackMeanPtTrueMult1);\r
fMCEventPrimTrackMeanPtTrueMult1->GetAxis(0)->SetTitle("<mcPt> (GeV/c)");\r
Int_t binsMCEventPrimTrackMeanPtMult1[2]={100,150};\r
Double_t minMCEventPrimTrackMeanPtMult1[2]={0.,-0.5}; \r
Double_t maxMCEventPrimTrackMeanPtMult1[2]={10.,149.5}; \r
- sprintf(name,"fMCEventPrimTrackMeanPtMult1");\r
- sprintf(title,"event <mcPt>:mult");\r
+ snprintf(name,256,"fMCEventPrimTrackMeanPtMult1");\r
+ snprintf(title,256,"event <mcPt>:mult");\r
\r
fMCEventPrimTrackMeanPtMult1 = new THnSparseF(name,title,2,binsMCEventPrimTrackMeanPtMult1,minMCEventPrimTrackMeanPtMult1,maxMCEventPrimTrackMeanPtMult1);\r
fMCEventPrimTrackMeanPtMult1->GetAxis(0)->SetTitle("<mcPt> (GeV/c)");\r
Int_t binsRecTrackHist1[3]={ptNbins,etaNbins,90};\r
Double_t minRecTrackHist1[3]={0.,-1.,0.}; \r
Double_t maxRecTrackHist1[3]={10.,1.,2.*TMath::Pi()};\r
- sprintf(name,"fRecTrackHist1_%d",i);\r
- sprintf(title,"Pt:Eta:Phi");\r
+ snprintf(name,256,"fRecTrackHist1_%d",i);\r
+ snprintf(title,256,"Pt:Eta:Phi");\r
\r
fRecTrackHist1[i] = new THnSparseF(name,title,3,binsRecTrackHist1,minRecTrackHist1,maxRecTrackHist1);\r
fRecTrackHist1[i]->SetBinEdges(0,binsPt);\r
for(Int_t i=0; i<8; i++) \r
{\r
// THnSparse track histograms\r
- sprintf(name,"fCorrRecTrackMultHist1_%d",i);\r
- sprintf(title,"Pt:Eta:mult");\r
+ snprintf(name,256,"fCorrRecTrackMultHist1_%d",i);\r
+ snprintf(title,256,"Pt:Eta:mult");\r
fCorrRecTrackMultHist1[i] = new THnSparseF(name,title,3,binsCorrRecTrackMultHist1,minCorrRecTrackMultHist1,maxCorrRecTrackMultHist1);\r
fCorrRecTrackMultHist1[i]->SetBinEdges(0,binsPt);\r
fCorrRecTrackMultHist1[i]->SetBinEdges(1,binsEta);\r
fCorrRecTrackMultHist1[i]->Sumw2();\r
\r
// THnSparse track histograms\r
- sprintf(name,"fCorrRecTrackTrueMultHist1_%d",i);\r
- sprintf(title,"Pt:Eta:true_mult");\r
+ snprintf(name,256,"fCorrRecTrackTrueMultHist1_%d",i);\r
+ snprintf(title,256,"Pt:Eta:true_mult");\r
fCorrRecTrackTrueMultHist1[i] = new THnSparseF(name,title,3,binsCorrRecTrackTrueMultHist1,minCorrRecTrackTrueMultHist1,maxCorrRecTrackTrueMultHist1);\r
fCorrRecTrackTrueMultHist1[i]->SetBinEdges(0,binsPt);\r
fCorrRecTrackTrueMultHist1[i]->SetBinEdges(1,binsEta);\r
fCorrRecTrackTrueMultHist1[i]->Sumw2();\r
\r
//\r
- sprintf(name,"fCorrRecTrackTrueMultHist2_%d",i);\r
- sprintf(title,"Pt:mult:true_mult");\r
+ snprintf(name,256,"fCorrRecTrackTrueMultHist2_%d",i);\r
+ snprintf(title,256,"Pt:mult:true_mult");\r
fCorrRecTrackTrueMultHist2[i] = new THnSparseF(name,title,3,binsCorrRecTrackTrueMultHist2,minCorrRecTrackTrueMultHist2,maxCorrRecTrackTrueMultHist2);\r
fCorrRecTrackTrueMultHist2[i]->SetBinEdges(0,binsPt);\r
fCorrRecTrackTrueMultHist2[i]->GetAxis(0)->SetTitle("Pt (GeV/c)");\r
fCorrRecTrackTrueMultHist2[i]->Sumw2();\r
\r
// THnSparse track histograms\r
- sprintf(name,"fCorrRecTrackMeanPtMultHist1_%d",i);\r
- sprintf(title,"<Pt>:mult");\r
+ snprintf(name,256,"fCorrRecTrackMeanPtMultHist1_%d",i);\r
+ snprintf(title,256,"<Pt>:mult");\r
fCorrRecTrackMeanPtMultHist1[i] = new THnSparseF(name,title,2,binsCorrRecTrackMeanPtMultHist1,minCorrRecTrackMeanPtMultHist1,maxCorrRecTrackMeanPtMultHist1);\r
fCorrRecTrackMeanPtMultHist1[i]->GetAxis(0)->SetTitle("<Pt> (GeV/c)");\r
fCorrRecTrackMeanPtMultHist1[i]->GetAxis(1)->SetTitle("multiplicity");\r
fCorrRecTrackMeanPtMultHist1[i]->Sumw2();\r
\r
// THnSparse track histograms\r
- sprintf(name,"fCorrRecTrackMeanPtTrueMultHist1_%d",i);\r
- sprintf(title,"<Pt>:true_mult");\r
+ snprintf(name,256,"fCorrRecTrackMeanPtTrueMultHist1_%d",i);\r
+ snprintf(title,256,"<Pt>:true_mult");\r
fCorrRecTrackMeanPtTrueMultHist1[i] = new THnSparseF(name,title,2,binsCorrRecTrackMeanPtTrueMultHist1,minCorrRecTrackMeanPtTrueMultHist1,maxCorrRecTrackMeanPtTrueMultHist1);\r
fCorrRecTrackMeanPtTrueMultHist1[i]->GetAxis(0)->SetTitle("<Pt> (GeV/c)");\r
fCorrRecTrackMeanPtTrueMultHist1[i]->GetAxis(1)->SetTitle("true multiplicity");\r
fCorrRecTrackMeanPtTrueMultHist1[i]->Sumw2();\r
\r
- sprintf(name,"fCorrRecTrackPt1_%d",i);\r
- sprintf(title,"pt small bining");\r
+ snprintf(name,256,"fCorrRecTrackPt1_%d",i);\r
+ snprintf(title,256,"pt small bining");\r
fCorrRecTrackPt1[i] = new THnSparseF(name,title,1,binsCorrRecTrackPt1,minCorrRecTrackPt1,maxCorrRecTrackPt1);\r
fCorrRecTrackPt1[i]->GetAxis(0)->SetTitle("Pt (GeV/c)");\r
fCorrRecTrackPt1[i]->Sumw2();\r
for(Int_t i=0; i<5; i++) \r
{\r
// event corrected histograms\r
- sprintf(name,"fCorrRecEventHist1_%d",i);\r
- sprintf(title,"mcZv:mult");\r
+ snprintf(name,256,"fCorrRecEventHist1_%d",i);\r
+ snprintf(title,256,"mcZv:mult");\r
fCorrRecEventHist1[i] = new THnSparseF("fCorrRecEventHist1","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fCorrRecEventHist1[i]->SetBinEdges(0,binsZv);\r
fCorrRecEventHist1[i]->GetAxis(0)->SetTitle("Zv (cm)");\r
fCorrRecEventHist1[i]->Sumw2();\r
\r
// empty event corrected histograms\r
- sprintf(name,"fCorrRecEventHist2_%d",i);\r
- sprintf(title,"mcZv:mult");\r
+ snprintf(name,256,"fCorrRecEventHist2_%d",i);\r
+ snprintf(title,256,"mcZv:mult");\r
fCorrRecEventHist2[i] = new THnSparseF("fCorrRecEventHist2","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fCorrRecEventHist2[i]->SetBinEdges(0,binsZv);\r
fCorrRecEventHist2[i]->GetAxis(0)->SetTitle("Zv (cm)");\r
Int_t binsCosmicsHisto[3]= {151, 300, ptNbins};\r
Double_t minCosmicsHisto[3]={-1.5, -2.*TMath::Pi(), 0.0}; \r
Double_t maxCosmicsHisto[3]={ 1.5, 2.*TMath::Pi(), 16.0}; \r
- sprintf(name,"fCosmicsHisto");\r
- sprintf(title,"deta:dphi:pt");\r
+ snprintf(name,256,"fCosmicsHisto");\r
+ snprintf(title,256,"deta:dphi:pt");\r
\r
fCosmicsHisto = new THnSparseF(name,title,3,binsCosmicsHisto,minCosmicsHisto,maxCosmicsHisto);\r
fCosmicsHisto->SetBinEdges(2,binsPt);\r
fCosmicsHisto->GetAxis(2)->SetTitle("pt (GV/c)");\r
fCosmicsHisto->Sumw2();\r
\r
+ //\r
+ Int_t binsEventCount[3]={2,2,2};\r
+ Double_t minEventCount[3]={0,0,0}; \r
+ Double_t maxEventCount[3]={2,2,2}; \r
+ fEventCount = new THnSparseF("fEventCount","trig vs trig+vertex",3,binsEventCount,minEventCount,maxEventCount);\r
+ fEventCount->GetAxis(0)->SetTitle("trig");\r
+ fEventCount->GetAxis(1)->SetTitle("trig+vert");\r
+ fEventCount->GetAxis(2)->SetTitle("selected");\r
+ fEventCount->Sumw2();\r
+\r
+\r
// init output folder\r
fCorrectionFolder = CreateFolder("folderdNdPt","Correction dNdPt Folder");\r
\r
fEventMultCorrelationMatrix = (THnSparseF*)folder->FindObject("event_mult_correlation_matrix");\r
if(!fEventMultCorrelationMatrix) {\r
Printf("No %s matrix \n", "event_mult_correlation_matrix");\r
+ return;\r
}\r
\r
//\r
fCorrTriggerMBtoNDEventMatrix = (THnSparseF*)folder->FindObject("zv_mult_trig_MBtoND_corr_matrix");\r
if(!fCorrTriggerMBtoNDEventMatrix) {\r
Printf("No %s matrix \n", "zv_mult_trig_MBtoND_corr_matrix");\r
+ return;\r
}\r
\r
// trigger bias correction (MBtoNSD)\r
fCorrTriggerMBtoNSDEventMatrix = (THnSparseF*)folder->FindObject("zv_mult_trig_MBtoNSD_corr_matrix");\r
if(!fCorrTriggerMBtoNSDEventMatrix) {\r
Printf("No %s matrix \n", "zv_mult_trig_MBtoNSD_corr_matrix");\r
+ return;\r
}\r
\r
// trigger bias correction (MBtoInel)\r
fCorrTriggerMBtoInelEventMatrix = (THnSparseF*)folder->FindObject("zv_mult_trig_MBtoInel_corr_matrix");\r
if(!fCorrTriggerMBtoInelEventMatrix) {\r
Printf("No %s matrix \n", "zv_mult_trig_MBtoInel_corr_matrix"); \r
+ return;\r
}\r
\r
// vertex reconstruction efficiency correction\r
fCorrEventMatrix = (THnSparseF*)folder->FindObject("zv_mult_event_corr_matrix");\r
if(!fCorrEventMatrix) {\r
Printf("No %s matrix \n", "zv_mult_event_corr_matrix");\r
+ return;\r
}\r
\r
//\r
fZvNorm = (TH1D*)folder->FindObject("zv_distribution_norm");\r
if(!fZvNorm) {\r
Printf("No %s matrix \n", "fZvNorm");\r
+ return;\r
}\r
\r
fZvEmptyEventsNorm = (TH1D*)folder->FindObject("zv_empty_events_norm");\r
if(!fZvEmptyEventsNorm) {\r
Printf("No %s matrix \n", "fZvEmptyEventsNorm");\r
+ return;\r
}\r
\r
fLHCBin0Background = (TH1D*)folder->FindObject("hLHCBin0Background");\r
if(!fLHCBin0Background) {\r
Printf("No %s matrix \n", "fLHCBin0Background");\r
+ return;\r
}\r
\r
//\r
fCorrTriggerMBtoNDTrackEventMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_trig_MBtoND_corr_matrix");\r
if(!fCorrTriggerMBtoNDTrackEventMatrix) {\r
Printf("No %s matrix \n", "zv_pt_eta_track_trig_MBtoND_corr_matrix");\r
+ return;\r
}\r
\r
// trigger bias correction (MBtoNSD)\r
fCorrTriggerMBtoNSDTrackEventMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_trig_MBtoNSD_corr_matrix");\r
if(!fCorrTriggerMBtoNSDTrackEventMatrix) {\r
Printf("No %s matrix \n", "zv_pt_eta_track_trig_MBtoNSD_corr_matrix");\r
+ return;\r
}\r
\r
// trigger bias correction (MBtoInel) \r
fCorrTriggerMBtoInelTrackEventMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_trig_MBtoInel_corr_matrix");\r
if(!fCorrTriggerMBtoInelTrackEventMatrix) {\r
Printf("No %s matrix \n", "zv_pt_eta_track_trig_MBtoInel_corr_matrix");\r
+ return;\r
}\r
\r
// vertex reconstruction efficiency correction (zv,pt,eta)\r
fCorrTrackEventMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_event_corr_matrix");\r
if(!fCorrTrackEventMatrix) {\r
Printf("No %s matrix \n", "zv_pt_eta_track_event_corr_matrix");\r
+ return;\r
}\r
\r
// track reconstruction efficiency correction (zv,pt,eta)\r
fCorrTrackMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_corr_matrix");\r
if(!fCorrTrackMatrix) {\r
Printf("No %s matrix \n", "zv_pt_eta_track_corr_matrix");\r
+ return;\r
}\r
\r
// high pt track reconstruction efficiency correction (zv,pt,eta)\r
fCorrHighPtTrackMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_highPt_track_corr_matrix");\r
if(!fCorrHighPtTrackMatrix) {\r
Printf("No %s matrix \n", "zv_pt_eta_highPt_track_corr_matrix");\r
+ return;\r
}\r
\r
// secondary tracks contamination correction (zv,pt,eta)\r
fContTrackMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_cont_matrix");\r
if(!fContTrackMatrix) {\r
Printf("No %s matrix \n", "zv_pt_eta_track_cont_matrix");\r
+ return;\r
}\r
\r
// multiply reconstructed tracks correction\r
fContMultTrackMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_mult_track_cont_matrix");\r
if(!fContMultTrackMatrix) {\r
Printf("No %s matrix \n", "zv_pt_eta_mult_track_cont_matrix");\r
+ return;\r
}\r
}\r
}\r
return;\r
}\r
\r
+\r
// trigger selection\r
Bool_t isEventTriggered = kTRUE;\r
+ AliPhysicsSelection *trigSel = NULL;\r
+ AliTriggerAnalysis *trigAna = NULL; // needed for andV0\r
+\r
if(evtCuts->IsTriggerRequired()) \r
{\r
- AliPhysicsSelection *trigSel = GetPhysicsTriggerSelection();\r
+ //\r
+ trigSel = GetPhysicsTriggerSelection();\r
if(!trigSel) {\r
AliDebug(AliLog::kError, "cannot get trigSel");\r
return;\r
}\r
-\r
- if(IsUseMCInfo()) { \r
+ \r
+ if(IsUseMCInfo()) \r
+ { \r
trigSel->SetAnalyzeMC();\r
- isEventTriggered = trigSel->IsCollisionCandidate(esdEvent);\r
+\r
+ if(GetParticleMode() == AlidNdPtHelper::kVZEROCase1)\r
+ {\r
+ // check V0 systematics (case1)\r
+ // Initialization done in the macro\r
+ trigAna = trigSel->GetTriggerAnalysis();\r
+ if(!trigAna) \r
+ return;\r
+\r
+ //trigAna->SetV0HwPars(15, 61.5, 86.5);\r
+ //trigAna->SetV0AdcThr(15);\r
+\r
+ isEventTriggered = trigSel->IsCollisionCandidate(esdEvent);\r
+ //printf("MB1 & kVZEROCase1 %d \n",isEventTriggered);\r
+ //isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger());\r
+ \r
+ if(GetTrigger() == AliTriggerAnalysis::kV0AND) \r
+ {\r
+ isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger());\r
+ //printf("V0AND %d \n",isEventTriggered);\r
+ }\r
+ }\r
+ else if(GetParticleMode() == AlidNdPtHelper::kVZEROCase2)\r
+ {\r
+ // check V0 systematics (case2 only in MC)\r
+ // Initialization done in the macro\r
+\r
+ trigAna = trigSel->GetTriggerAnalysis();\r
+ if(!trigAna) \r
+ return;\r
+\r
+ //trigAna->SetV0HwPars(0, 0, 125);\r
+ //trigAna->SetV0AdcThr(0);\r
+\r
+ isEventTriggered = trigSel->IsCollisionCandidate(esdEvent);\r
+ //isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger());\r
+ \r
+ if(GetTrigger() == AliTriggerAnalysis::kV0AND) \r
+ {\r
+ isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger());\r
+ //printf("V0AND %d \n",isEventTriggered);\r
+ }\r
+ }\r
+ else {\r
+ isEventTriggered = trigSel->IsCollisionCandidate(esdEvent);\r
+ //printf("MB1 %d \n",isEventTriggered);\r
+ \r
+ if(GetTrigger() == AliTriggerAnalysis::kV0AND) \r
+ {\r
+ trigAna = trigSel->GetTriggerAnalysis();\r
+ if(!trigAna) \r
+ return;\r
+\r
+ isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger());\r
+ //printf("V0AND %d \n",isEventTriggered);\r
+ }\r
+ }\r
}\r
else {\r
- isEventTriggered = trigSel->IsCollisionCandidate(esdEvent);\r
+ //\r
+ // 0-multiplicity bin for LHC background correction\r
+ //\r
+ if( GetAnalysisMode() == AlidNdPtHelper::kTPCITS || \r
+ GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtx || \r
+ GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtxUpdate || \r
+ GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtx || \r
+ GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt ) \r
+ {\r
+ trigSel->SetBin0CallbackViaPointer(&AlidNdPtAnalysis::IsBinZeroTrackSPDvtx);\r
+ } else {\r
+ trigSel->SetBin0CallbackViaPointer(&AlidNdPtAnalysis::IsBinZeroSPDvtx);\r
+ }\r
+\r
+ if(GetParticleMode() == AlidNdPtHelper::kVZEROCase1)\r
+ {\r
+ // check V0 systematics (case1)\r
+ // Initialization done in the macro\r
+ trigAna = trigSel->GetTriggerAnalysis();\r
+ if(!trigAna) \r
+ return;\r
+\r
+ //trigAna->SetV0HwPars(15, 61.5, 86.5);\r
+ //trigAna->SetV0AdcThr(15);\r
+\r
+ isEventTriggered = trigSel->IsCollisionCandidate(esdEvent);\r
+ //isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger());\r
+ \r
+ if(GetTrigger() == AliTriggerAnalysis::kV0AND) \r
+ {\r
+ isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger());\r
+ //printf("V0AND %d \n",isEventTriggered);\r
+ }\r
+ }\r
+ else {\r
+ isEventTriggered = trigSel->IsCollisionCandidate(esdEvent);\r
+ //printf("MB1 %d \n",isEventTriggered);\r
+ \r
+ if(GetTrigger() == AliTriggerAnalysis::kV0AND) \r
+ {\r
+ trigAna = trigSel->GetTriggerAnalysis();\r
+ if(!trigAna) \r
+ return;\r
+\r
+ isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger());\r
+ //printf("V0AND %d \n",isEventTriggered);\r
+ }\r
+ }\r
}\r
}\r
- \r
+\r
// use MC information\r
AliHeader* header = 0;\r
AliGenEventHeader* genHeader = 0;\r
Bool_t bRedoTPCVertex = evtCuts->IsRedoTPCVertex();\r
Bool_t bUseConstraints = evtCuts->IsUseBeamSpotConstraint();\r
vtxESD = AlidNdPtHelper::GetVertex(esdEvent,evtCuts,accCuts,esdTrackCuts,GetAnalysisMode(),kFALSE,bRedoTPCVertex,bUseConstraints); \r
+ if(!vtxESD) return;\r
isRecVertex = AlidNdPtHelper::TestRecVertex(vtxESD, esdEvent->GetPrimaryVertexSPD(), GetAnalysisMode(), kFALSE);\r
}\r
\r
if( IsUseMCInfo() && !evtCuts->IsRecVertexRequired() ) {\r
vtxESD = new AliESDVertex(vtxMC[2],10.,genHeader->NProduced(),"smearMC");\r
+ if(!vtxESD) return;\r
isRecVertex = kTRUE;\r
}\r
\r
multMBTracks = mult->GetNumberOfTracklets();\r
\r
} \r
- else if( GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtx || GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtxUpdate || \r
- GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtx || GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt)\r
+ else if( GetAnalysisMode() == AlidNdPtHelper::kTPCITS || \r
+ GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtx || \r
+ GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtxUpdate || \r
+ GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtx || \r
+ GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt )\r
{\r
- if(vtxESD->GetStatus() && isRecVertex)\r
+ if(vtxESD && vtxESD->GetStatus() && isRecVertex)\r
multMBTracks = vtxESD->GetNContributors();\r
\r
}\r
else {\r
- AliDebug(AliLog::kError, Form("Found analysis type %s", GetAnalysisMode()));\r
+ AliDebug(AliLog::kError, Form("Found analysis type %d", GetAnalysisMode()));\r
return; \r
}\r
\r
+ Bool_t isEventSelected = kTRUE;\r
+ if(evtCuts->IsEventSelectedRequired()) \r
+ { \r
+ // select events with at least \r
+ // one prompt track in acceptance\r
+ // pT>0.5 GeV/c, |eta|<0.8 for the Cross Section studies\r
\r
- /*\r
- //\r
- // set 0-bin\r
- //\r
- if( GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtx || \r
- GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtxUpdate || \r
- GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtx || GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt) \r
- {\r
- if(AlidNdPtAnalysis::IsBinZeroTrackSPDvtx(esdEvent)) multMBTracks = 0;\r
- } else {\r
- if(AlidNdPtAnalysis::IsBinZeroSPDvtx(esdEvent)) multMBTracks = 0;\r
+ isEventSelected = AlidNdPtHelper::SelectEvent(esdEvent,esdTrackCuts);\r
+ //printf("isEventSelected %d \n", isEventSelected);\r
}\r
- */\r
+\r
+ Bool_t isTrigAndVertex = isEventTriggered && isEventOK;\r
+ Double_t vEventCount[3] = { isEventTriggered, isTrigAndVertex, isEventSelected };\r
+ fEventCount->Fill(vEventCount);\r
\r
//\r
// correct event and track histograms\r
Int_t *labelsRec=0;\r
Bool_t isCosmic = kFALSE;\r
\r
- if(isEventOK && isEventTriggered)\r
+\r
+ if(isEventOK && isEventTriggered && isEventSelected)\r
{\r
// get all charged tracks\r
allChargedTracks = AlidNdPtHelper::GetAllChargedTracks(esdEvent,GetAnalysisMode());\r
\r
if(esdTrackCuts->AcceptTrack(track)) \r
{\r
- if(GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt) {\r
- if(AlidNdPtHelper::IsGoodImpPar(track) && accCuts->AcceptTrack(track)) multRecTemp++;\r
- }\r
- else {\r
if(accCuts->AcceptTrack(track)) multRecTemp++;\r
- }\r
} \r
}\r
\r
- // check multiplicity\r
- const AliMultiplicity* mult = esdEvent->GetMultiplicity();\r
- Int_t trackletMult = 0;\r
- if (mult) {\r
- for(Int_t i=0; i<mult->GetNumberOfTracklets(); i++) {\r
- if(TMath::Abs(mult->GetEta(i)) < accCuts->GetMaxEta() )\r
- trackletMult++;\r
- }\r
- }\r
- // use tracklet multiplicity\r
- multRecTemp = trackletMult;\r
-\r
//\r
for(Int_t i=0; i<entries;++i) \r
{\r
\r
// track-level corrections\r
if(!esdTrackCuts->AcceptTrack(track)) continue;\r
- if(GetAnalysisMode()==AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt && !AlidNdPtHelper::IsGoodImpPar(track)) continue;\r
+ //if(GetAnalysisMode()==AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt && !AlidNdPtHelper::IsGoodImpPar(track)) continue;\r
\r
// cosmics analysis\r
isCosmic = kFALSE;\r
Double_t vRecEventHist1[3] = {vtxESD->GetXv(),vtxESD->GetYv(),vtxESD->GetZv()};\r
fRecEventHist1->Fill(vRecEventHist1);\r
\r
- // correlation track multiplicity vs tracklet multiplicity\r
+ // correlation track multiplicity vs MB track multiplicity\r
Double_t vRecEventMultHist1[3] = {multRec, multMBTracks};\r
fRecEventMultHist1->Fill(vRecEventMultHist1);\r
}\r
\r
// empty events corrections\r
// no reconstructed zv\r
- if( isEventTriggered && multMBTracks==0 ) \r
+ if( isEventTriggered && multMBTracks==0 && isEventSelected ) \r
{\r
if(GetAnalysisMode()==AlidNdPtHelper::kMCRec && IsUseMCInfo()) \r
{\r
\r
if(IsUseMCInfo()) \r
{\r
+ if(!mcEvent) return; \r
+\r
+ Bool_t isMCEventSelected = kTRUE;\r
+ if(evtCuts->IsEventSelectedRequired()) \r
+ { \r
+ // select events with at least \r
+ // one MC primary track in acceptance\r
+ // pT>0.5 GeV/c, |eta|<0.8 for the Cross Section studies\r
+ isMCEventSelected = AlidNdPtHelper::SelectMCEvent(mcEvent);\r
+ //printf("isMCEventSelected %d \n", isMCEventSelected);\r
+ }\r
+\r
// select MC events \r
- if(evtCuts->AcceptMCEvent(mcEvent))\r
+ if(evtCuts->AcceptMCEvent(mcEvent) && isMCEventSelected)\r
{\r
//\r
// event histograms\r
continue;\r
\r
// only charged particles\r
+ \r
+ if(!particle->GetPDG()) continue;\r
Double_t charge = particle->GetPDG()->Charge()/3.;\r
if (TMath::Abs(charge) < 0.001)\r
continue;\r
Double_t corrToInelF0 = GetCorrFactZvMult(fCorrTriggerMBtoInelEventMatrix,zv,multMBTracks);\r
Double_t corrToNDF0 = GetCorrFactZvMult(fCorrTriggerMBtoNDEventMatrix,zv,multMBTracks);\r
Double_t corrToNSDF0 = GetCorrFactZvMult(fCorrTriggerMBtoNSDEventMatrix,zv,multMBTracks);\r
- printf("factLHCBack %f, factZ %f, corrToInelF0 %f, corrToNDF0 %f, corrToNSDF0 %f \n",factLHCBack,factZ,corrToInelF0,corrToNDF0,corrToNSDF0);\r
+ //printf("factLHCBack %f, factZ %f, corrToInelF0 %f, corrToNDF0 %f, corrToNSDF0 %f \n",factLHCBack,factZ,corrToInelF0,corrToNDF0,corrToNSDF0);\r
\r
fCorrRecEventHist2[0]->Fill(vEventMatrix);\r
fCorrRecEventHist2[1]->Fill(vEventMatrix,factLHCBack*factZ);\r
TParticle* particle = stack->Particle(label);\r
if(!particle) return;\r
\r
+ if(!particle->GetPDG()) return;\r
Double_t gq = particle->GetPDG()->Charge()/3.0; // Charge units |e|/3\r
if(TMath::Abs(gq)<0.001) return;\r
Float_t gpt = particle->Pt();\r
if(mother) mother_pdg = TMath::Abs(mother->GetPdgCode()); // take abs for visualisation only\r
Int_t mech = particle->GetUniqueID(); // production mechanism\r
\r
+ if(!particle->GetPDG()) return;\r
Double_t gq = particle->GetPDG()->Charge()/3.0; // Charge units |e|/3 \r
Float_t gpt = particle->Pt();\r
Float_t qgpt = particle->Pt() * gq;\r
\r
// collection of generated histograms\r
\r
+ // physics selection\r
+ TList *collPhysSelection = new TList;\r
+\r
Int_t count=0;\r
while((obj = iter->Next()) != 0) {\r
AlidNdPtCorrection* entry = dynamic_cast<AlidNdPtCorrection*>(obj);\r
if (entry == 0) continue; \r
\r
+ collPhysSelection->Add(entry->GetPhysicsTriggerSelection());\r
+\r
+ fEventCount->Add(entry->fEventCount);\r
+\r
fMCEventHist1->Add(entry->fMCEventHist1);\r
fRecEventHist1->Add(entry->fRecEventHist1);\r
fRecEventMultHist1->Add(entry->fRecEventMultHist1);\r
count++;\r
}\r
\r
+ //\r
+ AliPhysicsSelection *trigSelection = GetPhysicsTriggerSelection();\r
+ trigSelection->Merge(collPhysSelection);\r
+ if(collPhysSelection) delete collPhysSelection;\r
+\r
return count;\r
}\r
\r
TH2 *h2D = 0; \r
\r
TObjArray *aFolderObj = new TObjArray;\r
+ if(!aFolderObj) return;\r
\r
//\r
// get cuts\r
\r
printf("minEta %f, maxEta %f \n",minEta, maxEta);\r
\r
+ //\r
+ // LHC backgraund in all and 0-bins\r
+ //\r
+ AliPhysicsSelection *trigSel = GetPhysicsTriggerSelection();\r
+ trigSel->SaveHistograms("physics_selection");\r
+\r
//\r
// cosmics background histo\r
//\r