X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWG0%2FdNdPt%2FAlidNdPtCorrection.cxx;h=fec3e8ec1e8bb6a8ae55e946ae010da540e9a020;hb=577d9801e9904b4ec54ab2dfcaf7f509c6e218c9;hp=56a3efbe1e3dccba59acb8346d04258ff31a8ef4;hpb=791aaf54578f97d1b3f27929adb2c0737a2dc768;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG0/dNdPt/AlidNdPtCorrection.cxx b/PWG0/dNdPt/AlidNdPtCorrection.cxx index 56a3efbe1e3..fec3e8ec1e8 100644 --- a/PWG0/dNdPt/AlidNdPtCorrection.cxx +++ b/PWG0/dNdPt/AlidNdPtCorrection.cxx @@ -109,7 +109,8 @@ ClassImp(AlidNdPtCorrection) fContTrackMatrix(0), fContMultTrackMatrix(0), fCorrMatrixFileName(""), - fCosmicsHisto(0) + fCosmicsHisto(0), + fEventCount(0) { // default constructor for(Int_t i=0; iSetBinEdges(0,binsPt); @@ -356,8 +362,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCNDEventAllPrimTrackMultHist1[3]={ptNbins,etaNbins,150}; Double_t minMCNDEventAllPrimTrackMultHist1[3]={0.,-1.,-0.5}; Double_t maxMCNDEventAllPrimTrackMultHist1[3]={20.,1.,149.5}; - sprintf(name,"fMCNDEventAllPrimTrackMultHist1"); - sprintf(title,"mcPt:mcEta:multiplicity"); + snprintf(name,256,"fMCNDEventAllPrimTrackMultHist1"); + snprintf(title,256,"mcPt:mcEta:multiplicity"); fMCNDEventAllPrimTrackMultHist1 = new THnSparseF(name,title,3,binsMCNDEventAllPrimTrackMultHist1,minMCNDEventAllPrimTrackMultHist1,maxMCNDEventAllPrimTrackMultHist1); fMCNDEventAllPrimTrackMultHist1->SetBinEdges(0,binsPt); @@ -370,8 +376,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCNSDEventAllPrimTrackMultHist1[3]={ptNbins,etaNbins,150}; Double_t minMCNSDEventAllPrimTrackMultHist1[3]={0.,-1.,-0.5}; Double_t maxMCNSDEventAllPrimTrackMultHist1[3]={20.,1.,149.5}; - sprintf(name,"fMCNSDEventAllPrimTrackMultHist1"); - sprintf(title,"mcPt:mcEta:multiplicity"); + snprintf(name,256,"fMCNSDEventAllPrimTrackMultHist1"); + snprintf(title,256,"mcPt:mcEta:multiplicity"); fMCNSDEventAllPrimTrackMultHist1 = new THnSparseF(name,title,3,binsMCNSDEventAllPrimTrackMultHist1,minMCNSDEventAllPrimTrackMultHist1,maxMCNSDEventAllPrimTrackMultHist1); fMCNSDEventAllPrimTrackMultHist1->SetBinEdges(0,binsPt); @@ -384,8 +390,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCEventTriggerPrimTrackMultHist1[3]={ptNbins,etaNbins,150}; Double_t minMCEventTriggerPrimTrackMultHist1[3]={0.,-1.,-0.5}; Double_t maxMCEventTriggerPrimTrackMultHist1[3]={20.,1.,149.5}; - sprintf(name,"fMCTriggerPrimTrackMultHist1"); - sprintf(title,"mcPt:mcEta:multiplicity"); + snprintf(name,256,"fMCTriggerPrimTrackMultHist1"); + snprintf(title,256,"mcPt:mcEta:multiplicity"); fMCTriggerPrimTrackMultHist1 = new THnSparseF(name,title,3,binsMCEventTriggerPrimTrackMultHist1,minMCEventTriggerPrimTrackMultHist1,maxMCEventTriggerPrimTrackMultHist1); fMCTriggerPrimTrackMultHist1->SetBinEdges(0,binsPt); @@ -398,8 +404,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCEventPrimTrackMultHist1[3]={ptNbins,etaNbins,150}; Double_t minMCEventPrimTrackMultHist1[3]={0.,-1.,-0.5}; Double_t maxMCEventPrimTrackMultHist1[3]={20.,1.,149.5}; - sprintf(name,"fMCEventPrimTrackMultHist1"); - sprintf(title,"mcPt:mcEta:multiplicity"); + snprintf(name,256,"fMCEventPrimTrackMultHist1"); + snprintf(title,256,"mcPt:mcEta:multiplicity"); fMCEventPrimTrackMultHist1 = new THnSparseF(name,title,3,binsMCEventPrimTrackMultHist1,minMCEventPrimTrackMultHist1,maxMCEventPrimTrackMultHist1); fMCEventPrimTrackMultHist1->SetBinEdges(0,binsPt); @@ -416,8 +422,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCAllPrimTrackTrueMultHist1[3]={ptNbins,etaNbins,150}; Double_t minMCAllPrimTrackTrueMultHist1[3]={0.,-1.,-0.5}; Double_t maxMCAllPrimTrackTrueMultHist1[3]={20.,1.,149.5}; - sprintf(name,"fMCAllPrimTrackTrueMultHist1"); - sprintf(title,"mcPt:mcEta:true_mult"); + snprintf(name,256,"fMCAllPrimTrackTrueMultHist1"); + snprintf(title,256,"mcPt:mcEta:true_mult"); fMCAllPrimTrackTrueMultHist1 = new THnSparseF(name,title,3,binsMCAllPrimTrackTrueMultHist1,minMCAllPrimTrackTrueMultHist1,maxMCAllPrimTrackTrueMultHist1); fMCAllPrimTrackTrueMultHist1->SetBinEdges(0,binsPt); @@ -430,8 +436,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCNDEventAllPrimTrackTrueMultHist1[3]={ptNbins,etaNbins,150}; Double_t minMCNDEventAllPrimTrackTrueMultHist1[3]={0.,-1.,-0.5}; Double_t maxMCNDEventAllPrimTrackTrueMultHist1[3]={20.,1.,149.5}; - sprintf(name,"fMCNDEventAllPrimTrackTrueMultHist1"); - sprintf(title,"mcPt:mcEta:true_mult"); + snprintf(name,256,"fMCNDEventAllPrimTrackTrueMultHist1"); + snprintf(title,256,"mcPt:mcEta:true_mult"); fMCNDEventAllPrimTrackTrueMultHist1 = new THnSparseF(name,title,3,binsMCNDEventAllPrimTrackTrueMultHist1,minMCNDEventAllPrimTrackTrueMultHist1,maxMCNDEventAllPrimTrackTrueMultHist1); fMCNDEventAllPrimTrackTrueMultHist1->SetBinEdges(0,binsPt); @@ -444,8 +450,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCNSDEventAllPrimTrackTrueMultHist1[3]={ptNbins,etaNbins,150}; Double_t minMCNSDEventAllPrimTrackTrueMultHist1[3]={0.,-1.,-0.5}; Double_t maxMCNSDEventAllPrimTrackTrueMultHist1[3]={20.,1.,149.5}; - sprintf(name,"fMCNSDEventAllPrimTrackTrueMultHist1"); - sprintf(title,"mcPt:mcEta:true_mult"); + snprintf(name,256,"fMCNSDEventAllPrimTrackTrueMultHist1"); + snprintf(title,256,"mcPt:mcEta:true_mult"); fMCNSDEventAllPrimTrackTrueMultHist1 = new THnSparseF(name,title,3,binsMCNSDEventAllPrimTrackTrueMultHist1,minMCNSDEventAllPrimTrackTrueMultHist1,maxMCNSDEventAllPrimTrackTrueMultHist1); fMCNSDEventAllPrimTrackTrueMultHist1->SetBinEdges(0,binsPt); @@ -458,8 +464,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCEventTriggerPrimTrackTrueMultHist1[3]={ptNbins,etaNbins,150}; Double_t minMCEventTriggerPrimTrackTrueMultHist1[3]={0.,-1.,-0.5}; Double_t maxMCEventTriggerPrimTrackTrueMultHist1[3]={20.,1.,149.5}; - sprintf(name,"fMCTriggerPrimTrackTrueMultHist1"); - sprintf(title,"mcPt:mcEta:true_mult"); + snprintf(name,256,"fMCTriggerPrimTrackTrueMultHist1"); + snprintf(title,256,"mcPt:mcEta:true_mult"); fMCTriggerPrimTrackTrueMultHist1 = new THnSparseF(name,title,3,binsMCEventTriggerPrimTrackTrueMultHist1,minMCEventTriggerPrimTrackTrueMultHist1,maxMCEventTriggerPrimTrackTrueMultHist1); fMCTriggerPrimTrackTrueMultHist1->SetBinEdges(0,binsPt); @@ -472,8 +478,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCEventPrimTrackTrueMultHist1[3]={ptNbins,etaNbins,150}; Double_t minMCEventPrimTrackTrueMultHist1[3]={0.,-1.,-0.5}; Double_t maxMCEventPrimTrackTrueMultHist1[3]={20.,1.,149.5}; - sprintf(name,"fMCEventPrimTrackTrueMultHist1"); - sprintf(title,"mcPt:mcEta:true_mult"); + snprintf(name,256,"fMCEventPrimTrackTrueMultHist1"); + snprintf(title,256,"mcPt:mcEta:true_mult"); fMCEventPrimTrackTrueMultHist1 = new THnSparseF(name,title,3,binsMCEventPrimTrackTrueMultHist1,minMCEventPrimTrackTrueMultHist1,maxMCEventPrimTrackTrueMultHist1); fMCEventPrimTrackTrueMultHist1->SetBinEdges(0,binsPt); @@ -490,8 +496,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCAllPrimTrackTrueMultHist2[3]={ptNbins,150,150}; Double_t minMCAllPrimTrackTrueMultHist2[3]={0.,-0.5,-0.5}; Double_t maxMCAllPrimTrackTrueMultHist2[3]={20.,149.5,149.5}; - sprintf(name,"fMCAllPrimTrackTrueMultHist2"); - sprintf(title,"mcPt:mult:true_mult"); + snprintf(name,256,"fMCAllPrimTrackTrueMultHist2"); + snprintf(title,256,"mcPt:mult:true_mult"); fMCAllPrimTrackTrueMultHist2 = new THnSparseF(name,title,3,binsMCAllPrimTrackTrueMultHist2,minMCAllPrimTrackTrueMultHist2,maxMCAllPrimTrackTrueMultHist2); fMCAllPrimTrackTrueMultHist2->SetBinEdges(0,binsPt); @@ -503,8 +509,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCNDEventAllPrimTrackTrueMultHist2[3]={ptNbins,150,150}; Double_t minMCNDEventAllPrimTrackTrueMultHist2[3]={0.,-0.5,-0.5}; Double_t maxMCNDEventAllPrimTrackTrueMultHist2[3]={20.,149.5,149.5}; - sprintf(name,"fMCNDEventAllPrimTrackTrueMultHist2"); - sprintf(title,"mcPt:mult:true_mult"); + snprintf(name,256,"fMCNDEventAllPrimTrackTrueMultHist2"); + snprintf(title,256,"mcPt:mult:true_mult"); fMCNDEventAllPrimTrackTrueMultHist2 = new THnSparseF(name,title,3,binsMCNDEventAllPrimTrackTrueMultHist2,minMCNDEventAllPrimTrackTrueMultHist2,maxMCNDEventAllPrimTrackTrueMultHist2); fMCNDEventAllPrimTrackTrueMultHist2->SetBinEdges(0,binsPt); @@ -516,8 +522,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCNSDEventAllPrimTrackTrueMultHist2[3]={ptNbins,150,150}; Double_t minMCNSDEventAllPrimTrackTrueMultHist2[3]={0.,-0.5,-0.5}; Double_t maxMCNSDEventAllPrimTrackTrueMultHist2[3]={20.,149.5,149.5}; - sprintf(name,"fMCNSDEventAllPrimTrackTrueMultHist2"); - sprintf(title,"mcPt:mult:true_mult"); + snprintf(name,256,"fMCNSDEventAllPrimTrackTrueMultHist2"); + snprintf(title,256,"mcPt:mult:true_mult"); fMCNSDEventAllPrimTrackTrueMultHist2 = new THnSparseF(name,title,3,binsMCNSDEventAllPrimTrackTrueMultHist2,minMCNSDEventAllPrimTrackTrueMultHist2,maxMCNSDEventAllPrimTrackTrueMultHist2); fMCNSDEventAllPrimTrackTrueMultHist2->SetBinEdges(0,binsPt); @@ -529,8 +535,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCEventTriggerPrimTrackTrueMultHist2[3]={ptNbins,150,150}; Double_t minMCEventTriggerPrimTrackTrueMultHist2[3]={0.,-0.5,-0.5}; Double_t maxMCEventTriggerPrimTrackTrueMultHist2[3]={20.,149.5,149.5}; - sprintf(name,"fMCTriggerPrimTrackTrueMultHist2"); - sprintf(title,"mcPt:mult:true_mult"); + snprintf(name,256,"fMCTriggerPrimTrackTrueMultHist2"); + snprintf(title,256,"mcPt:mult:true_mult"); fMCTriggerPrimTrackTrueMultHist2 = new THnSparseF(name,title,3,binsMCEventTriggerPrimTrackTrueMultHist2,minMCEventTriggerPrimTrackTrueMultHist2,maxMCEventTriggerPrimTrackTrueMultHist2); fMCTriggerPrimTrackTrueMultHist2->SetBinEdges(0,binsPt); @@ -542,8 +548,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCEventPrimTrackTrueMultHist2[3]={ptNbins,150,150}; Double_t minMCEventPrimTrackTrueMultHist2[3]={0.,-0.5,-0.5}; Double_t maxMCEventPrimTrackTrueMultHist2[3]={20.,149.5,149.5}; - sprintf(name,"fMCEventPrimTrackTrueMultHist2"); - sprintf(title,"mcPt:mult:true_mult"); + snprintf(name,256,"fMCEventPrimTrackTrueMultHist2"); + snprintf(title,256,"mcPt:mult:true_mult"); fMCEventPrimTrackTrueMultHist2 = new THnSparseF(name,title,3,binsMCEventPrimTrackTrueMultHist2,minMCEventPrimTrackTrueMultHist2,maxMCEventPrimTrackTrueMultHist2); fMCEventPrimTrackTrueMultHist2->SetBinEdges(0,binsPt); @@ -559,8 +565,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCAllPrimTrackMeanPtTrueMult1[2]={100,150}; Double_t minMCAllPrimTrackMeanPtTrueMult1[2]={0.,-0.5}; Double_t maxMCAllPrimTrackMeanPtTrueMult1[2]={10.,149.5}; - sprintf(name,"fMCAllPrimTrackMeanPtTrueMult1"); - sprintf(title,"event :true_mult"); + snprintf(name,256,"fMCAllPrimTrackMeanPtTrueMult1"); + snprintf(title,256,"event :true_mult"); fMCAllPrimTrackMeanPtTrueMult1 = new THnSparseF(name,title,2,binsMCAllPrimTrackMeanPtTrueMult1,minMCAllPrimTrackMeanPtTrueMult1,maxMCAllPrimTrackMeanPtTrueMult1); fMCAllPrimTrackMeanPtTrueMult1->GetAxis(0)->SetTitle(" (GeV/c)"); @@ -570,8 +576,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCAllPrimTrackMeanPtMult1[2]={100,150}; Double_t minMCAllPrimTrackMeanPtMult1[2]={0.,-0.5}; Double_t maxMCAllPrimTrackMeanPtMult1[2]={10.,149.5}; - sprintf(name,"fMCAllPrimTrackMeanPtMult1"); - sprintf(title,"event :mult"); + snprintf(name,256,"fMCAllPrimTrackMeanPtMult1"); + snprintf(title,256,"event :mult"); fMCAllPrimTrackMeanPtMult1 = new THnSparseF(name,title,2,binsMCAllPrimTrackMeanPtMult1,minMCAllPrimTrackMeanPtMult1,maxMCAllPrimTrackMeanPtMult1); fMCAllPrimTrackMeanPtMult1->GetAxis(0)->SetTitle(" (GeV/c)"); @@ -582,8 +588,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCNDEventAllPrimTrackMeanPtTrueMult1[2]={100,150}; Double_t minMCNDEventAllPrimTrackMeanPtTrueMult1[2]={0.,-0.5}; Double_t maxMCNDEventAllPrimTrackMeanPtTrueMult1[2]={10.,149.5}; - sprintf(name,"fMCNDEventAllPrimTrackMeanPtTrueMult1"); - sprintf(title,"event :true_mult"); + snprintf(name,256,"fMCNDEventAllPrimTrackMeanPtTrueMult1"); + snprintf(title,256,"event :true_mult"); fMCNDEventAllPrimTrackMeanPtTrueMult1 = new THnSparseF(name,title,2,binsMCNDEventAllPrimTrackMeanPtTrueMult1,minMCNDEventAllPrimTrackMeanPtTrueMult1,maxMCNDEventAllPrimTrackMeanPtTrueMult1); fMCNDEventAllPrimTrackMeanPtTrueMult1->GetAxis(0)->SetTitle(" (GeV/c)"); @@ -593,8 +599,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCNDEventAllPrimTrackMeanPtMult1[2]={100,150}; Double_t minMCNDEventAllPrimTrackMeanPtMult1[2]={0.,-0.5}; Double_t maxMCNDEventAllPrimTrackMeanPtMult1[2]={10.,149.5}; - sprintf(name,"fMCNDEventAllPrimTrackMeanPtMult1"); - sprintf(title,"event :mult"); + snprintf(name,256,"fMCNDEventAllPrimTrackMeanPtMult1"); + snprintf(title,256,"event :mult"); fMCNDEventAllPrimTrackMeanPtMult1 = new THnSparseF(name,title,2,binsMCNDEventAllPrimTrackMeanPtMult1,minMCNDEventAllPrimTrackMeanPtMult1,maxMCNDEventAllPrimTrackMeanPtMult1); fMCNDEventAllPrimTrackMeanPtMult1->GetAxis(0)->SetTitle(" (GeV/c)"); @@ -605,8 +611,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCNSDEventAllPrimTrackMeanPtTrueMult1[2]={100,150}; Double_t minMCNSDEventAllPrimTrackMeanPtTrueMult1[2]={0.,-0.5}; Double_t maxMCNSDEventAllPrimTrackMeanPtTrueMult1[2]={10.,149.5}; - sprintf(name,"fMCNSDEventAllPrimTrackMeanPtTrueMult1"); - sprintf(title,"event :true_mult"); + snprintf(name,256,"fMCNSDEventAllPrimTrackMeanPtTrueMult1"); + snprintf(title,256,"event :true_mult"); fMCNSDEventAllPrimTrackMeanPtTrueMult1 = new THnSparseF(name,title,2,binsMCNSDEventAllPrimTrackMeanPtTrueMult1,minMCNSDEventAllPrimTrackMeanPtTrueMult1,maxMCNSDEventAllPrimTrackMeanPtTrueMult1); fMCNSDEventAllPrimTrackMeanPtTrueMult1->GetAxis(0)->SetTitle(" (GeV/c)"); @@ -616,8 +622,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCNSDEventAllPrimTrackMeanPtMult1[2]={100,150}; Double_t minMCNSDEventAllPrimTrackMeanPtMult1[2]={0.,-0.5}; Double_t maxMCNSDEventAllPrimTrackMeanPtMult1[2]={10.,149.5}; - sprintf(name,"fMCNSDEventAllPrimTrackMeanPtMult1"); - sprintf(title,"event :mult"); + snprintf(name,256,"fMCNSDEventAllPrimTrackMeanPtMult1"); + snprintf(title,256,"event :mult"); fMCNSDEventAllPrimTrackMeanPtMult1 = new THnSparseF(name,title,2,binsMCNSDEventAllPrimTrackMeanPtMult1,minMCNSDEventAllPrimTrackMeanPtMult1,maxMCNSDEventAllPrimTrackMeanPtMult1); fMCNSDEventAllPrimTrackMeanPtMult1->GetAxis(0)->SetTitle(" (GeV/c)"); @@ -628,8 +634,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCTriggerPrimTrackMeanPtTrueMult1[2]={100,150}; Double_t minMCTriggerPrimTrackMeanPtTrueMult1[2]={0.,-0.5}; Double_t maxMCTriggerPrimTrackMeanPtTrueMult1[2]={10.,149.5}; - sprintf(name,"fMCTriggerPrimTrackMeanPtTrueMult1"); - sprintf(title,"event :true_mult"); + snprintf(name,256,"fMCTriggerPrimTrackMeanPtTrueMult1"); + snprintf(title,256,"event :true_mult"); fMCTriggerPrimTrackMeanPtTrueMult1 = new THnSparseF(name,title,2,binsMCTriggerPrimTrackMeanPtTrueMult1,minMCTriggerPrimTrackMeanPtTrueMult1,maxMCTriggerPrimTrackMeanPtTrueMult1); fMCTriggerPrimTrackMeanPtTrueMult1->GetAxis(0)->SetTitle(" (GeV/c)"); @@ -639,8 +645,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCTriggerPrimTrackMeanPtMult1[2]={100,150}; Double_t minMCTriggerPrimTrackMeanPtMult1[2]={0.,-0.5}; Double_t maxMCTriggerPrimTrackMeanPtMult1[2]={10.,149.5}; - sprintf(name,"fMCTriggerPrimTrackMeanPtMult1"); - sprintf(title,"event :mult"); + snprintf(name,256,"fMCTriggerPrimTrackMeanPtMult1"); + snprintf(title,256,"event :mult"); fMCTriggerPrimTrackMeanPtMult1 = new THnSparseF(name,title,2,binsMCTriggerPrimTrackMeanPtMult1,minMCTriggerPrimTrackMeanPtMult1,maxMCTriggerPrimTrackMeanPtMult1); fMCTriggerPrimTrackMeanPtMult1->GetAxis(0)->SetTitle(" (GeV/c)"); @@ -651,8 +657,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCEventPrimTrackMeanPtTrueMult1[2]={100,150}; Double_t minMCEventPrimTrackMeanPtTrueMult1[2]={0.,-0.5}; Double_t maxMCEventPrimTrackMeanPtTrueMult1[2]={10.,149.5}; - sprintf(name,"fMCEventPrimTrackMeanPtTrueMult1"); - sprintf(title,"event :true_mult"); + snprintf(name,256,"fMCEventPrimTrackMeanPtTrueMult1"); + snprintf(title,256,"event :true_mult"); fMCEventPrimTrackMeanPtTrueMult1 = new THnSparseF(name,title,2,binsMCEventPrimTrackMeanPtTrueMult1,minMCEventPrimTrackMeanPtTrueMult1,maxMCEventPrimTrackMeanPtTrueMult1); fMCEventPrimTrackMeanPtTrueMult1->GetAxis(0)->SetTitle(" (GeV/c)"); @@ -662,8 +668,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsMCEventPrimTrackMeanPtMult1[2]={100,150}; Double_t minMCEventPrimTrackMeanPtMult1[2]={0.,-0.5}; Double_t maxMCEventPrimTrackMeanPtMult1[2]={10.,149.5}; - sprintf(name,"fMCEventPrimTrackMeanPtMult1"); - sprintf(title,"event :mult"); + snprintf(name,256,"fMCEventPrimTrackMeanPtMult1"); + snprintf(title,256,"event :mult"); fMCEventPrimTrackMeanPtMult1 = new THnSparseF(name,title,2,binsMCEventPrimTrackMeanPtMult1,minMCEventPrimTrackMeanPtMult1,maxMCEventPrimTrackMeanPtMult1); fMCEventPrimTrackMeanPtMult1->GetAxis(0)->SetTitle(" (GeV/c)"); @@ -683,8 +689,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsRecTrackHist1[3]={ptNbins,etaNbins,90}; Double_t minRecTrackHist1[3]={0.,-1.,0.}; Double_t maxRecTrackHist1[3]={10.,1.,2.*TMath::Pi()}; - sprintf(name,"fRecTrackHist1_%d",i); - sprintf(title,"Pt:Eta:Phi"); + snprintf(name,256,"fRecTrackHist1_%d",i); + snprintf(title,256,"Pt:Eta:Phi"); fRecTrackHist1[i] = new THnSparseF(name,title,3,binsRecTrackHist1,minRecTrackHist1,maxRecTrackHist1); fRecTrackHist1[i]->SetBinEdges(0,binsPt); @@ -724,8 +730,8 @@ void AlidNdPtCorrection::Init(){ for(Int_t i=0; i<8; i++) { // THnSparse track histograms - sprintf(name,"fCorrRecTrackMultHist1_%d",i); - sprintf(title,"Pt:Eta:mult"); + snprintf(name,256,"fCorrRecTrackMultHist1_%d",i); + snprintf(title,256,"Pt:Eta:mult"); fCorrRecTrackMultHist1[i] = new THnSparseF(name,title,3,binsCorrRecTrackMultHist1,minCorrRecTrackMultHist1,maxCorrRecTrackMultHist1); fCorrRecTrackMultHist1[i]->SetBinEdges(0,binsPt); fCorrRecTrackMultHist1[i]->SetBinEdges(1,binsEta); @@ -735,8 +741,8 @@ void AlidNdPtCorrection::Init(){ fCorrRecTrackMultHist1[i]->Sumw2(); // THnSparse track histograms - sprintf(name,"fCorrRecTrackTrueMultHist1_%d",i); - sprintf(title,"Pt:Eta:true_mult"); + snprintf(name,256,"fCorrRecTrackTrueMultHist1_%d",i); + snprintf(title,256,"Pt:Eta:true_mult"); fCorrRecTrackTrueMultHist1[i] = new THnSparseF(name,title,3,binsCorrRecTrackTrueMultHist1,minCorrRecTrackTrueMultHist1,maxCorrRecTrackTrueMultHist1); fCorrRecTrackTrueMultHist1[i]->SetBinEdges(0,binsPt); fCorrRecTrackTrueMultHist1[i]->SetBinEdges(1,binsEta); @@ -746,8 +752,8 @@ void AlidNdPtCorrection::Init(){ fCorrRecTrackTrueMultHist1[i]->Sumw2(); // - sprintf(name,"fCorrRecTrackTrueMultHist2_%d",i); - sprintf(title,"Pt:mult:true_mult"); + snprintf(name,256,"fCorrRecTrackTrueMultHist2_%d",i); + snprintf(title,256,"Pt:mult:true_mult"); fCorrRecTrackTrueMultHist2[i] = new THnSparseF(name,title,3,binsCorrRecTrackTrueMultHist2,minCorrRecTrackTrueMultHist2,maxCorrRecTrackTrueMultHist2); fCorrRecTrackTrueMultHist2[i]->SetBinEdges(0,binsPt); fCorrRecTrackTrueMultHist2[i]->GetAxis(0)->SetTitle("Pt (GeV/c)"); @@ -756,23 +762,23 @@ void AlidNdPtCorrection::Init(){ fCorrRecTrackTrueMultHist2[i]->Sumw2(); // THnSparse track histograms - sprintf(name,"fCorrRecTrackMeanPtMultHist1_%d",i); - sprintf(title,":mult"); + snprintf(name,256,"fCorrRecTrackMeanPtMultHist1_%d",i); + snprintf(title,256,":mult"); fCorrRecTrackMeanPtMultHist1[i] = new THnSparseF(name,title,2,binsCorrRecTrackMeanPtMultHist1,minCorrRecTrackMeanPtMultHist1,maxCorrRecTrackMeanPtMultHist1); fCorrRecTrackMeanPtMultHist1[i]->GetAxis(0)->SetTitle(" (GeV/c)"); fCorrRecTrackMeanPtMultHist1[i]->GetAxis(1)->SetTitle("multiplicity"); fCorrRecTrackMeanPtMultHist1[i]->Sumw2(); // THnSparse track histograms - sprintf(name,"fCorrRecTrackMeanPtTrueMultHist1_%d",i); - sprintf(title,":true_mult"); + snprintf(name,256,"fCorrRecTrackMeanPtTrueMultHist1_%d",i); + snprintf(title,256,":true_mult"); fCorrRecTrackMeanPtTrueMultHist1[i] = new THnSparseF(name,title,2,binsCorrRecTrackMeanPtTrueMultHist1,minCorrRecTrackMeanPtTrueMultHist1,maxCorrRecTrackMeanPtTrueMultHist1); fCorrRecTrackMeanPtTrueMultHist1[i]->GetAxis(0)->SetTitle(" (GeV/c)"); fCorrRecTrackMeanPtTrueMultHist1[i]->GetAxis(1)->SetTitle("true multiplicity"); fCorrRecTrackMeanPtTrueMultHist1[i]->Sumw2(); - sprintf(name,"fCorrRecTrackPt1_%d",i); - sprintf(title,"pt small bining"); + snprintf(name,256,"fCorrRecTrackPt1_%d",i); + snprintf(title,256,"pt small bining"); fCorrRecTrackPt1[i] = new THnSparseF(name,title,1,binsCorrRecTrackPt1,minCorrRecTrackPt1,maxCorrRecTrackPt1); fCorrRecTrackPt1[i]->GetAxis(0)->SetTitle("Pt (GeV/c)"); fCorrRecTrackPt1[i]->Sumw2(); @@ -816,8 +822,8 @@ void AlidNdPtCorrection::Init(){ for(Int_t i=0; i<5; i++) { // event corrected histograms - sprintf(name,"fCorrRecEventHist1_%d",i); - sprintf(title,"mcZv:mult"); + snprintf(name,256,"fCorrRecEventHist1_%d",i); + snprintf(title,256,"mcZv:mult"); fCorrRecEventHist1[i] = new THnSparseF("fCorrRecEventHist1","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix); fCorrRecEventHist1[i]->SetBinEdges(0,binsZv); fCorrRecEventHist1[i]->GetAxis(0)->SetTitle("Zv (cm)"); @@ -825,8 +831,8 @@ void AlidNdPtCorrection::Init(){ fCorrRecEventHist1[i]->Sumw2(); // empty event corrected histograms - sprintf(name,"fCorrRecEventHist2_%d",i); - sprintf(title,"mcZv:mult"); + snprintf(name,256,"fCorrRecEventHist2_%d",i); + snprintf(title,256,"mcZv:mult"); fCorrRecEventHist2[i] = new THnSparseF("fCorrRecEventHist2","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix); fCorrRecEventHist2[i]->SetBinEdges(0,binsZv); fCorrRecEventHist2[i]->GetAxis(0)->SetTitle("Zv (cm)"); @@ -840,8 +846,8 @@ void AlidNdPtCorrection::Init(){ Int_t binsCosmicsHisto[3]= {151, 300, ptNbins}; Double_t minCosmicsHisto[3]={-1.5, -2.*TMath::Pi(), 0.0}; Double_t maxCosmicsHisto[3]={ 1.5, 2.*TMath::Pi(), 16.0}; - sprintf(name,"fCosmicsHisto"); - sprintf(title,"deta:dphi:pt"); + snprintf(name,256,"fCosmicsHisto"); + snprintf(title,256,"deta:dphi:pt"); fCosmicsHisto = new THnSparseF(name,title,3,binsCosmicsHisto,minCosmicsHisto,maxCosmicsHisto); fCosmicsHisto->SetBinEdges(2,binsPt); @@ -850,6 +856,17 @@ void AlidNdPtCorrection::Init(){ fCosmicsHisto->GetAxis(2)->SetTitle("pt (GV/c)"); fCosmicsHisto->Sumw2(); + // + Int_t binsEventCount[3]={2,2,2}; + Double_t minEventCount[3]={0,0,0}; + Double_t maxEventCount[3]={2,2,2}; + fEventCount = new THnSparseF("fEventCount","trig vs trig+vertex",3,binsEventCount,minEventCount,maxEventCount); + fEventCount->GetAxis(0)->SetTitle("trig"); + fEventCount->GetAxis(1)->SetTitle("trig+vert"); + fEventCount->GetAxis(2)->SetTitle("selected"); + fEventCount->Sumw2(); + + // init output folder fCorrectionFolder = CreateFolder("folderdNdPt","Correction dNdPt Folder"); @@ -868,6 +885,7 @@ void AlidNdPtCorrection::Init(){ fEventMultCorrelationMatrix = (THnSparseF*)folder->FindObject("event_mult_correlation_matrix"); if(!fEventMultCorrelationMatrix) { Printf("No %s matrix \n", "event_mult_correlation_matrix"); + return; } // @@ -878,24 +896,28 @@ void AlidNdPtCorrection::Init(){ fCorrTriggerMBtoNDEventMatrix = (THnSparseF*)folder->FindObject("zv_mult_trig_MBtoND_corr_matrix"); if(!fCorrTriggerMBtoNDEventMatrix) { Printf("No %s matrix \n", "zv_mult_trig_MBtoND_corr_matrix"); + return; } // trigger bias correction (MBtoNSD) fCorrTriggerMBtoNSDEventMatrix = (THnSparseF*)folder->FindObject("zv_mult_trig_MBtoNSD_corr_matrix"); if(!fCorrTriggerMBtoNSDEventMatrix) { Printf("No %s matrix \n", "zv_mult_trig_MBtoNSD_corr_matrix"); + return; } // trigger bias correction (MBtoInel) fCorrTriggerMBtoInelEventMatrix = (THnSparseF*)folder->FindObject("zv_mult_trig_MBtoInel_corr_matrix"); if(!fCorrTriggerMBtoInelEventMatrix) { Printf("No %s matrix \n", "zv_mult_trig_MBtoInel_corr_matrix"); + return; } // vertex reconstruction efficiency correction fCorrEventMatrix = (THnSparseF*)folder->FindObject("zv_mult_event_corr_matrix"); if(!fCorrEventMatrix) { Printf("No %s matrix \n", "zv_mult_event_corr_matrix"); + return; } // @@ -904,16 +926,19 @@ void AlidNdPtCorrection::Init(){ fZvNorm = (TH1D*)folder->FindObject("zv_distribution_norm"); if(!fZvNorm) { Printf("No %s matrix \n", "fZvNorm"); + return; } fZvEmptyEventsNorm = (TH1D*)folder->FindObject("zv_empty_events_norm"); if(!fZvEmptyEventsNorm) { Printf("No %s matrix \n", "fZvEmptyEventsNorm"); + return; } fLHCBin0Background = (TH1D*)folder->FindObject("hLHCBin0Background"); if(!fLHCBin0Background) { Printf("No %s matrix \n", "fLHCBin0Background"); + return; } // @@ -924,48 +949,56 @@ void AlidNdPtCorrection::Init(){ fCorrTriggerMBtoNDTrackEventMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_trig_MBtoND_corr_matrix"); if(!fCorrTriggerMBtoNDTrackEventMatrix) { Printf("No %s matrix \n", "zv_pt_eta_track_trig_MBtoND_corr_matrix"); + return; } // trigger bias correction (MBtoNSD) fCorrTriggerMBtoNSDTrackEventMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_trig_MBtoNSD_corr_matrix"); if(!fCorrTriggerMBtoNSDTrackEventMatrix) { Printf("No %s matrix \n", "zv_pt_eta_track_trig_MBtoNSD_corr_matrix"); + return; } // trigger bias correction (MBtoInel) fCorrTriggerMBtoInelTrackEventMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_trig_MBtoInel_corr_matrix"); if(!fCorrTriggerMBtoInelTrackEventMatrix) { Printf("No %s matrix \n", "zv_pt_eta_track_trig_MBtoInel_corr_matrix"); + return; } // vertex reconstruction efficiency correction (zv,pt,eta) fCorrTrackEventMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_event_corr_matrix"); if(!fCorrTrackEventMatrix) { Printf("No %s matrix \n", "zv_pt_eta_track_event_corr_matrix"); + return; } // track reconstruction efficiency correction (zv,pt,eta) fCorrTrackMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_corr_matrix"); if(!fCorrTrackMatrix) { Printf("No %s matrix \n", "zv_pt_eta_track_corr_matrix"); + return; } // high pt track reconstruction efficiency correction (zv,pt,eta) fCorrHighPtTrackMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_highPt_track_corr_matrix"); if(!fCorrHighPtTrackMatrix) { Printf("No %s matrix \n", "zv_pt_eta_highPt_track_corr_matrix"); + return; } // secondary tracks contamination correction (zv,pt,eta) fContTrackMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_track_cont_matrix"); if(!fContTrackMatrix) { Printf("No %s matrix \n", "zv_pt_eta_track_cont_matrix"); + return; } // multiply reconstructed tracks correction fContMultTrackMatrix = (THnSparseF*)folder->FindObject("zv_pt_eta_mult_track_cont_matrix"); if(!fContMultTrackMatrix) { Printf("No %s matrix \n", "zv_pt_eta_mult_track_cont_matrix"); + return; } } } @@ -993,25 +1026,134 @@ void AlidNdPtCorrection::Process(AliESDEvent *esdEvent, AliMCEvent *mcEvent) return; } + // trigger selection Bool_t isEventTriggered = kTRUE; + AliPhysicsSelection *trigSel = NULL; + AliTriggerAnalysis *trigAna = NULL; // needed for andV0 + if(evtCuts->IsTriggerRequired()) { - AliPhysicsSelection *trigSel = GetPhysicsTriggerSelection(); + // + trigSel = GetPhysicsTriggerSelection(); if(!trigSel) { AliDebug(AliLog::kError, "cannot get trigSel"); return; } - - if(IsUseMCInfo()) { + + if(IsUseMCInfo()) + { trigSel->SetAnalyzeMC(); - isEventTriggered = trigSel->IsCollisionCandidate(esdEvent); + + if(GetParticleMode() == AlidNdPtHelper::kVZEROCase1) + { + // check V0 systematics (case1) + // Initialization done in the macro + trigAna = trigSel->GetTriggerAnalysis(); + if(!trigAna) + return; + + //trigAna->SetV0HwPars(15, 61.5, 86.5); + //trigAna->SetV0AdcThr(15); + + isEventTriggered = trigSel->IsCollisionCandidate(esdEvent); + //printf("MB1 & kVZEROCase1 %d \n",isEventTriggered); + //isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger()); + + if(GetTrigger() == AliTriggerAnalysis::kV0AND) + { + isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger()); + //printf("V0AND %d \n",isEventTriggered); + } + } + else if(GetParticleMode() == AlidNdPtHelper::kVZEROCase2) + { + // check V0 systematics (case2 only in MC) + // Initialization done in the macro + + trigAna = trigSel->GetTriggerAnalysis(); + if(!trigAna) + return; + + //trigAna->SetV0HwPars(0, 0, 125); + //trigAna->SetV0AdcThr(0); + + isEventTriggered = trigSel->IsCollisionCandidate(esdEvent); + //isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger()); + + if(GetTrigger() == AliTriggerAnalysis::kV0AND) + { + isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger()); + //printf("V0AND %d \n",isEventTriggered); + } + } + else { + isEventTriggered = trigSel->IsCollisionCandidate(esdEvent); + //printf("MB1 %d \n",isEventTriggered); + + if(GetTrigger() == AliTriggerAnalysis::kV0AND) + { + trigAna = trigSel->GetTriggerAnalysis(); + if(!trigAna) + return; + + isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger()); + //printf("V0AND %d \n",isEventTriggered); + } + } } else { - isEventTriggered = trigSel->IsCollisionCandidate(esdEvent); + // + // 0-multiplicity bin for LHC background correction + // + if( GetAnalysisMode() == AlidNdPtHelper::kTPCITS || + GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtx || + GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtxUpdate || + GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtx || + GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt ) + { + trigSel->SetBin0CallbackViaPointer(&AlidNdPtAnalysis::IsBinZeroTrackSPDvtx); + } else { + trigSel->SetBin0CallbackViaPointer(&AlidNdPtAnalysis::IsBinZeroSPDvtx); + } + + if(GetParticleMode() == AlidNdPtHelper::kVZEROCase1) + { + // check V0 systematics (case1) + // Initialization done in the macro + trigAna = trigSel->GetTriggerAnalysis(); + if(!trigAna) + return; + + //trigAna->SetV0HwPars(15, 61.5, 86.5); + //trigAna->SetV0AdcThr(15); + + isEventTriggered = trigSel->IsCollisionCandidate(esdEvent); + //isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger()); + + if(GetTrigger() == AliTriggerAnalysis::kV0AND) + { + isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger()); + //printf("V0AND %d \n",isEventTriggered); + } + } + else { + isEventTriggered = trigSel->IsCollisionCandidate(esdEvent); + //printf("MB1 %d \n",isEventTriggered); + + if(GetTrigger() == AliTriggerAnalysis::kV0AND) + { + trigAna = trigSel->GetTriggerAnalysis(); + if(!trigAna) + return; + + isEventTriggered = trigAna->IsOfflineTriggerFired(esdEvent, GetTrigger()); + //printf("V0AND %d \n",isEventTriggered); + } + } } } - + // use MC information AliHeader* header = 0; AliGenEventHeader* genHeader = 0; @@ -1071,11 +1213,13 @@ void AlidNdPtCorrection::Process(AliESDEvent *esdEvent, AliMCEvent *mcEvent) Bool_t bRedoTPCVertex = evtCuts->IsRedoTPCVertex(); Bool_t bUseConstraints = evtCuts->IsUseBeamSpotConstraint(); vtxESD = AlidNdPtHelper::GetVertex(esdEvent,evtCuts,accCuts,esdTrackCuts,GetAnalysisMode(),kFALSE,bRedoTPCVertex,bUseConstraints); + if(!vtxESD) return; isRecVertex = AlidNdPtHelper::TestRecVertex(vtxESD, esdEvent->GetPrimaryVertexSPD(), GetAnalysisMode(), kFALSE); } if( IsUseMCInfo() && !evtCuts->IsRecVertexRequired() ) { vtxESD = new AliESDVertex(vtxMC[2],10.,genHeader->NProduced(),"smearMC"); + if(!vtxESD) return; isRecVertex = kTRUE; } @@ -1099,32 +1243,35 @@ void AlidNdPtCorrection::Process(AliESDEvent *esdEvent, AliMCEvent *mcEvent) multMBTracks = mult->GetNumberOfTracklets(); } - else if( GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtx || GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtxUpdate || - GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtx || GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt) + else if( GetAnalysisMode() == AlidNdPtHelper::kTPCITS || + GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtx || + GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtxUpdate || + GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtx || + GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt ) { - if(vtxESD->GetStatus() && isRecVertex) + if(vtxESD && vtxESD->GetStatus() && isRecVertex) multMBTracks = vtxESD->GetNContributors(); } else { - AliDebug(AliLog::kError, Form("Found analysis type %s", GetAnalysisMode())); + AliDebug(AliLog::kError, Form("Found analysis type %d", GetAnalysisMode())); return; } + Bool_t isEventSelected = kTRUE; + if(evtCuts->IsEventSelectedRequired()) + { + // select events with at least + // one prompt track in acceptance + // pT>0.5 GeV/c, |eta|<0.8 for the Cross Section studies - /* - // - // set 0-bin - // - if( GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtx || - GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtxUpdate || - GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtx || GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt) - { - if(AlidNdPtAnalysis::IsBinZeroTrackSPDvtx(esdEvent)) multMBTracks = 0; - } else { - if(AlidNdPtAnalysis::IsBinZeroSPDvtx(esdEvent)) multMBTracks = 0; + isEventSelected = AlidNdPtHelper::SelectEvent(esdEvent,esdTrackCuts); + //printf("isEventSelected %d \n", isEventSelected); } - */ + + Bool_t isTrigAndVertex = isEventTriggered && isEventOK; + Double_t vEventCount[3] = { isEventTriggered, isTrigAndVertex, isEventSelected }; + fEventCount->Fill(vEventCount); // // correct event and track histograms @@ -1134,7 +1281,8 @@ void AlidNdPtCorrection::Process(AliESDEvent *esdEvent, AliMCEvent *mcEvent) Int_t *labelsRec=0; Bool_t isCosmic = kFALSE; - if(isEventOK && isEventTriggered) + + if(isEventOK && isEventTriggered && isEventSelected) { // get all charged tracks allChargedTracks = AlidNdPtHelper::GetAllChargedTracks(esdEvent,GetAnalysisMode()); @@ -1187,27 +1335,10 @@ void AlidNdPtCorrection::Process(AliESDEvent *esdEvent, AliMCEvent *mcEvent) if(esdTrackCuts->AcceptTrack(track)) { - if(GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt) { - if(AlidNdPtHelper::IsGoodImpPar(track) && accCuts->AcceptTrack(track)) multRecTemp++; - } - else { if(accCuts->AcceptTrack(track)) multRecTemp++; - } } } - // check multiplicity - const AliMultiplicity* mult = esdEvent->GetMultiplicity(); - Int_t trackletMult = 0; - if (mult) { - for(Int_t i=0; iGetNumberOfTracklets(); i++) { - if(TMath::Abs(mult->GetEta(i)) < accCuts->GetMaxEta() ) - trackletMult++; - } - } - // use tracklet multiplicity - multRecTemp = trackletMult; - // for(Int_t i=0; iAcceptTrack(track)) continue; - if(GetAnalysisMode()==AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt && !AlidNdPtHelper::IsGoodImpPar(track)) continue; + //if(GetAnalysisMode()==AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt && !AlidNdPtHelper::IsGoodImpPar(track)) continue; // cosmics analysis isCosmic = kFALSE; @@ -1341,14 +1472,14 @@ void AlidNdPtCorrection::Process(AliESDEvent *esdEvent, AliMCEvent *mcEvent) Double_t vRecEventHist1[3] = {vtxESD->GetXv(),vtxESD->GetYv(),vtxESD->GetZv()}; fRecEventHist1->Fill(vRecEventHist1); - // correlation track multiplicity vs tracklet multiplicity + // correlation track multiplicity vs MB track multiplicity Double_t vRecEventMultHist1[3] = {multRec, multMBTracks}; fRecEventMultHist1->Fill(vRecEventMultHist1); } // empty events corrections // no reconstructed zv - if( isEventTriggered && multMBTracks==0 ) + if( isEventTriggered && multMBTracks==0 && isEventSelected ) { if(GetAnalysisMode()==AlidNdPtHelper::kMCRec && IsUseMCInfo()) { @@ -1363,8 +1494,20 @@ void AlidNdPtCorrection::Process(AliESDEvent *esdEvent, AliMCEvent *mcEvent) if(IsUseMCInfo()) { + if(!mcEvent) return; + + Bool_t isMCEventSelected = kTRUE; + if(evtCuts->IsEventSelectedRequired()) + { + // select events with at least + // one MC primary track in acceptance + // pT>0.5 GeV/c, |eta|<0.8 for the Cross Section studies + isMCEventSelected = AlidNdPtHelper::SelectMCEvent(mcEvent); + //printf("isMCEventSelected %d \n", isMCEventSelected); + } + // select MC events - if(evtCuts->AcceptMCEvent(mcEvent)) + if(evtCuts->AcceptMCEvent(mcEvent) && isMCEventSelected) { // // event histograms @@ -1400,6 +1543,8 @@ void AlidNdPtCorrection::Process(AliESDEvent *esdEvent, AliMCEvent *mcEvent) continue; // only charged particles + + if(!particle->GetPDG()) continue; Double_t charge = particle->GetPDG()->Charge()/3.; if (TMath::Abs(charge) < 0.001) continue; @@ -1536,7 +1681,7 @@ void AlidNdPtCorrection::FillHistograms(AlidNdPtHelper::EventObject eventObj, Do Double_t corrToInelF0 = GetCorrFactZvMult(fCorrTriggerMBtoInelEventMatrix,zv,multMBTracks); Double_t corrToNDF0 = GetCorrFactZvMult(fCorrTriggerMBtoNDEventMatrix,zv,multMBTracks); Double_t corrToNSDF0 = GetCorrFactZvMult(fCorrTriggerMBtoNSDEventMatrix,zv,multMBTracks); - printf("factLHCBack %f, factZ %f, corrToInelF0 %f, corrToNDF0 %f, corrToNSDF0 %f \n",factLHCBack,factZ,corrToInelF0,corrToNDF0,corrToNSDF0); + //printf("factLHCBack %f, factZ %f, corrToInelF0 %f, corrToNDF0 %f, corrToNSDF0 %f \n",factLHCBack,factZ,corrToInelF0,corrToNDF0,corrToNSDF0); fCorrRecEventHist2[0]->Fill(vEventMatrix); fCorrRecEventHist2[1]->Fill(vEventMatrix,factLHCBack*factZ); @@ -1566,6 +1711,7 @@ void AlidNdPtCorrection::FillHistograms(AliESDtrack * const esdTrack, AliStack * TParticle* particle = stack->Particle(label); if(!particle) return; + if(!particle->GetPDG()) return; Double_t gq = particle->GetPDG()->Charge()/3.0; // Charge units |e|/3 if(TMath::Abs(gq)<0.001) return; Float_t gpt = particle->Pt(); @@ -1652,6 +1798,7 @@ void AlidNdPtCorrection::FillHistograms(AliStack * const stack, Int_t /*label*/, if(mother) mother_pdg = TMath::Abs(mother->GetPdgCode()); // take abs for visualisation only Int_t mech = particle->GetUniqueID(); // production mechanism + if(!particle->GetPDG()) return; Double_t gq = particle->GetPDG()->Charge()/3.0; // Charge units |e|/3 Float_t gpt = particle->Pt(); Float_t qgpt = particle->Pt() * gq; @@ -1776,11 +1923,18 @@ Long64_t AlidNdPtCorrection::Merge(TCollection* const list) // collection of generated histograms + // physics selection + TList *collPhysSelection = new TList; + Int_t count=0; while((obj = iter->Next()) != 0) { AlidNdPtCorrection* entry = dynamic_cast(obj); if (entry == 0) continue; + collPhysSelection->Add(entry->GetPhysicsTriggerSelection()); + + fEventCount->Add(entry->fEventCount); + fMCEventHist1->Add(entry->fMCEventHist1); fRecEventHist1->Add(entry->fRecEventHist1); fRecEventMultHist1->Add(entry->fRecEventMultHist1); @@ -1846,6 +2000,11 @@ Long64_t AlidNdPtCorrection::Merge(TCollection* const list) count++; } + // + AliPhysicsSelection *trigSelection = GetPhysicsTriggerSelection(); + trigSelection->Merge(collPhysSelection); + if(collPhysSelection) delete collPhysSelection; + return count; } @@ -1884,6 +2043,7 @@ void AlidNdPtCorrection::Analyse() TH2 *h2D = 0; TObjArray *aFolderObj = new TObjArray; + if(!aFolderObj) return; // // get cuts @@ -1907,6 +2067,12 @@ void AlidNdPtCorrection::Analyse() printf("minEta %f, maxEta %f \n",minEta, maxEta); + // + // LHC backgraund in all and 0-bins + // + AliPhysicsSelection *trigSel = GetPhysicsTriggerSelection(); + trigSel->SaveHistograms("physics_selection"); + // // cosmics background histo //