* about the suitability of this software for any purpose. It is *\r
* provided "as is" without express or implied warranty. *\r
**************************************************************************/\r
- // last change: 2011-04-04 by M.Knichel\r
+ // last change: 2013-06-13 by M.Knichel\r
\r
#include "AliESDtrackCuts.h" \r
#include "AlidNdPtEventCuts.h"\r
, fdNdPtEventCuts(0)\r
, fdNdPtAcceptanceCuts(0)\r
, fdNdPtRecAcceptanceCuts(0)\r
+, fMultAcceptanceCuts(0)\r
, fEsdTrackCuts(0)\r
+, fMultTrackCuts(0)\r
, fUseMCInfo(kFALSE)\r
, fAnalysisMode(AlidNdPtHelper::kTPC) \r
, fTrigger(AliTriggerAnalysis::kMB1) \r
, fdNdPtEventCuts(0)\r
, fdNdPtAcceptanceCuts(0)\r
, fdNdPtRecAcceptanceCuts(0)\r
+, fMultAcceptanceCuts(0)\r
, fEsdTrackCuts(0)\r
+, fMultTrackCuts(0)\r
, fUseMCInfo(kFALSE)\r
, fAnalysisMode(AlidNdPtHelper::kTPC) \r
, fTrigger(AliTriggerAnalysis::kMB1) \r
, fdNdPtEventCuts(0)\r
, fdNdPtAcceptanceCuts(0)\r
, fdNdPtRecAcceptanceCuts(0)\r
+, fMultAcceptanceCuts(0)\r
, fEsdTrackCuts(0)\r
+, fMultTrackCuts(0)\r
, fUseMCInfo(kFALSE)\r
, fAnalysisMode(AlidNdPtHelper::kTPC) \r
, fTrigger(AliTriggerAnalysis::kMB1) \r
// destructor\r
if(fdNdPtEventCuts) delete fdNdPtEventCuts; fdNdPtEventCuts=NULL; \r
if(fdNdPtAcceptanceCuts) delete fdNdPtAcceptanceCuts; fdNdPtAcceptanceCuts=NULL;\r
+ if(fMultAcceptanceCuts) delete fMultAcceptanceCuts; fMultAcceptanceCuts=NULL;\r
if(fdNdPtRecAcceptanceCuts) delete fdNdPtRecAcceptanceCuts; fdNdPtRecAcceptanceCuts=NULL; \r
if(fEsdTrackCuts) delete fEsdTrackCuts; fEsdTrackCuts=NULL;\r
+ if(fMultTrackCuts) delete fMultTrackCuts; fMultTrackCuts=NULL;\r
if(fPhysicsSelection) delete fPhysicsSelection; fPhysicsSelection=NULL;\r
if(fdNdPtBackgroundCuts) delete fdNdPtBackgroundCuts; fdNdPtBackgroundCuts=NULL;\r
}\r
// Abstract class for dNdPt analysis. All dNdPt components should derive from it.
//
// Author: J.Otwinowski 03/11/2008
-// last change: 2011-04-04 by M.Knichel
+// last change: 2011-06-13 by M.Knichel
//------------------------------------------------------------------------------
class AliESDEvent;
//
void SetEventCuts(AlidNdPtEventCuts* const cuts) { fdNdPtEventCuts = cuts; }
- void SetAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts) { fdNdPtAcceptanceCuts = cuts; }
+ void SetAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts) { fdNdPtAcceptanceCuts = cuts; }
void SetRecAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts) { fdNdPtRecAcceptanceCuts = cuts; }
+ void SetMultAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts){ fMultAcceptanceCuts = cuts; }
void SetTrackCuts(AliESDtrackCuts* const cuts) { fEsdTrackCuts = cuts; }
+ void SetMultTrackCuts(AliESDtrackCuts* const cuts) { fMultTrackCuts = cuts; }
void SetUseMCInfo(const Bool_t info) { fUseMCInfo = info; }
void SetAnalysisMode(const AlidNdPtHelper::AnalysisMode mode) { fAnalysisMode = mode; }
void SetTrigger(const AliTriggerAnalysis::Trigger trigger) { fTrigger = trigger; }
AlidNdPtEventCuts* GetEventCuts() const { return fdNdPtEventCuts; }
AlidNdPtAcceptanceCuts* GetAcceptanceCuts() const { return fdNdPtAcceptanceCuts; }
- AlidNdPtAcceptanceCuts* GetRecAcceptanceCuts() const { return fdNdPtRecAcceptanceCuts; }
+ AlidNdPtAcceptanceCuts* GetMultAcceptanceCuts() const { return (fMultAcceptanceCuts) ? fMultAcceptanceCuts : fdNdPtAcceptanceCuts; }
+ AlidNdPtAcceptanceCuts* GetRecAcceptanceCuts() const { return fdNdPtRecAcceptanceCuts; }
AliESDtrackCuts* GetTrackCuts() const { return fEsdTrackCuts; }
+ AliESDtrackCuts* GetMultTrackCuts() const { return (fMultTrackCuts) ? fMultTrackCuts: fEsdTrackCuts; }
Bool_t IsUseMCInfo() const { return fUseMCInfo; }
AlidNdPtHelper::AnalysisMode GetAnalysisMode() const { return fAnalysisMode; }
AliTriggerAnalysis::Trigger GetTrigger() const { return fTrigger; }
AlidNdPtEventCuts *fdNdPtEventCuts; // event cuts
AlidNdPtAcceptanceCuts *fdNdPtAcceptanceCuts; // acceptance cuts
AlidNdPtAcceptanceCuts *fdNdPtRecAcceptanceCuts; // additional recontruction acceptance cuts (not used for MC truth)
+ AlidNdPtAcceptanceCuts *fMultAcceptanceCuts; // acceptance cuts for multiplicity estimator
AliESDtrackCuts *fEsdTrackCuts; // esd track cuts
+ AliESDtrackCuts *fMultTrackCuts; // esd track cuts for multiplicity estimator
Bool_t fUseMCInfo; // use MC information
AlidNdPtHelper::AnalysisMode fAnalysisMode; // analysis mode TPC only, TPC + ITS
UInt_t fTriggerMask; // trigger mask
- ClassDef(AlidNdPt,5);
+ ClassDef(AlidNdPt,6);
};
#endif
// - control histograms\r
//\r
// Author: J.Otwinowski 04/11/2008 \r
-// last change: 2011-04-04 by M.Knichel\r
+// last change: 2013-06-13 by M.Knichel\r
+//\r
+// meaning of different multiplicities:\r
+// multRec : number of reconstructed tracks, after AcceptanceCuts and TrackCuts\r
+// multRecMult : number of reconstructed tracks, after MultAcceptanceCuts and MultTrackCuts\r
+// multMB : number of contributers to vertex\r
+// multTrueMC : MC true mult, after MultAcceptanceCuts\r
+// mutlAll : number of ESD tracks\r
+// mutlAcc : number of ESD tracks after AcceptanceCuts\r
//------------------------------------------------------------------------------\r
\r
#include "TH1.h"\r
fRecEventHist(0),\r
fRecTrackHist(0),\r
fEventCount(0),\r
+ fMCPrimTrackHist(0),\r
\r
// Candle event histogram\r
fRecCandleEventMatrix(0),\r
fRecEventHist(0),\r
fRecTrackHist(0),\r
fEventCount(0),\r
+ fMCPrimTrackHist(0),\r
\r
// Candle event histogram\r
fRecCandleEventMatrix(0),\r
if(fRecEventHist) delete fRecEventHist; fRecEventHist=0; \r
if(fRecTrackHist) delete fRecTrackHist; fRecTrackHist=0; \r
if(fEventCount) delete fEventCount; fEventCount=0;\r
+ if(fMCPrimTrackHist) delete fMCPrimTrackHist; fMCPrimTrackHist=0;\r
\r
//\r
if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;\r
void AlidNdPtAnalysis::Init()\r
{\r
//define default binning\r
- Double_t binsMultDefault[28] = {-0.5, 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 6.5 , 7.5 , 8.5,\r
- 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5,\r
- 19.5,20.5, 21.5, 22.5, 23.5, 24.5, 29.5, 149.5};\r
+ Double_t binsMultDefault[15] = {-0.5, 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 6.5 , 7.5 , 8.5, 9.5, 10.5, 20.5, 50.5, 150.5};\r
Double_t binsPtDefault[69] = {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
Double_t binsPtCorrDefault[37] = {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,3.0,4.0,50.0}; \r
Double_t binsEtaDefault[31] = {-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 binsZvDefault[13] = {-30.,-25.,-20.,-15.,-10.,-5.,0.,5.,10.,15.,20.,25.,30.};\r
\r
// if no binning is set, use the default\r
- if (!fBinsMult) { SetBinsMult(27,binsMultDefault); }\r
+ if (!fBinsMult) { SetBinsMult(14,binsMultDefault); }\r
if (!fBinsPt) { SetBinsPt(68,binsPtDefault); }\r
if (!fBinsPtCorr) { SetBinsPtCorr(36,binsPtCorrDefault); }\r
if (!fBinsEta) { SetBinsEta(30,binsEtaDefault); }\r
if (!fBinsZv) { SetBinsZv(12,binsZvDefault); } \r
\r
//Int_t binsTrackMatrix[3]={zvNbins,ptNbins,etaNbins};\r
- Int_t binsTrackEventCorrMatrix[3]={fZvNbins,fPtCorrNbins,fEtaNbins};\r
+ Int_t binsTrackEventCorrMatrix[4]={fZvNbins,fPtCorrNbins,fEtaNbins,fMultNbins};\r
\r
//\r
// Generic histograms to be corrected\r
// Double_t minTrackHist[4]={-25.,0.,-1.5,-0.5}; \r
// Double_t maxTrackHist[4]={25.,50.,1.5,149.5}; \r
\r
- fRecTrackHist = new THnSparseF("fRecTrackHist","Zv:pT:eta:multRec",4,binsTrackHist); //,minTrackHist,maxTrackHist);\r
+ fRecTrackHist = new THnSparseF("fRecTrackHist","Zv:pT:eta:multRecMult",4,binsTrackHist); //,minTrackHist,maxTrackHist);\r
fRecTrackHist->SetBinEdges(0,fBinsZv);\r
fRecTrackHist->SetBinEdges(1,fBinsPt);\r
fRecTrackHist->SetBinEdges(2,fBinsEta);\r
fRecTrackHist->GetAxis(0)->SetTitle("Zv (cm)");\r
fRecTrackHist->GetAxis(1)->SetTitle("p_{T} (GeV/c)");\r
fRecTrackHist->GetAxis(2)->SetTitle("#eta");\r
- fRecTrackHist->GetAxis(3)->SetTitle("multiplicity MB");\r
+ fRecTrackHist->GetAxis(3)->SetTitle("multiplicity (multCuts)");\r
fRecTrackHist->Sumw2();\r
\r
+ Int_t binsMCPrimTrackHist[4]={fZvNbins,fPtNbins,fEtaNbins,fMultNbins};\r
+ // Double_t minTrackHist[4]={-25.,0.,-1.5,-0.5}; \r
+ // Double_t maxTrackHist[4]={25.,50.,1.5,149.5}; \r
+\r
+ fMCPrimTrackHist = new THnSparseF("fMCPrimTrackHist","Zv:mcpT:mceta:multTrueMC",4,binsMCPrimTrackHist); \r
+ fMCPrimTrackHist->SetBinEdges(0,fBinsZv);\r
+ fMCPrimTrackHist->SetBinEdges(1,fBinsPt);\r
+ fMCPrimTrackHist->SetBinEdges(2,fBinsEta);\r
+ fMCPrimTrackHist->SetBinEdges(3,fBinsMult);\r
+ fMCPrimTrackHist->GetAxis(0)->SetTitle("Zv (cm)");\r
+ fMCPrimTrackHist->GetAxis(1)->SetTitle("MC p_{T} (GeV/c)");\r
+ fMCPrimTrackHist->GetAxis(2)->SetTitle("#eta (MC)");\r
+ fMCPrimTrackHist->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
+ fMCPrimTrackHist->Sumw2(); \r
+\r
//\r
// rec. vs MC correlation matrices\r
//\r
Int_t binsMultTrueEventMatrix[3]={fMultNbins,fMultNbins,fMultNbins};\r
// Double_t minMultTrueEventMatrix[3]={-0.5,-0.5,-0.5}; \r
// Double_t maxMultTrueEventMatrix[3]={149.5,149.5,149.5}; \r
- fEventMultCorrelationMatrix = new THnSparseF("fEventMultCorrelationMatrix","mult:true_mult:multMB",3,binsMultTrueEventMatrix); //,minMultTrueEventMatrix,maxMultTrueEventMatrix);\r
+ fEventMultCorrelationMatrix = new THnSparseF("fEventMultCorrelationMatrix","multRecMult:multTrueMC:multMB",3,binsMultTrueEventMatrix); //,minMultTrueEventMatrix,maxMultTrueEventMatrix);\r
fEventMultCorrelationMatrix->SetBinEdges(0,fBinsMult);\r
fEventMultCorrelationMatrix->SetBinEdges(1,fBinsMult);\r
fEventMultCorrelationMatrix->SetBinEdges(2,fBinsMult);\r
- fEventMultCorrelationMatrix->GetAxis(0)->SetTitle("track multiplicity");\r
- fEventMultCorrelationMatrix->GetAxis(1)->SetTitle("true multiplicity");\r
+ fEventMultCorrelationMatrix->GetAxis(0)->SetTitle("multiplicity (multCuts)");\r
+ fEventMultCorrelationMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fEventMultCorrelationMatrix->GetAxis(2)->SetTitle("MB multiplicity");\r
fEventMultCorrelationMatrix->Sumw2();\r
\r
// Double_t minEventMatrix[2]={-25.,-0.5}; \r
// Double_t maxEventMatrix[2]={25.,149.5}; \r
\r
- fGenEventMatrix = new THnSparseF("fGenEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fGenEventMatrix = new THnSparseF("fGenEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fGenEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenEventMatrix->SetBinEdges(1,fBinsMult);\r
fGenEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fGenEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fGenEventMatrix->Sumw2();\r
\r
- fGenSDEventMatrix = new THnSparseF("fGenSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fGenSDEventMatrix = new THnSparseF("fGenSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fGenSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fGenSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fGenSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fGenSDEventMatrix->Sumw2();\r
\r
- fGenDDEventMatrix = new THnSparseF("fGenDDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fGenDDEventMatrix = new THnSparseF("fGenDDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fGenDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenDDEventMatrix->SetBinEdges(1,fBinsMult);\r
fGenDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fGenDDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fGenDDEventMatrix->Sumw2();\r
\r
- fGenNDEventMatrix = new THnSparseF("fGenNDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fGenNDEventMatrix = new THnSparseF("fGenNDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fGenNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenNDEventMatrix->SetBinEdges(1,fBinsMult);\r
fGenNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fGenNDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fGenNDEventMatrix->Sumw2();\r
\r
- fGenNSDEventMatrix = new THnSparseF("fGenNSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fGenNSDEventMatrix = new THnSparseF("fGenNSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fGenNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenNSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fGenNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fGenNSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fGenNSDEventMatrix->Sumw2();\r
\r
//\r
- fTriggerEventMatrix = new THnSparseF("fTriggerEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fTriggerEventMatrix = new THnSparseF("fTriggerEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fTriggerEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerEventMatrix->SetBinEdges(1,fBinsMult);\r
fTriggerEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fTriggerEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fTriggerEventMatrix->Sumw2();\r
\r
- fTriggerSDEventMatrix = new THnSparseF("fTriggerSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fTriggerSDEventMatrix = new THnSparseF("fTriggerSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fTriggerSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fTriggerSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fTriggerSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fTriggerSDEventMatrix->Sumw2();\r
\r
- fTriggerDDEventMatrix = new THnSparseF("fTriggerDDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fTriggerDDEventMatrix = new THnSparseF("fTriggerDDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fTriggerDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerDDEventMatrix->SetBinEdges(1,fBinsMult);\r
fTriggerDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fTriggerDDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fTriggerDDEventMatrix->Sumw2();\r
\r
- fTriggerNDEventMatrix = new THnSparseF("fTriggerNDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fTriggerNDEventMatrix = new THnSparseF("fTriggerNDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fTriggerNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerNDEventMatrix->SetBinEdges(1,fBinsMult);\r
fTriggerNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fTriggerNDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fTriggerNDEventMatrix->Sumw2();\r
\r
- fTriggerNSDEventMatrix = new THnSparseF("fTriggerNSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fTriggerNSDEventMatrix = new THnSparseF("fTriggerNSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fTriggerNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerNSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fTriggerNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fTriggerNSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fTriggerNSDEventMatrix->Sumw2();\r
\r
//\r
- fRecEventMatrix = new THnSparseF("fRecEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecEventMatrix = new THnSparseF("fRecEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fRecEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecEventMatrix->SetBinEdges(1,fBinsMult);\r
fRecEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fRecEventMatrix->Sumw2();\r
\r
- fRecSDEventMatrix = new THnSparseF("fRecSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecSDEventMatrix = new THnSparseF("fRecSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fRecSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fRecSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fRecSDEventMatrix->Sumw2();\r
\r
- fRecDDEventMatrix = new THnSparseF("fRecDDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecDDEventMatrix = new THnSparseF("fRecDDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fRecDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecDDEventMatrix->SetBinEdges(1,fBinsMult);\r
fRecDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecDDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fRecDDEventMatrix->Sumw2();\r
\r
- fRecNDEventMatrix = new THnSparseF("fRecNDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecNDEventMatrix = new THnSparseF("fRecNDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fRecNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecNDEventMatrix->SetBinEdges(1,fBinsMult);\r
fRecNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecNDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fRecNDEventMatrix->Sumw2();\r
\r
- fRecNSDEventMatrix = new THnSparseF("fRecNSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecNSDEventMatrix = new THnSparseF("fRecNSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fRecNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecNSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fRecNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecNSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fRecNSDEventMatrix->Sumw2();\r
\r
- fRecCandleEventMatrix = new THnSparseF("fRecCandleEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecCandleEventMatrix = new THnSparseF("fRecCandleEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fRecCandleEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecCandleEventMatrix->SetBinEdges(1,fBinsMult);\r
fRecCandleEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecCandleEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecCandleEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fRecCandleEventMatrix->Sumw2();\r
\r
// \r
// track to event corrections\r
//\r
\r
- fGenTrackEventMatrix = new THnSparseF("fGenTrackEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fGenTrackEventMatrix = new THnSparseF("fGenTrackEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fGenTrackEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenTrackEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fGenTrackEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fGenTrackEventMatrix->SetBinEdges(3,fBinsMult);\r
fGenTrackEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fGenTrackEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fGenTrackEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenTrackEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fGenTrackEventMatrix->Sumw2();\r
\r
- fGenTrackSDEventMatrix = new THnSparseF("fGenTrackSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fGenTrackSDEventMatrix = new THnSparseF("fGenTrackSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fGenTrackSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenTrackSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fGenTrackSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fGenTrackSDEventMatrix->SetBinEdges(3,fBinsMult);\r
fGenTrackSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fGenTrackSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fGenTrackSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenTrackSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fGenTrackSDEventMatrix->Sumw2();\r
\r
- fGenTrackDDEventMatrix = new THnSparseF("fGenTrackDDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fGenTrackDDEventMatrix = new THnSparseF("fGenTrackDDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fGenTrackDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenTrackDDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fGenTrackDDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fGenTrackDDEventMatrix->SetBinEdges(3,fBinsMult);\r
fGenTrackDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fGenTrackDDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fGenTrackDDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenTrackDDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fGenTrackDDEventMatrix->Sumw2();\r
\r
- fGenTrackNDEventMatrix = new THnSparseF("fGenTrackNDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fGenTrackNDEventMatrix = new THnSparseF("fGenTrackNDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fGenTrackNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenTrackNDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fGenTrackNDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fGenTrackNDEventMatrix->SetBinEdges(3,fBinsMult);\r
fGenTrackNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fGenTrackNDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fGenTrackNDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenTrackNDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fGenTrackNDEventMatrix->Sumw2();\r
\r
- fGenTrackNSDEventMatrix = new THnSparseF("fGenTrackNSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fGenTrackNSDEventMatrix = new THnSparseF("fGenTrackNSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fGenTrackNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenTrackNSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fGenTrackNSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fGenTrackNSDEventMatrix->SetBinEdges(3,fBinsMult);\r
fGenTrackNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fGenTrackNSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fGenTrackNSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenTrackNSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fGenTrackNSDEventMatrix->Sumw2();\r
\r
\r
//\r
- fTriggerTrackEventMatrix = new THnSparseF("fTriggerTrackEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fTriggerTrackEventMatrix = new THnSparseF("fTriggerTrackEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fTriggerTrackEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerTrackEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fTriggerTrackEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fTriggerTrackEventMatrix->SetBinEdges(3,fBinsMult);\r
fTriggerTrackEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fTriggerTrackEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fTriggerTrackEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fTriggerTrackEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fTriggerTrackEventMatrix->Sumw2();\r
\r
- fTriggerTrackSDEventMatrix = new THnSparseF("fTriggerTrackSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fTriggerTrackSDEventMatrix = new THnSparseF("fTriggerTrackSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fTriggerTrackSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerTrackSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fTriggerTrackSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fTriggerTrackSDEventMatrix->SetBinEdges(3,fBinsMult);\r
fTriggerTrackSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fTriggerTrackSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fTriggerTrackSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fTriggerTrackSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fTriggerTrackSDEventMatrix->Sumw2();\r
\r
- fTriggerTrackDDEventMatrix = new THnSparseF("fTriggerTrackDDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fTriggerTrackDDEventMatrix = new THnSparseF("fTriggerTrackDDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fTriggerTrackDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerTrackDDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fTriggerTrackDDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fTriggerTrackDDEventMatrix->SetBinEdges(3,fBinsMult);\r
fTriggerTrackDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fTriggerTrackDDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fTriggerTrackDDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fTriggerTrackDDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fTriggerTrackDDEventMatrix->Sumw2();\r
\r
- fTriggerTrackNDEventMatrix = new THnSparseF("fTriggerTrackNDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fTriggerTrackNDEventMatrix = new THnSparseF("fTriggerTrackNDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fTriggerTrackNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerTrackNDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fTriggerTrackNDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fTriggerTrackNDEventMatrix->SetBinEdges(3,fBinsMult);\r
fTriggerTrackNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fTriggerTrackNDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fTriggerTrackNDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fTriggerTrackNDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fTriggerTrackNDEventMatrix->Sumw2();\r
\r
- fTriggerTrackNSDEventMatrix = new THnSparseF("fTriggerTrackNSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fTriggerTrackNSDEventMatrix = new THnSparseF("fTriggerTrackNSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fTriggerTrackNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerTrackNSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fTriggerTrackNSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fTriggerTrackNSDEventMatrix->SetBinEdges(3,fBinsMult);\r
fTriggerTrackNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fTriggerTrackNSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fTriggerTrackNSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fTriggerTrackNSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fTriggerTrackNSDEventMatrix->Sumw2();\r
\r
//\r
- fRecTrackEventMatrix = new THnSparseF("fRecTrackEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecTrackEventMatrix = new THnSparseF("fRecTrackEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fRecTrackEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecTrackEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecTrackEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecTrackEventMatrix->SetBinEdges(3,fBinsMult);\r
fRecTrackEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecTrackEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fRecTrackEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fRecTrackEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fRecTrackEventMatrix->Sumw2();\r
\r
- fRecTrackSDEventMatrix = new THnSparseF("fRecTrackSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecTrackSDEventMatrix = new THnSparseF("fRecTrackSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fRecTrackSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecTrackSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecTrackSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecTrackSDEventMatrix->SetBinEdges(3,fBinsMult);\r
fRecTrackSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecTrackSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fRecTrackSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fRecTrackSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fRecTrackSDEventMatrix->Sumw2();\r
\r
- fRecTrackDDEventMatrix = new THnSparseF("fRecTrackDDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecTrackDDEventMatrix = new THnSparseF("fRecTrackDDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fRecTrackDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecTrackDDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecTrackDDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecTrackDDEventMatrix->SetBinEdges(3,fBinsMult);\r
fRecTrackDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecTrackDDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fRecTrackDDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fRecTrackDDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fRecTrackDDEventMatrix->Sumw2();\r
\r
- fRecTrackNDEventMatrix = new THnSparseF("fRecTrackNDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecTrackNDEventMatrix = new THnSparseF("fRecTrackNDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fRecTrackNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecTrackNDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecTrackNDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecTrackNDEventMatrix->SetBinEdges(3,fBinsMult);\r
fRecTrackNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecTrackNDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fRecTrackNDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fRecTrackNDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fRecTrackNDEventMatrix->Sumw2();\r
\r
- fRecTrackNSDEventMatrix = new THnSparseF("fRecTrackNSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecTrackNSDEventMatrix = new THnSparseF("fRecTrackNSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fRecTrackNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecTrackNSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecTrackNSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecTrackNSDEventMatrix->SetBinEdges(3,fBinsMult);\r
fRecTrackNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecTrackNSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fRecTrackNSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fRecTrackNSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fRecTrackNSDEventMatrix->Sumw2();\r
\r
//\r
// Double_t minRecEventHist2[3]={-25.,-0.5,-0.5}; \r
// Double_t maxRecEventHist2[3]={25.,149.5,149.5}; \r
\r
- fRecEventHist2 = new THnSparseF("fRecEventHist2","Zv:multMB:mult",3,binsRecEventHist2); //,minRecEventHist2,maxRecEventHist2);\r
+ fRecEventHist2 = new THnSparseF("fRecEventHist2","Zv:multMB:multRecMult",3,binsRecEventHist2); //,minRecEventHist2,maxRecEventHist2);\r
fRecEventHist2->SetBinEdges(0,fBinsZv);\r
fRecEventHist2->SetBinEdges(1,fBinsMult);\r
fRecEventHist2->SetBinEdges(2,fBinsMult);\r
fRecEventHist2->GetAxis(0)->SetTitle("Zv (cm)");\r
fRecEventHist2->GetAxis(1)->SetTitle("multiplicity MB");\r
- fRecEventHist2->GetAxis(2)->SetTitle("multiplicity");\r
+ fRecEventHist2->GetAxis(2)->SetTitle("multiplicity (multCuts)");\r
fRecEventHist2->Sumw2();\r
\r
//\r
Double_t minRecMCEventHist2[3]={-10.0*kFact,-10.0*kFact,0.0}; \r
Double_t maxRecMCEventHist2[3]={10.0*kFact,10.0*kFact,149.50}; \r
\r
- fRecMCEventHist2 = new THnSparseF("fRecMCEventHist2","Xv-mcXv:Zv-mcZv:mult",3,binsRecMCEventHist2,minRecMCEventHist2,maxRecMCEventHist2);\r
+ fRecMCEventHist2 = new THnSparseF("fRecMCEventHist2","Xv-mcXv:Zv-mcZv:multMB",3,binsRecMCEventHist2,minRecMCEventHist2,maxRecMCEventHist2);\r
fRecMCEventHist2->SetBinEdges(2,fBinsMult); \r
fRecMCEventHist2->GetAxis(0)->SetTitle("Xv-mcXv (cm)");\r
fRecMCEventHist2->GetAxis(1)->SetTitle("Zv-mcZv (cm)");\r
- fRecMCEventHist2->GetAxis(2)->SetTitle("multiplicity");\r
+ fRecMCEventHist2->GetAxis(2)->SetTitle("multiplicity MB");\r
fRecMCEventHist2->Sumw2();\r
\r
Int_t binsRecMCEventHist3[2]={fMultNbins,5};\r
Double_t minRecMCEventHist3[2]={-0.5,0.0}; \r
Double_t maxRecMCEventHist3[2]={149.50,5.0}; \r
- fRecMCEventHist3 = new THnSparseF("fRecMCEventHist3","mult:EventType (ND, DD, SD)",2,binsRecMCEventHist3,minRecMCEventHist3,maxRecMCEventHist3);\r
+ fRecMCEventHist3 = new THnSparseF("fRecMCEventHist3","multRecMult:EventType (ND, DD, SD)",2,binsRecMCEventHist3,minRecMCEventHist3,maxRecMCEventHist3);\r
fRecMCEventHist3->SetBinEdges(0,fBinsMult); \r
- fRecMCEventHist3->GetAxis(0)->SetTitle("multiplicity");\r
+ fRecMCEventHist3->GetAxis(0)->SetTitle("multiplicity (multCuts)");\r
fRecMCEventHist3->GetAxis(1)->SetTitle("EventType");\r
fRecMCEventHist3->Sumw2();\r
\r
AlidNdPtEventCuts *evtCuts = GetEventCuts(); \r
AlidNdPtAcceptanceCuts *accCuts = GetAcceptanceCuts(); \r
AliESDtrackCuts *esdTrackCuts = GetTrackCuts(); \r
+ AlidNdPtAcceptanceCuts *multAccCuts = GetMultAcceptanceCuts(); \r
\r
if(!evtCuts || !accCuts || !esdTrackCuts) {\r
AliDebug(AliLog::kError, "cuts not available");\r
\r
// multipliticy of all MC primary tracks\r
// in Zv, pt and eta ranges)\r
- multMCTrueTracks = AlidNdPtHelper::GetMCTrueTrackMult(mcEvent,evtCuts,accCuts);\r
+ multMCTrueTracks = AlidNdPtHelper::GetMCTrueTrackMult(mcEvent,evtCuts,multAccCuts);\r
\r
} // end bUseMC\r
\r
\r
\r
// check event cuts\r
+ Int_t multRecMult=0;\r
if(isEventOK && isEventTriggered && isEventSelected)\r
{\r
// get all charged tracks\r
\r
\r
// calculate mult of reconstructed tracks\r
- Int_t multRecTemp=0;\r
for(Int_t i=0; i<entries;++i) \r
{\r
AliESDtrack *track = (AliESDtrack*)allChargedTracks->At(i);\r
if(GetParticleMode() == AlidNdPtHelper::kMinus && track->Charge() > 0) \r
continue;\r
\r
- if(esdTrackCuts->AcceptTrack(track)) \r
+ if(GetMultTrackCuts()->AcceptTrack(track)) \r
{\r
- if(accCuts->AcceptTrack(track)) multRecTemp++;\r
+ if(GetMultAcceptanceCuts()->AcceptTrack(track)) multRecMult++;\r
} \r
}\r
\r
if(GetParticleMode() == AlidNdPtHelper::kMinus && track->Charge() > 0) \r
continue;\r
\r
- FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kAllTracks, multRecTemp); \r
+ FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kAllTracks, multRecMult); \r
labelsAll[multAll] = TMath::Abs(track->GetLabel());\r
multAll++;\r
\r
track->Set(cParam.GetX(),cParam.GetAlpha(),cParam.GetParameter(),cParam.GetCovariance());\r
\r
if(accCuts->AcceptTrack(track)) {\r
- FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecTemp); \r
+ FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecMult); \r
labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
multRec++;\r
} \r
else {\r
if(accCuts->AcceptTrack(track)) \r
{\r
- FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecTemp); \r
+ FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecMult); \r
labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
multRec++;\r
}\r
Double_t vRecEventHist1[3] = {vtxESD->GetXv(),vtxESD->GetYv(),vtxESD->GetZv()};\r
fRecEventHist1->Fill(vRecEventHist1);\r
\r
- Double_t vRecEventHist2[3] = {vtxESD->GetZv(),multMBTracks,multRec};\r
+ Double_t vRecEventHist2[3] = {vtxESD->GetZv(),multMBTracks,multRecMult};\r
fRecEventHist2->Fill(vRecEventHist2);\r
\r
// \r
}\r
}\r
\r
- Double_t vMultTrueEventMatrix[3] = { multRec, multMCTrueTracks, multMBTracks};\r
+ Double_t vMultTrueEventMatrix[3] = { multRecMult, multMCTrueTracks, multMBTracks};\r
if(isEventOK && isEventTriggered) { \r
if(TMath::Abs(vtxMC[2]) < 10.0) // both Rec. and corresponding MC events must be accepted\r
fEventMultCorrelationMatrix->Fill(vMultTrueEventMatrix);\r
//\r
\r
// all inelastic\r
- Double_t vEventMatrix[2] = {vtxMC[2],multMBTracks};\r
+ Double_t vEventMatrix[2] = {vtxMC[2],multMCTrueTracks};\r
fGenEventMatrix->Fill(vEventMatrix); \r
if(isEventTriggered) fTriggerEventMatrix->Fill(vEventMatrix);\r
if(isEventOK && isEventTriggered) fRecEventMatrix->Fill(vEventMatrix);\r
// checked accepted\r
if(accCuts->AcceptTrack(particle)) \r
{\r
- Double_t vTrackEventMatrix[3] = {vtxMC[2], particle->Pt(), particle->Eta()}; \r
+ Double_t vTrackEventMatrix[4] = {vtxMC[2], particle->Pt(), particle->Eta(),multMCTrueTracks}; \r
fGenTrackEventMatrix->Fill(vTrackEventMatrix);\r
\r
if(evtType == AliPWG0Helper::kSD) {\r
Double_t vRecMCEventHist2[3] = {vtxESD->GetXv()-vtxMC[0],vtxESD->GetZv()-vtxMC[2],multMBTracks};\r
fRecMCEventHist2->Fill(vRecMCEventHist2);\r
\r
- Double_t vRecMCEventHist3[2] = {multRec,evtType};\r
+ Double_t vRecMCEventHist3[2] = {multRecMult,evtType};\r
fRecMCEventHist3->Fill(vRecMCEventHist3);\r
}\r
\r
// check accepted\r
if(accCuts->AcceptTrack(particle)) \r
{\r
-\r
- if( AlidNdPtHelper::IsPrimaryParticle(stack, iMc, GetParticleMode()) ) \r
+ if( AlidNdPtHelper::IsPrimaryParticle(stack, iMc, GetParticleMode()) ) { \r
fGenPrimTrackMatrix->Fill(vTrackMatrix);\r
+ Double_t vMCPrimTrackHist[4] = {vtxMC[2],particle->Pt(),particle->Eta(),multMCTrueTracks}; \r
+ fMCPrimTrackHist->Fill(vMCPrimTrackHist);\r
+ } \r
\r
// fill control histograms\r
if(fHistogramsOn) \r
}\r
\r
//_____________________________________________________________________________\r
-void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj, Int_t multMB)\r
+void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj, Int_t multRecMult)\r
{\r
//\r
// Fill ESD track and MC histograms \r
Double_t values1[3] = {pt,eta,phi}; \r
fRecTrackHist1[trackObj]->Fill(values1);\r
\r
- Double_t values[4] = {zv, pt,eta, multMB}; \r
+ Double_t values[4] = {zv, pt,eta, multRecMult}; \r
if(trackObj == AlidNdPtHelper::kRecTracks) {\r
fRecTrackHist->Fill(values);\r
}\r
fMCMultRecTrackHist1->Add(entry->fMCMultRecTrackHist1);\r
fRecTrackHist2->Add(entry->fRecTrackHist2);\r
fEventCount->Add(entry->fEventCount);\r
+ fMCPrimTrackHist->Add(entry->fMCPrimTrackHist);\r
\r
count++;\r
}\r
// AlidNdPtAnalysis class used for dNdPt analysis.
//
// Author: J.Otwinowski 04/11/2008
-// last change: 2011-04-04 by M.Knichel
+// last change: 2013-06-13 by M.Knichel
//------------------------------------------------------------------------------
class iostream;
//
THnSparseF *GetRecEventHist() const {return fRecEventHist;}
THnSparseF *GetRecTrackHist() const {return fRecTrackHist;}
+ THnSparseF* GetMCPrimTrackHist() const {return fMCPrimTrackHist;}
private:
//
// event rec. track vs true track multiplicity correlation matrix
- THnSparseF *fEventMultCorrelationMatrix; //-> mult:mult_true_tracks:multMB
+ THnSparseF *fEventMultCorrelationMatrix; //-> multRecMult:multTrueMC:multMB
// rec. track pt vs true track pt correlation matrix for given eta
THnSparseF *fTrackPtCorrelationMatrix; //-> Pt:mcPt:mcEta
//
// all genertated
- THnSparseF *fGenEventMatrix; //-> mcZv:multMB (inelastic)
- THnSparseF *fGenSDEventMatrix; //-> mcZv:multMB (single diffractive)
- THnSparseF *fGenDDEventMatrix; //-> mcZv:multMB (single diffractive)
- THnSparseF *fGenNDEventMatrix; //-> mcZv:multMB (non diffractive)
- THnSparseF *fGenNSDEventMatrix; //-> mcZv:multMB (non single diffractive)
+ THnSparseF *fGenEventMatrix; //-> mcZv:multTrueMC (inelastic)
+ THnSparseF *fGenSDEventMatrix; //-> mcZv:multTrueMC (single diffractive)
+ THnSparseF *fGenDDEventMatrix; //-> mcZv:multTrueMC (single diffractive)
+ THnSparseF *fGenNDEventMatrix; //-> mcZv:multTrueMC (non diffractive)
+ THnSparseF *fGenNSDEventMatrix; //-> mcZv:multTrueMC (non single diffractive)
// trigger bias corrections (fTriggerEventMatrix / fGenEventMatrix)
- THnSparseF *fTriggerEventMatrix; //-> mcZv:multMB
- THnSparseF *fTriggerSDEventMatrix; //-> mcZv:multMB
- THnSparseF *fTriggerDDEventMatrix; //-> mcZv:multMB
- THnSparseF *fTriggerNDEventMatrix; //-> mcZv:multMB
- THnSparseF *fTriggerNSDEventMatrix; //-> mcZv:multMB
+ THnSparseF *fTriggerEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fTriggerSDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fTriggerDDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fTriggerNDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fTriggerNSDEventMatrix; //-> mcZv:multTrueMC
// event vertex rec. eff correction (fRecEventMatrix / fTriggerEventMatrix)
- THnSparseF *fRecEventMatrix; //-> mcZv:multMB
- THnSparseF *fRecSDEventMatrix; //-> mcZv:multMB
- THnSparseF *fRecDDEventMatrix; //-> mcZv:multMB
- THnSparseF *fRecNDEventMatrix; //-> mcZv:multMB
- THnSparseF *fRecNSDEventMatrix; //-> mcZv:multMB
+ THnSparseF *fRecEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fRecSDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fRecDDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fRecNDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fRecNSDEventMatrix; //-> mcZv:multTrueMC
//
// track-event level correction
//
- THnSparseF *fGenTrackEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fGenTrackSDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fGenTrackDDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fGenTrackNDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fGenTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta
+ THnSparseF *fGenTrackEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fGenTrackSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fGenTrackDDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fGenTrackNDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fGenTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
// trigger bias corrections (fTriggerTrackEventMatrix / fGenTrackEventMatrix)
- THnSparseF *fTriggerTrackEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fTriggerTrackSDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fTriggerTrackDDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fTriggerTrackNDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fTriggerTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta
+ THnSparseF *fTriggerTrackEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fTriggerTrackSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fTriggerTrackDDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fTriggerTrackNDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fTriggerTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
// event vertex rec. corrections (fRecTrackEventMatrix / fTriggerTrackEventMatrix)
- THnSparseF *fRecTrackEventMatrix; //-> mcZv:Pt:mcEta
- THnSparseF *fRecTrackSDEventMatrix; //-> mcZv:Pt:mcEta
- THnSparseF *fRecTrackDDEventMatrix; //-> mcZv:Pt:mcEta
- THnSparseF *fRecTrackNDEventMatrix; //-> mcZv:Pt:mcEta
- THnSparseF *fRecTrackNSDEventMatrix; //-> mcZv:Pt:mcEta
+ THnSparseF *fRecTrackEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
+ THnSparseF *fRecTrackSDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
+ THnSparseF *fRecTrackDDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
+ THnSparseF *fRecTrackNDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
+ THnSparseF *fRecTrackNSDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
//
// track level correction
// THnSparse event histograms
THnSparseF *fMCEventHist1; //-> mcXv:mcYv:mcZv
THnSparseF *fRecEventHist1; //-> Xv:Yv:Zv
- THnSparseF *fRecEventHist2; //-> Zv:multMB:mult
+ THnSparseF *fRecEventHist2; //-> Zv:multMB:multRecMult
THnSparseF *fRecMCEventHist1; //-> Xv-mcXv:Yv-mcYv:Zv-mcZv
- THnSparseF *fRecMCEventHist2; //-> Xv-mcXv:Zv-mcZv:mult
- THnSparseF *fRecMCEventHist3; //-> mult:EventType (ND, DD, SD)
+ THnSparseF *fRecMCEventHist2; //-> Xv-mcXv:Zv-mcZv:multMB
+ THnSparseF *fRecMCEventHist3; //-> multRecMult:EventType (ND, DD, SD)
// THnSparse track histograms
// [0] - after charged track selection, [1] - after acceptance cuts, [2] - after esd track cuts
// Generic histograms to be corrected
//
THnSparseF *fRecEventHist; //-> Zv:multMB
- THnSparseF *fRecTrackHist; //-> Zv:pT:eta:multRec
+ THnSparseF *fRecTrackHist; //-> Zv:pT:eta:multRecMult
THnSparseF *fEventCount; //-> trig, trig + vertex, selected event
+ THnSparseF *fMCPrimTrackHist; //-> Zv:mcpT:mceta:multTrueMC
//
// candle events track corrections
//
- THnSparseF *fRecCandleEventMatrix; //-> Zv:multMB
+ THnSparseF *fRecCandleEventMatrix; //-> Zv:multTrueMC
//binning for THNsparse
Int_t fMultNbins;
AlidNdPtAnalysis(const AlidNdPtAnalysis&); // not implemented
AlidNdPtAnalysis& operator=(const AlidNdPtAnalysis&); // not implemented
- ClassDef(AlidNdPtAnalysis,6);
+ ClassDef(AlidNdPtAnalysis,7);
};
#endif
// - generic correction matrices\r
// - control histograms\r
//\r
-// Author: J.Otwinowski 04/11/2008 \r
-// last change: 2013-02-05 by M.Knichel\r
+// last change: 2013-06-13 by M.Knichel, J.Gronefeld\r
+//\r
+// meaning of different multiplicities:\r
+// multRec : number of reconstructed tracks, after AcceptanceCuts and TrackCuts\r
+// multRecMult : number of reconstructed tracks, after MultAcceptanceCuts and MultTrackCuts\r
+// multMB : number of contributers to vertex\r
+// multTrueMC : MC true mult, after MultAcceptanceCuts\r
+// mutlAll : number of ESD tracks\r
+// mutlAcc : number of ESD tracks after AcceptanceCuts\r
//------------------------------------------------------------------------------\r
\r
#include "TH1.h"\r
fVCentralityTrack(0),\r
\r
fMultNbins(0),\r
+ fMultNbinsTE(0),\r
fPtNbins(0),\r
fPtCorrNbins(0),\r
fEtaNbins(0),\r
fZvNbins(0),\r
fMultNedges(0),\r
+ fMultNedgesTE(0),\r
fPtNedges(0),\r
fPtCorrNedges(0),\r
fEtaNedges(0),\r
fZvNedges(0),\r
fBinsMult(0),\r
+ fBinsMultTE(0),\r
fBinsPt(0),\r
fBinsPtCorr(0),\r
fBinsEta(0),\r
fBinsZv(0),\r
+ \r
+ fRapidityShift(-4.65409416218532379e-01),\r
\r
fIsInit(kFALSE) \r
\r
fVCentralityTrack(0), \r
\r
fMultNbins(0),\r
+ fMultNbinsTE(0),\r
fPtNbins(0),\r
fPtCorrNbins(0),\r
fEtaNbins(0),\r
fZvNbins(0),\r
fMultNedges(0),\r
+ fMultNedgesTE(0),\r
fPtNedges(0),\r
fPtCorrNedges(0),\r
fEtaNedges(0),\r
fZvNedges(0),\r
fBinsMult(0),\r
+ fBinsMultTE(0),\r
fBinsPt(0),\r
fBinsPtCorr(0),\r
fBinsEta(0),\r
fBinsZv(0),\r
+ \r
+ fRapidityShift(-4.65409416218532379e-01),\r
\r
fIsInit(kFALSE) \r
\r
void AlidNdPtAnalysispPb::Init()\r
{\r
//define default binning\r
- Double_t binsMultDefault[28] = {-0.5, 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 6.5 , 7.5 , 8.5,\r
- 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5,\r
- 19.5,20.5, 21.5, 22.5, 23.5, 24.5, 29.5, 149.5};\r
+ Double_t binsMultDefault[15] = {-0.5, 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 6.5 , 7.5 , 8.5, 9.5, 10.5, 20.5, 50.5, 150.5};\r
Double_t binsPtDefault[69] = {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
Double_t binsPtCorrDefault[37] = {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,3.0,4.0,50.0}; \r
Double_t binsEtaDefault[31] = {-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 binCentralityDefault[6] = {0.,20.,40.,60.,80.,100.};\r
\r
// if no binning is set, use the default\r
- if (!fBinsMult) { SetBinsMult(27,binsMultDefault); }\r
+ if (!fBinsMult) { SetBinsMult(14,binsMultDefault); }\r
+ if (!fBinsMultTE) { SetBinsMultTE(14,binsMultDefault); }\r
if (!fBinsPt) { SetBinsPt(68,binsPtDefault); }\r
if (!fBinsPtCorr) { SetBinsPtCorr(36,binsPtCorrDefault); }\r
if (!fBinsEta) { SetBinsEta(30,binsEtaDefault); }\r
if (!fBinsZv) { SetBinsZv(12,binsZvDefault); } \r
if (!fBinsCentrality) { SetBinsCentrality(5,binCentralityDefault); } \r
+ \r
+ // Int_t binsTrackMatrix[3]={fZvNbins,fPtCorrNbins,fEtaNbins};\r
+ Int_t binsTrackEventCorrMatrix[4]={fZvNbins,fPtCorrNbins,fEtaNbins,fMultNbinsTE};\r
+ Int_t binsTrackEventCorrMatrixCent[4]={fZvNbins,fPtCorrNbins,fEtaNbins,fCentralityNbins};\r
\r
- //Int_t binsTrackMatrix[3]={zvNbins,ptNbins,etaNbins};\r
- Int_t binsTrackEventCorrMatrix[3]={fZvNbins,fPtCorrNbins,fEtaNbins};\r
\r
//\r
// Generic histograms to be corrected\r
// Double_t minTrackHist[4]={-25.,0.,-1.5,-0.5}; \r
// Double_t maxTrackHist[4]={25.,50.,1.5,149.5}; \r
\r
- fRecTrackHist = new THnSparseF("fRecTrackHist","Zv:pT:eta:multRec",4,binsTrackHist); //,minTrackHist,maxTrackHist);\r
+ fRecTrackHist = new THnSparseF("fRecTrackHist","Zv:pT:eta:multRecMult",4,binsTrackHist); //,minTrackHist,maxTrackHist);\r
fRecTrackHist->SetBinEdges(0,fBinsZv);\r
fRecTrackHist->SetBinEdges(1,fBinsPt);\r
fRecTrackHist->SetBinEdges(2,fBinsEta);\r
fRecTrackHist->GetAxis(0)->SetTitle("Zv (cm)");\r
fRecTrackHist->GetAxis(1)->SetTitle("p_{T} (GeV/c)");\r
fRecTrackHist->GetAxis(2)->SetTitle("#eta");\r
- fRecTrackHist->GetAxis(3)->SetTitle("multiplicity MB");\r
+ fRecTrackHist->GetAxis(3)->SetTitle("multiplicity (multCuts)");\r
fRecTrackHist->Sumw2();\r
\r
\r
// Double_t minTrackHist[4]={-25.,0.,-1.5,-0.5}; \r
// Double_t maxTrackHist[4]={25.,50.,1.5,149.5}; \r
\r
- fMCPrimTrackHist = new THnSparseF("fMCPrimTrackHist","Zv:mcpT:mceta:multTrue",4,binsMCPrimTrackHist); \r
+ fMCPrimTrackHist = new THnSparseF("fMCPrimTrackHist","Zv:mcpT:mceta:multTrueMC",4,binsMCPrimTrackHist); \r
fMCPrimTrackHist->SetBinEdges(0,fBinsZv);\r
fMCPrimTrackHist->SetBinEdges(1,fBinsPt);\r
fMCPrimTrackHist->SetBinEdges(2,fBinsEta);\r
Int_t binsMultTrueEventMatrix[3]={fMultNbins,fMultNbins,fMultNbins};\r
// Double_t minMultTrueEventMatrix[3]={-0.5,-0.5,-0.5}; \r
// Double_t maxMultTrueEventMatrix[3]={149.5,149.5,149.5}; \r
- fEventMultCorrelationMatrix = new THnSparseF("fEventMultCorrelationMatrix","mult:true_mult:multMB",3,binsMultTrueEventMatrix); //,minMultTrueEventMatrix,maxMultTrueEventMatrix);\r
+ fEventMultCorrelationMatrix = new THnSparseF("fEventMultCorrelationMatrix","multRecMult:multTrueMC:multMB",3,binsMultTrueEventMatrix); //,minMultTrueEventMatrix,maxMultTrueEventMatrix);\r
fEventMultCorrelationMatrix->SetBinEdges(0,fBinsMult);\r
fEventMultCorrelationMatrix->SetBinEdges(1,fBinsMult);\r
fEventMultCorrelationMatrix->SetBinEdges(2,fBinsMult);\r
- fEventMultCorrelationMatrix->GetAxis(0)->SetTitle("track multiplicity");\r
- fEventMultCorrelationMatrix->GetAxis(1)->SetTitle("true multiplicity");\r
+ fEventMultCorrelationMatrix->GetAxis(0)->SetTitle("multiplicity (multCuts)");\r
+ fEventMultCorrelationMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fEventMultCorrelationMatrix->GetAxis(2)->SetTitle("MB multiplicity");\r
fEventMultCorrelationMatrix->Sumw2();\r
\r
// Efficiency and contamination correction matrices\r
//\r
Int_t binsEventMatrix[2]={fZvNbins,fMultNbins};\r
+ Int_t binsEventMatrixCent[3]={fZvNbins,fMultNbins,fCentralityNbins}; \r
// Double_t minEventMatrix[2]={-25.,-0.5}; \r
// Double_t maxEventMatrix[2]={25.,149.5}; \r
\r
- fGenEventMatrix = new THnSparseF("fGenEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fGenEventMatrix = new THnSparseF("fGenEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fGenEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenEventMatrix->SetBinEdges(1,fBinsMult);\r
fGenEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fGenEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fGenEventMatrix->Sumw2();\r
\r
- fGenSDEventMatrix = new THnSparseF("fGenSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fGenSDEventMatrix = new THnSparseF("fGenSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fGenSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fGenSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fGenSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fGenSDEventMatrix->Sumw2();\r
\r
- fGenDDEventMatrix = new THnSparseF("fGenDDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fGenDDEventMatrix = new THnSparseF("fGenDDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fGenDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenDDEventMatrix->SetBinEdges(1,fBinsMult);\r
fGenDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fGenDDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fGenDDEventMatrix->Sumw2();\r
\r
- fGenNDEventMatrix = new THnSparseF("fGenNDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fGenNDEventMatrix = new THnSparseF("fGenNDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fGenNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenNDEventMatrix->SetBinEdges(1,fBinsMult);\r
fGenNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fGenNDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fGenNDEventMatrix->Sumw2();\r
\r
- fGenNSDEventMatrix = new THnSparseF("fGenNSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fGenNSDEventMatrix = new THnSparseF("fGenNSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fGenNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenNSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fGenNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fGenNSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fGenNSDEventMatrix->Sumw2();\r
\r
//\r
- fTriggerEventMatrix = new THnSparseF("fTriggerEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fTriggerEventMatrix = new THnSparseF("fTriggerEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fTriggerEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerEventMatrix->SetBinEdges(1,fBinsMult);\r
fTriggerEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fTriggerEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fTriggerEventMatrix->Sumw2();\r
\r
- fTriggerSDEventMatrix = new THnSparseF("fTriggerSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fTriggerSDEventMatrix = new THnSparseF("fTriggerSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fTriggerSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fTriggerSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fTriggerSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fTriggerSDEventMatrix->Sumw2();\r
\r
- fTriggerDDEventMatrix = new THnSparseF("fTriggerDDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fTriggerDDEventMatrix = new THnSparseF("fTriggerDDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fTriggerDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerDDEventMatrix->SetBinEdges(1,fBinsMult);\r
fTriggerDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fTriggerDDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fTriggerDDEventMatrix->Sumw2();\r
\r
- fTriggerNDEventMatrix = new THnSparseF("fTriggerNDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fTriggerNDEventMatrix = new THnSparseF("fTriggerNDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fTriggerNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerNDEventMatrix->SetBinEdges(1,fBinsMult);\r
fTriggerNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fTriggerNDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fTriggerNDEventMatrix->Sumw2();\r
\r
- fTriggerNSDEventMatrix = new THnSparseF("fTriggerNSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fTriggerNSDEventMatrix = new THnSparseF("fTriggerNSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fTriggerNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerNSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fTriggerNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fTriggerNSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fTriggerNSDEventMatrix->Sumw2();\r
\r
//\r
- fRecEventMatrix = new THnSparseF("fRecEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecEventMatrix = new THnSparseF("fRecEventMatrix","mcZv:multTrueMC:Cent",3,binsEventMatrixCent); //,minEventMatrix,maxEventMatrix);\r
fRecEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecEventMatrix->SetBinEdges(1,fBinsMult);\r
+ fRecEventMatrix->SetBinEdges(2,fBinsCentrality); \r
fRecEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
+ fRecEventMatrix->GetAxis(2)->SetTitle("Centrality");\r
fRecEventMatrix->Sumw2();\r
\r
- fRecSDEventMatrix = new THnSparseF("fRecSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecSDEventMatrix = new THnSparseF("fRecSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fRecSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fRecSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fRecSDEventMatrix->Sumw2();\r
\r
- fRecDDEventMatrix = new THnSparseF("fRecDDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecDDEventMatrix = new THnSparseF("fRecDDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fRecDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecDDEventMatrix->SetBinEdges(1,fBinsMult);\r
fRecDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecDDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fRecDDEventMatrix->Sumw2();\r
\r
- fRecNDEventMatrix = new THnSparseF("fRecNDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecNDEventMatrix = new THnSparseF("fRecNDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fRecNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecNDEventMatrix->SetBinEdges(1,fBinsMult);\r
fRecNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecNDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fRecNDEventMatrix->Sumw2();\r
\r
- fRecNSDEventMatrix = new THnSparseF("fRecNSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecNSDEventMatrix = new THnSparseF("fRecNSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fRecNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecNSDEventMatrix->SetBinEdges(1,fBinsMult);\r
fRecNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecNSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fRecNSDEventMatrix->Sumw2();\r
\r
- fRecCandleEventMatrix = new THnSparseF("fRecCandleEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+ fRecCandleEventMatrix = new THnSparseF("fRecCandleEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
fRecCandleEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecCandleEventMatrix->SetBinEdges(1,fBinsMult);\r
fRecCandleEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecCandleEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecCandleEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
fRecCandleEventMatrix->Sumw2();\r
\r
// \r
// track to event corrections\r
//\r
\r
- fGenTrackEventMatrix = new THnSparseF("fGenTrackEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fGenTrackEventMatrix = new THnSparseF("fGenTrackEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fGenTrackEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenTrackEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fGenTrackEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fGenTrackEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fGenTrackEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fGenTrackEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fGenTrackEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenTrackEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fGenTrackEventMatrix->Sumw2();\r
\r
- fGenTrackSDEventMatrix = new THnSparseF("fGenTrackSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fGenTrackSDEventMatrix = new THnSparseF("fGenTrackSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fGenTrackSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenTrackSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fGenTrackSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fGenTrackSDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fGenTrackSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fGenTrackSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fGenTrackSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenTrackSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fGenTrackSDEventMatrix->Sumw2();\r
\r
- fGenTrackDDEventMatrix = new THnSparseF("fGenTrackDDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fGenTrackDDEventMatrix = new THnSparseF("fGenTrackDDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fGenTrackDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenTrackDDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fGenTrackDDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fGenTrackDDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fGenTrackDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fGenTrackDDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fGenTrackDDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenTrackDDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fGenTrackDDEventMatrix->Sumw2();\r
\r
- fGenTrackNDEventMatrix = new THnSparseF("fGenTrackNDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fGenTrackNDEventMatrix = new THnSparseF("fGenTrackNDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fGenTrackNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenTrackNDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fGenTrackNDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fGenTrackNDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fGenTrackNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fGenTrackNDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fGenTrackNDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenTrackNDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fGenTrackNDEventMatrix->Sumw2();\r
\r
- fGenTrackNSDEventMatrix = new THnSparseF("fGenTrackNSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fGenTrackNSDEventMatrix = new THnSparseF("fGenTrackNSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fGenTrackNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fGenTrackNSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fGenTrackNSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fGenTrackNSDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fGenTrackNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fGenTrackNSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fGenTrackNSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenTrackNSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fGenTrackNSDEventMatrix->Sumw2();\r
\r
\r
//\r
- fTriggerTrackEventMatrix = new THnSparseF("fTriggerTrackEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fTriggerTrackEventMatrix = new THnSparseF("fTriggerTrackEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fTriggerTrackEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerTrackEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fTriggerTrackEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fTriggerTrackEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fTriggerTrackEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fTriggerTrackEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fTriggerTrackEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fTriggerTrackEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fTriggerTrackEventMatrix->Sumw2();\r
\r
- fTriggerTrackSDEventMatrix = new THnSparseF("fTriggerTrackSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fTriggerTrackSDEventMatrix = new THnSparseF("fTriggerTrackSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fTriggerTrackSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerTrackSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fTriggerTrackSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fTriggerTrackSDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fTriggerTrackSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fTriggerTrackSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fTriggerTrackSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fTriggerTrackSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fTriggerTrackSDEventMatrix->Sumw2();\r
\r
- fTriggerTrackDDEventMatrix = new THnSparseF("fTriggerTrackDDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fTriggerTrackDDEventMatrix = new THnSparseF("fTriggerTrackDDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fTriggerTrackDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerTrackDDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fTriggerTrackDDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fTriggerTrackDDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fTriggerTrackDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fTriggerTrackDDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fTriggerTrackDDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fTriggerTrackDDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fTriggerTrackDDEventMatrix->Sumw2();\r
\r
- fTriggerTrackNDEventMatrix = new THnSparseF("fTriggerTrackNDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fTriggerTrackNDEventMatrix = new THnSparseF("fTriggerTrackNDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fTriggerTrackNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerTrackNDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fTriggerTrackNDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fTriggerTrackNDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fTriggerTrackNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fTriggerTrackNDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fTriggerTrackNDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fTriggerTrackNDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fTriggerTrackNDEventMatrix->Sumw2();\r
\r
- fTriggerTrackNSDEventMatrix = new THnSparseF("fTriggerTrackNSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fTriggerTrackNSDEventMatrix = new THnSparseF("fTriggerTrackNSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fTriggerTrackNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fTriggerTrackNSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fTriggerTrackNSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fTriggerTrackNSDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fTriggerTrackNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fTriggerTrackNSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fTriggerTrackNSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fTriggerTrackNSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fTriggerTrackNSDEventMatrix->Sumw2();\r
\r
+\r
//\r
- fRecTrackEventMatrix = new THnSparseF("fRecTrackEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecTrackEventMatrix = new THnSparseF("fRecTrackEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fRecTrackEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecTrackEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecTrackEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecTrackEventMatrix->SetBinEdges(3,fBinsMultTE); \r
fRecTrackEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecTrackEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fRecTrackEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fRecTrackEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fRecTrackEventMatrix->Sumw2();\r
\r
- fRecTrackSDEventMatrix = new THnSparseF("fRecTrackSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+\r
+ fRecTrackSDEventMatrix = new THnSparseF("fRecTrackSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fRecTrackSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecTrackSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecTrackSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecTrackSDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fRecTrackSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecTrackSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fRecTrackSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fRecTrackSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fRecTrackSDEventMatrix->Sumw2();\r
\r
- fRecTrackDDEventMatrix = new THnSparseF("fRecTrackDDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecTrackDDEventMatrix = new THnSparseF("fRecTrackDDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fRecTrackDDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecTrackDDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecTrackDDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecTrackDDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fRecTrackDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecTrackDDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fRecTrackDDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fRecTrackDDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fRecTrackDDEventMatrix->Sumw2();\r
\r
- fRecTrackNDEventMatrix = new THnSparseF("fRecTrackNDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecTrackNDEventMatrix = new THnSparseF("fRecTrackNDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fRecTrackNDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecTrackNDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecTrackNDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecTrackNDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fRecTrackNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecTrackNDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fRecTrackNDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fRecTrackNDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fRecTrackNDEventMatrix->Sumw2();\r
\r
- fRecTrackNSDEventMatrix = new THnSparseF("fRecTrackNSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecTrackNSDEventMatrix = new THnSparseF("fRecTrackNSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
fRecTrackNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
fRecTrackNSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecTrackNSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecTrackNSDEventMatrix->SetBinEdges(3,fBinsMultTE);\r
fRecTrackNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecTrackNSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fRecTrackNSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fRecTrackNSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
fRecTrackNSDEventMatrix->Sumw2();\r
-\r
//\r
// tracks correction matrices\r
//\r
fGenTrackMatrix->Sumw2();\r
\r
//fGenPrimTrackMatrix = new THnSparseF("fGenPrimTrackMatrix","mcZv:mcPt:mcEta",3,binsTrackMatrix);\r
- fGenPrimTrackMatrix = new THnSparseF("fGenPrimTrackMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fGenPrimTrackMatrix = new THnSparseF("fGenPrimTrackMatrix","mcZv:mcPt:mcEta:Centrality",4,binsTrackEventCorrMatrixCent);\r
fGenPrimTrackMatrix->SetBinEdges(0,fBinsZv);\r
//fGenPrimTrackMatrix->SetBinEdges(1,binsPt);\r
fGenPrimTrackMatrix->SetBinEdges(1,fBinsPtCorr);\r
fGenPrimTrackMatrix->SetBinEdges(2,fBinsEta);\r
+ fGenPrimTrackMatrix->SetBinEdges(3,fBinsCentrality); \r
fGenPrimTrackMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fGenPrimTrackMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fGenPrimTrackMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenPrimTrackMatrix->GetAxis(3)->SetTitle("Centrality");\r
fGenPrimTrackMatrix->Sumw2();\r
\r
//fRecPrimTrackMatrix = new THnSparseF("fRecPrimTrackMatrix","mcZv:mcPt:mcEta",3,binsTrackMatrix);\r
- fRecPrimTrackMatrix = new THnSparseF("fRecPrimTrackMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecPrimTrackMatrix = new THnSparseF("fRecPrimTrackMatrix","mcZv:mcPt:mcEta:Centrality",4,binsTrackEventCorrMatrixCent);\r
fRecPrimTrackMatrix->SetBinEdges(0,fBinsZv);\r
//fRecPrimTrackMatrix->SetBinEdges(1,binsPt);\r
fRecPrimTrackMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecPrimTrackMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecPrimTrackMatrix->SetBinEdges(3,fBinsCentrality); \r
fRecPrimTrackMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecPrimTrackMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
fRecPrimTrackMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fRecPrimTrackMatrix->GetAxis(3)->SetTitle("Centrality"); \r
fRecPrimTrackMatrix->Sumw2();\r
\r
//\r
//fRecTrackMatrix = new THnSparseF("fRecTrackMatrix","mcZv:mcPt:mcEta",3,binsTrackMatrix);\r
- fRecTrackMatrix = new THnSparseF("fRecTrackMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecTrackMatrix = new THnSparseF("fRecTrackMatrix","mcZv:mcPt:mcEta:Centrality",4,binsTrackEventCorrMatrixCent);\r
fRecTrackMatrix->SetBinEdges(0,fBinsZv);\r
//fRecTrackMatrix->SetBinEdges(1,binsPt);\r
fRecTrackMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecTrackMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecTrackMatrix->SetBinEdges(3,fBinsCentrality);\r
fRecTrackMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecTrackMatrix->GetAxis(1)->SetTitle("Pt (GeV/c)");\r
fRecTrackMatrix->GetAxis(2)->SetTitle("Eta");\r
+ fRecTrackMatrix->GetAxis(3)->SetTitle("Centrality");\r
fRecTrackMatrix->Sumw2();\r
\r
//fRecSecTrackMatrix = new THnSparseF("fRecSecTrackMatrix","mcZv:mcPt:mcEta",3,binsTrackMatrix);\r
- fRecSecTrackMatrix = new THnSparseF("fRecSecTrackMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+ fRecSecTrackMatrix = new THnSparseF("fRecSecTrackMatrix","mcZv:mcPt:mcEta:Centrality",4,binsTrackEventCorrMatrixCent);\r
fRecSecTrackMatrix->SetBinEdges(0,fBinsZv);\r
//fRecSecTrackMatrix->SetBinEdges(1,binsPt);\r
fRecSecTrackMatrix->SetBinEdges(1,fBinsPtCorr);\r
fRecSecTrackMatrix->SetBinEdges(2,fBinsEta);\r
+ fRecSecTrackMatrix->SetBinEdges(3,fBinsCentrality); \r
fRecSecTrackMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
fRecSecTrackMatrix->GetAxis(1)->SetTitle("Pt (GeV/c)");\r
fRecSecTrackMatrix->GetAxis(2)->SetTitle("Eta");\r
+ fRecSecTrackMatrix->GetAxis(3)->SetTitle("Centrality"); \r
fRecSecTrackMatrix->Sumw2();\r
\r
//\r
// Double_t minRecEventHist2[3]={-25.,-0.5,-0.5}; \r
// Double_t maxRecEventHist2[3]={25.,149.5,149.5}; \r
\r
- fRecEventHist2 = new THnSparseF("fRecEventHist2","Zv:multMB:mult",3,binsRecEventHist2); //,minRecEventHist2,maxRecEventHist2);\r
+ fRecEventHist2 = new THnSparseF("fRecEventHist2","Zv:multMB:multRecMult",3,binsRecEventHist2); //,minRecEventHist2,maxRecEventHist2);\r
fRecEventHist2->SetBinEdges(0,fBinsZv);\r
fRecEventHist2->SetBinEdges(1,fBinsMult);\r
fRecEventHist2->SetBinEdges(2,fBinsMult);\r
fRecEventHist2->GetAxis(0)->SetTitle("Zv (cm)");\r
fRecEventHist2->GetAxis(1)->SetTitle("multiplicity MB");\r
- fRecEventHist2->GetAxis(2)->SetTitle("multiplicity");\r
+ fRecEventHist2->GetAxis(2)->SetTitle("multiplicity (multCuts)");\r
fRecEventHist2->Sumw2();\r
\r
//\r
Double_t minRecMCEventHist2[3]={-10.0*kFact,-10.0*kFact,0.0}; \r
Double_t maxRecMCEventHist2[3]={10.0*kFact,10.0*kFact,149.50}; \r
\r
- fRecMCEventHist2 = new THnSparseF("fRecMCEventHist2","Xv-mcXv:Zv-mcZv:mult",3,binsRecMCEventHist2,minRecMCEventHist2,maxRecMCEventHist2);\r
+ fRecMCEventHist2 = new THnSparseF("fRecMCEventHist2","Xv-mcXv:Zv-mcZv:multMB",3,binsRecMCEventHist2,minRecMCEventHist2,maxRecMCEventHist2);\r
fRecMCEventHist2->SetBinEdges(2,fBinsMult); \r
fRecMCEventHist2->GetAxis(0)->SetTitle("Xv-mcXv (cm)");\r
fRecMCEventHist2->GetAxis(1)->SetTitle("Zv-mcZv (cm)");\r
- fRecMCEventHist2->GetAxis(2)->SetTitle("multiplicity");\r
+ fRecMCEventHist2->GetAxis(2)->SetTitle("multiplicity MB");\r
fRecMCEventHist2->Sumw2();\r
\r
Int_t binsRecMCEventHist3[2]={fMultNbins,5};\r
Double_t minRecMCEventHist3[2]={-0.5,0.0}; \r
Double_t maxRecMCEventHist3[2]={149.50,5.0}; \r
- fRecMCEventHist3 = new THnSparseF("fRecMCEventHist3","mult:EventType (ND, DD, SD)",2,binsRecMCEventHist3,minRecMCEventHist3,maxRecMCEventHist3);\r
+ fRecMCEventHist3 = new THnSparseF("fRecMCEventHist3","multRecMult:EventType (ND, DD, SD)",2,binsRecMCEventHist3,minRecMCEventHist3,maxRecMCEventHist3);\r
fRecMCEventHist3->SetBinEdges(0,fBinsMult); \r
- fRecMCEventHist3->GetAxis(0)->SetTitle("multiplicity");\r
+ fRecMCEventHist3->GetAxis(0)->SetTitle("multiplicity (multCuts)");\r
fRecMCEventHist3->GetAxis(1)->SetTitle("EventType");\r
fRecMCEventHist3->Sumw2();\r
\r
fEventCount->Sumw2();\r
\r
Int_t binsEventMultHist[3]={fMultNbins,fMultNbins,fMultNbins};\r
- fEventMultHist = new THnSparseF("fEventMultHist","multMB:multRecTemp:multRec",3,binsEventMultHist);\r
+ fEventMultHist = new THnSparseF("fEventMultHist","multMB:multRecMult:multRec",3,binsEventMultHist);\r
fEventMultHist->GetAxis(0)->SetTitle("multMB");\r
- fEventMultHist->GetAxis(1)->SetTitle("multRecTemp");\r
+ fEventMultHist->GetAxis(1)->SetTitle("multRecMult");\r
fEventMultHist->GetAxis(2)->SetTitle("multRec");\r
fEventMultHist->SetBinEdges(0,fBinsMult);\r
fEventMultHist->SetBinEdges(1,fBinsMult);\r
//zv:multRec:multMB:cent[n]\r
Int_t dimsCentralityEventHist = fDimensionsCentralityEstimators + 3;\r
Int_t* binsCentralityEventHist = new Int_t[dimsCentralityEventHist];\r
- TString titleCentralityEventHist("zV:multRec:multMB");\r
+ TString titleCentralityEventHist("zV:multRecMult:multMB");\r
binsCentralityEventHist[0] = fZvNbins;\r
binsCentralityEventHist[1] = fMultNbins;\r
binsCentralityEventHist[2] = fMultNbins;\r
fCentralityEventHist->SetBinEdges(1,fBinsMult);\r
fCentralityEventHist->SetBinEdges(2,fBinsMult);\r
fCentralityEventHist->GetAxis(0)->SetTitle("Zv (cm)");\r
- fCentralityEventHist->GetAxis(1)->SetTitle("multRec");\r
+ fCentralityEventHist->GetAxis(1)->SetTitle("multRecMult");\r
fCentralityEventHist->GetAxis(2)->SetTitle("multMB");\r
for (Int_t i=1; i<=fDimensionsCentralityEstimators ; i++) { \r
fCentralityEventHist->SetBinEdges(i+2,fBinsCentrality);\r
//zv:pt:eta:multRec:multMB:cent[n]\r
Int_t dimsCentralityTrackHist = fDimensionsCentralityEstimators + 5;\r
Int_t* binsCentralityTrackHist = new Int_t[dimsCentralityTrackHist];\r
- TString titleCentralityTrackHist("zV:pT:eta:multRec:multMB");\r
+ TString titleCentralityTrackHist("zV:pT:eta:multRecMult:multMB");\r
binsCentralityTrackHist[0] = fZvNbins;\r
binsCentralityTrackHist[1] = fPtNbins;\r
binsCentralityTrackHist[2] = fEtaNbins;\r
fCentralityTrackHist->GetAxis(0)->SetTitle("Zv (cm)");\r
fCentralityTrackHist->GetAxis(1)->SetTitle("p_{T} (GeV/c)");\r
fCentralityTrackHist->GetAxis(2)->SetTitle("#eta");\r
- fCentralityTrackHist->GetAxis(3)->SetTitle("multRec");\r
+ fCentralityTrackHist->GetAxis(3)->SetTitle("multRecMult");\r
fCentralityTrackHist->GetAxis(4)->SetTitle("multMB");\r
for (Int_t i=1; i<=fDimensionsCentralityEstimators ; i++) { \r
fCentralityTrackHist->SetBinEdges(i+4,fBinsCentrality);\r
AlidNdPtEventCuts *evtCuts = GetEventCuts(); \r
AlidNdPtAcceptanceCuts *accCuts = GetAcceptanceCuts(); \r
AliESDtrackCuts *esdTrackCuts = GetTrackCuts(); \r
+ AlidNdPtAcceptanceCuts *multAccCuts = GetMultAcceptanceCuts(); \r
\r
if(!evtCuts || !accCuts || !esdTrackCuts) {\r
AliDebug(AliLog::kError, "cuts not available");\r
\r
// multipliticy of all MC primary tracks\r
// in Zv, pt and eta ranges)\r
- multMCTrueTracks = AlidNdPtHelper::GetMCTrueTrackMult(mcEvent,evtCuts,accCuts);\r
+ if (fRapidityShift == 0) {\r
+ multMCTrueTracks = AlidNdPtHelper::GetMCTrueTrackMult(mcEvent,evtCuts,multAccCuts);\r
+ } else {\r
+ multMCTrueTracks = AlidNdPtHelper::GetMCTrueTrackMult(mcEvent,evtCuts,multAccCuts,fRapidityShift);\r
+ }\r
\r
} // end bUseMC\r
\r
\r
\r
// check event cuts\r
+ Int_t multRecMult=0;\r
+ Double_t centralityD = -1;\r
if(isEventOK && isEventTriggered && isEventSelected)\r
{\r
// get all charged tracks\r
//printf("entries %d \n",entries);\r
\r
\r
- // calculate mult of reconstructed tracks\r
- Int_t multRecTemp=0;\r
+ // calculate mult of reconstructed tracks \r
for(Int_t i=0; i<entries;++i) \r
{\r
AliESDtrack *track = (AliESDtrack*)allChargedTracks->At(i);\r
if(GetParticleMode() == AlidNdPtHelper::kMinus && track->Charge() > 0) \r
continue;\r
\r
- if(esdTrackCuts->AcceptTrack(track)) \r
+ if(GetMultTrackCuts()->AcceptTrack(track)) \r
{\r
- if(accCuts->AcceptTrack(track)) multRecTemp++;\r
+ if(GetMultAcceptanceCuts()->AcceptTrack(track)) { multRecMult++; }\r
} \r
}\r
\r
// also filles event-related value for fCentralityTrackHist\r
if (fDimensionsCentralityEstimators > 0) {\r
fVCentralityEvent[0] = vtxESD->GetZv();\r
- fVCentralityEvent[1] = multRecTemp;\r
+ fVCentralityEvent[1] = multRecMult;\r
fVCentralityEvent[2] = multMBTracks;\r
fVCentralityTrack[0] = vtxESD->GetZv();\r
- fVCentralityTrack[3] = multRecTemp;\r
+ fVCentralityTrack[3] = multRecMult;\r
fVCentralityTrack[4] = multMBTracks;\r
for (Int_t i=1; i<=fDimensionsCentralityEstimators ; i++) {\r
// centrality determination\r
centralityF = esdCentrality->GetCentralityPercentile(GetCentralityEstimator(i)); \r
fVCentralityEvent[i+2] = centralityF;\r
fVCentralityTrack[i+4] = centralityF;\r
+ if (1==i) { centralityD = centralityF; }\r
}\r
fCentralityEventHist->Fill(fVCentralityEvent);\r
} \r
if(GetParticleMode() == AlidNdPtHelper::kMinus && track->Charge() > 0) \r
continue;\r
\r
- FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kAllTracks, multRecTemp); \r
+ FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kAllTracks, multRecMult); \r
labelsAll[multAll] = TMath::Abs(track->GetLabel());\r
multAll++;\r
\r
track->Set(cParam.GetX(),cParam.GetAlpha(),cParam.GetParameter(),cParam.GetCovariance());\r
\r
if(accCuts->AcceptTrack(track)) {\r
- FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecTemp); \r
+ FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecMult); \r
labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
multRec++;\r
} \r
else {\r
if(accCuts->AcceptTrack(track)) \r
{\r
- FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecTemp); \r
+ FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecMult); \r
labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
multRec++;\r
}\r
Double_t vRecEventHist1[3] = {vtxESD->GetXv(),vtxESD->GetYv(),vtxESD->GetZv()};\r
fRecEventHist1->Fill(vRecEventHist1);\r
\r
- Double_t vRecEventHist2[3] = {vtxESD->GetZv(),multMBTracks,multRec};\r
+ Double_t vRecEventHist2[3] = {vtxESD->GetZv(),multMBTracks,multRecMult};\r
fRecEventHist2->Fill(vRecEventHist2);\r
\r
// \r
- Double_t vRecEventHist[2] = {vtxESD->GetZv(),multMBTracks};\r
+ //Double_t vRecEventHist[2] = {vtxESD->GetZv(),multMBTracks};\r
+ Double_t vRecEventHist[3] = {vtxESD->GetZv(),multMBTracks,centralityD};\r
fRecEventHist->Fill(vRecEventHist);\r
\r
// fill fEventMultHist for cross checks\r
- Double_t vEventMultHist[3] = {multMBTracks,multRecTemp,multRec};\r
+ Double_t vEventMultHist[3] = {multMBTracks,multRecMult,multRec};\r
fEventMultHist->Fill(vEventMultHist);\r
} \r
\r
}\r
}\r
\r
- Double_t vMultTrueEventMatrix[3] = { multRec, multMCTrueTracks, multMBTracks};\r
+ Double_t vMultTrueEventMatrix[3] = { multRecMult, multMCTrueTracks, multMBTracks};\r
if(isEventOK && isEventTriggered) { \r
if(TMath::Abs(vtxMC[2]) < 10.0) // both Rec. and corresponding MC events must be accepted\r
fEventMultCorrelationMatrix->Fill(vMultTrueEventMatrix);\r
//\r
\r
// all inelastic\r
- Double_t vEventMatrix[2] = {vtxMC[2],multMBTracks};\r
+ //Double_t vEventMatrix[2] = {vtxMC[2],multMBTracks};\r
+ Double_t vEventMatrix[3] = {vtxMC[2],multMCTrueTracks,centralityD};\r
fGenEventMatrix->Fill(vEventMatrix); \r
if(isEventTriggered) fTriggerEventMatrix->Fill(vEventMatrix);\r
if(isEventOK && isEventTriggered) fRecEventMatrix->Fill(vEventMatrix);\r
// checked accepted\r
if(accCuts->AcceptTrack(particle)) \r
{\r
- Double_t vTrackEventMatrix[3] = {vtxMC[2], particle->Pt(), particle->Eta()}; \r
+ //Double_t vTrackEventMatrix[3] = {vtxMC[2], particle->Pt(), particle->Eta()}; \r
+ Double_t vTrackEventMatrix[4] = {vtxMC[2],particle->Pt(),particle->Eta(),multMCTrueTracks}; \r
fGenTrackEventMatrix->Fill(vTrackEventMatrix);\r
\r
if(evtType == AliPWG0Helper::kSD) {\r
if (!particle)\r
continue;\r
\r
- Double_t vTrackMatrix[3] = {vtxMC[2],particle->Pt(),particle->Eta()}; \r
+ //Double_t vTrackMatrix[3] = {vtxMC[2],particle->Pt(),particle->Eta()}; .\r
+ Double_t vTrackMatrix[4] = {vtxMC[2],particle->Pt(),particle->Eta(),centralityD}; \r
\r
// all genertated primaries including neutral\r
//if( iMc < stack->GetNprimary() ) {\r
if(accCuts->AcceptTrack(particle)) \r
{\r
\r
- if( AlidNdPtHelper::IsPrimaryParticle(stack, iMc, GetParticleMode()) ) \r
+ if( AlidNdPtHelper::IsPrimaryParticle(stack, iMc, GetParticleMode()) ) { \r
fGenPrimTrackMatrix->Fill(vTrackMatrix);\r
Double_t vMCPrimTrackHist[4] = {vtxMC[2],particle->Pt(),particle->Eta(),multMCTrueTracks}; \r
fMCPrimTrackHist->Fill(vMCPrimTrackHist);\r
-\r
+ }\r
// fill control histograms\r
if(fHistogramsOn) \r
FillHistograms(stack,iMc,AlidNdPtHelper::kAccTracks); \r
}\r
\r
//_____________________________________________________________________________\r
-void AlidNdPtAnalysispPb::FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj, Int_t multMB)\r
+void AlidNdPtAnalysispPb::FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj, Int_t multRecMult)\r
{\r
//\r
// Fill ESD track and MC histograms \r
Double_t values1[3] = {pt,eta,phi}; \r
fRecTrackHist1[trackObj]->Fill(values1);\r
\r
- Double_t values[4] = {zv, pt,eta, multMB}; \r
+ Double_t values[4] = {zv, pt,eta, multRecMult}; \r
if(trackObj == AlidNdPtHelper::kRecTracks) {\r
fRecTrackHist->Fill(values);\r
}\r
// based on AlidNdPtAnalysis class
//
// Author: J.Otwinowski 04/11/2008
-// last change: 2013-02-05 by M.Knichel
+// last change: 2013-06-13 by M.Knichel, J.Gronefeld
//------------------------------------------------------------------------------
class iostream;
// Set binning for Histograms (if not set default binning is used)
void SetBinsMult(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fMultNbins = nbins; fBinsMult = CloneArray(fMultNedges = nbins+1,edges); } }
+ void SetBinsMultTE(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fMultNbinsTE = nbins; fBinsMultTE = CloneArray(fMultNedgesTE = nbins+1,edges); } }
void SetBinsPt(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fPtNbins = nbins; fBinsPt = CloneArray(fPtNedges = nbins+1,edges); } }
void SetBinsPtCorr(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fPtCorrNbins = nbins; fBinsPtCorr = CloneArray(fPtCorrNedges = nbins+1,edges); } }
void SetBinsEta(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fEtaNbins = nbins; fBinsEta = CloneArray(fEtaNedges = nbins+1,edges); } }
// Getters
THnSparseF *GetEventMultCorrelationMatrix() const {return fEventMultCorrelationMatrix;}
THnSparseF *GetTrackPtCorrelationMatrix() const {return fTrackPtCorrelationMatrix;}
+
//NOTE: for now in p-Pb ND and NSD are the same, DD is empty!
//kNSD would have to be added to PWG0Helper, now kND is used to signal NSD!
Int_t GetNCentralityEstimators() {return fDimensionsCentralityEstimators;}
void SetBinsCentrality(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fCentralityNbins = nbins; fBinsCentrality = CloneArray(fCentralityNedges = nbins+1,edges); } }
void SetCentralityEstimators(const char* estimators);
+
+ //rapidity shift getter+setter
+ void SetRapidityShift(Double_t yShift) { fRapidityShift = yShift;}
+ Double_t GetRapidityShift() { return fRapidityShift; }
private:
//
// event rec. track vs true track multiplicity correlation matrix
- THnSparseF *fEventMultCorrelationMatrix; //-> mult:mult_true_tracks:multMB
+ THnSparseF *fEventMultCorrelationMatrix; //-> multRecMult:multTrueMC:multMB
// rec. track pt vs true track pt correlation matrix for given eta
THnSparseF *fTrackPtCorrelationMatrix; //-> Pt:mcPt:mcEta
//
// all genertated
- THnSparseF *fGenEventMatrix; //-> mcZv:multMB (inelastic)
- THnSparseF *fGenSDEventMatrix; //-> mcZv:multMB (single diffractive)
- THnSparseF *fGenDDEventMatrix; //-> mcZv:multMB (single diffractive)
- THnSparseF *fGenNDEventMatrix; //-> mcZv:multMB (non diffractive)
- THnSparseF *fGenNSDEventMatrix; //-> mcZv:multMB (non single diffractive)
+ THnSparseF *fGenEventMatrix; //-> mcZv:multTrueMC (inelastic)
+ THnSparseF *fGenSDEventMatrix; //-> mcZv:multTrueMC (single diffractive)
+ THnSparseF *fGenDDEventMatrix; //-> mcZv:multTrueMC (single diffractive)
+ THnSparseF *fGenNDEventMatrix; //-> mcZv:multTrueMC (non diffractive)
+ THnSparseF *fGenNSDEventMatrix; //-> mcZv:multTrueMC (non single diffractive)
// trigger bias corrections (fTriggerEventMatrix / fGenEventMatrix)
- THnSparseF *fTriggerEventMatrix; //-> mcZv:multMB
- THnSparseF *fTriggerSDEventMatrix; //-> mcZv:multMB
- THnSparseF *fTriggerDDEventMatrix; //-> mcZv:multMB
- THnSparseF *fTriggerNDEventMatrix; //-> mcZv:multMB
- THnSparseF *fTriggerNSDEventMatrix; //-> mcZv:multMB
+ THnSparseF *fTriggerEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fTriggerSDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fTriggerDDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fTriggerNDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fTriggerNSDEventMatrix; //-> mcZv:multTrueMC
// event vertex rec. eff correction (fRecEventMatrix / fTriggerEventMatrix)
- THnSparseF *fRecEventMatrix; //-> mcZv:multMB
- THnSparseF *fRecSDEventMatrix; //-> mcZv:multMB
- THnSparseF *fRecDDEventMatrix; //-> mcZv:multMB
- THnSparseF *fRecNDEventMatrix; //-> mcZv:multMB
- THnSparseF *fRecNSDEventMatrix; //-> mcZv:multMB
-
+ THnSparseF *fRecEventMatrix; //-> mcZv:multTrueMC:Centrality
+ THnSparseF *fRecSDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fRecDDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fRecNDEventMatrix; //-> mcZv:multTrueMC
+ THnSparseF *fRecNSDEventMatrix; //-> mcZv:multTrueMC
//
- // track-event level correction
+ // track-event level correction
//
- THnSparseF *fGenTrackEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fGenTrackSDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fGenTrackDDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fGenTrackNDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fGenTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta
+ THnSparseF *fGenTrackEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fGenTrackSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fGenTrackDDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fGenTrackNDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fGenTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
// trigger bias corrections (fTriggerTrackEventMatrix / fGenTrackEventMatrix)
- THnSparseF *fTriggerTrackEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fTriggerTrackSDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fTriggerTrackDDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fTriggerTrackNDEventMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fTriggerTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta
+ THnSparseF *fTriggerTrackEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fTriggerTrackSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fTriggerTrackDDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fTriggerTrackNDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
+ THnSparseF *fTriggerTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC
// event vertex rec. corrections (fRecTrackEventMatrix / fTriggerTrackEventMatrix)
- THnSparseF *fRecTrackEventMatrix; //-> mcZv:Pt:mcEta
- THnSparseF *fRecTrackSDEventMatrix; //-> mcZv:Pt:mcEta
- THnSparseF *fRecTrackDDEventMatrix; //-> mcZv:Pt:mcEta
- THnSparseF *fRecTrackNDEventMatrix; //-> mcZv:Pt:mcEta
- THnSparseF *fRecTrackNSDEventMatrix; //-> mcZv:Pt:mcEta
+ THnSparseF *fRecTrackEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
+ THnSparseF *fRecTrackSDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
+ THnSparseF *fRecTrackDDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
+ THnSparseF *fRecTrackNDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
+ THnSparseF *fRecTrackNSDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC
//
// track level correction
// track rec. efficiency correction (fRecPrimTrackMatrix / fGenPrimTrackMatrix)
THnSparseF *fGenTrackMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fGenPrimTrackMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fRecPrimTrackMatrix; //-> mcZv:mcPt:mcEta
+ THnSparseF *fGenPrimTrackMatrix; //-> mcZv:mcPt:mcEta:Centrality
+ THnSparseF *fRecPrimTrackMatrix; //-> mcZv:mcPt:mcEta:Centrality
// secondary track contamination correction (fRecSecTrackMatrix / fRecTrackMatrix)
- THnSparseF *fRecTrackMatrix; //-> mcZv:mcPt:mcEta
- THnSparseF *fRecSecTrackMatrix; //-> mcZv:mcPt:mcEta
+ THnSparseF *fRecTrackMatrix; //-> mcZv:mcPt:mcEta:Centrality
+ THnSparseF *fRecSecTrackMatrix; //-> mcZv:mcPt:mcEta:Centrality
// multiple rec. track corrections (fRecMultTrackMatrix / fRecTrackMatrix)
THnSparseF *fRecMultTrackMatrix; //-> mcZv:Pt:mcEta
// THnSparse event histograms
THnSparseF *fMCEventHist1; //-> mcXv:mcYv:mcZv
THnSparseF *fRecEventHist1; //-> Xv:Yv:Zv
- THnSparseF *fRecEventHist2; //-> Zv:multMB:mult
+ THnSparseF *fRecEventHist2; //-> Zv:multMB:multRecMult
THnSparseF *fRecMCEventHist1; //-> Xv-mcXv:Yv-mcYv:Zv-mcZv
- THnSparseF *fRecMCEventHist2; //-> Xv-mcXv:Zv-mcZv:mult
- THnSparseF *fRecMCEventHist3; //-> mult:EventType (ND, DD, SD)
+ THnSparseF *fRecMCEventHist2; //-> Xv-mcXv:Zv-mcZv:multMB
+ THnSparseF *fRecMCEventHist3; //-> multRec:EventType (ND, DD, SD)
// THnSparse track histograms
// [0] - after charged track selection, [1] - after acceptance cuts, [2] - after esd track cuts
// Generic histograms to be corrected
//
THnSparseF *fRecEventHist; //-> Zv:multMB
- THnSparseF *fRecTrackHist; //-> Zv:pT:eta:multRec
+ THnSparseF *fRecTrackHist; //-> Zv:pT:eta:multRecMult
THnSparseF *fEventCount; //-> trig, trig + vertex, selected event
- THnSparseF *fEventMultHist; // event multiplicities multMB:multRecTemp:multRec
- THnSparseF *fMCPrimTrackHist; //-> Zv:mcpT:mceta:multtrue
+ THnSparseF *fEventMultHist; // event multiplicities multMB:multRecMult:multRec
+ THnSparseF *fMCPrimTrackHist; //-> Zv:mcpT:mceta:multTrueMC
//
// candle events track corrections
THnSparseF *fRecCandleEventMatrix; // Zv:multMB
// centrality test histograms
- THnSparseF *fCentralityEventHist; // rec event hist with centrality zv:multRec:multMB:cent:...
- THnSparseF *fCentralityTrackHist; // rec track hist with centrality zv:pt:eta:multRec:multMB:cent:...
+ THnSparseF *fCentralityEventHist; // rec event hist with centrality zv:multRecMult:multMB:cent:...
+ THnSparseF *fCentralityTrackHist; // rec track hist with centrality zv:pt:eta:multRecMult:multMB:cent:...
TObjArray *fCentralityEstimatorsList; // TObjArray with TObjStrings containing cent. estimators
Int_t fDimensionsCentralityEstimators; // number of centrality estimators: if 0 hists are not filled
Int_t fCentralityNbins; // number of centrality bins (common for all estimators)
//binning for THNsparse
Int_t fMultNbins;
+ Int_t fMultNbinsTE;
Int_t fPtNbins;
Int_t fPtCorrNbins;
Int_t fEtaNbins;
Int_t fZvNbins;
Int_t fMultNedges; // fMultNbins+1 uses for streaming dynamic array
+ Int_t fMultNedgesTE; // fMultNbinsTE+1 uses for streaming dynamic array
Int_t fPtNedges; // fPtNbins+1 uses for streaming dynamic array
Int_t fPtCorrNedges; // fCentralityNbins+1 uses for streaming dynamic array
Int_t fEtaNedges; // fEtaNbins+1 uses for streaming dynamic array
Int_t fZvNedges; // fZvNbins+1 uses for streaming dynamic array
Double_t *fBinsMult; //[fMultNedges]
+ Double_t *fBinsMultTE; //[fMultNedgesTE]
Double_t *fBinsPt; //[fPtNedges]
Double_t *fBinsPtCorr; //[fPtCorrNedges]
Double_t *fBinsEta; //[fEtaNedges]
Double_t *fBinsZv; //[fZvNedges]
+ Double_t fRapidityShift; //y shift CMS vs. LAB
+
Bool_t fIsInit;
// generic function to change binning
AlidNdPtAnalysispPb(const AlidNdPtAnalysispPb&); // not implemented
AlidNdPtAnalysispPb& operator=(const AlidNdPtAnalysispPb&); // not implemented
- ClassDef(AlidNdPtAnalysispPb,3);
+ ClassDef(AlidNdPtAnalysispPb,5);
};
#endif
//
// Origin: Jan Fiete Grosse-Oetringhaus
// Modified and Extended: Jacek Otwinowski 19/11/2009
-// last change: 2013-02-05 by M.Knichel
+// last change: 2013-06-13 by M.Knichel
//
#include <TROOT.h>
Bool_t isEventOK = evtCuts->AcceptMCEvent(mcEvent);
if(!isEventOK) return 0;
+ Int_t nPart = stack->GetNtrack();
+ for (Int_t iMc = 0; iMc < nPart; ++iMc)
+ {
+ TParticle* particle = stack->Particle(iMc);
+ if (!particle)
+ continue;
+
+ // only charged particles
+ if(!particle->GetPDG()) continue;
+ Double_t charge = particle->GetPDG()->Charge()/3.;
+ if (TMath::Abs(charge) < 0.001)
+ continue;
+
+ // physical primary
+ Bool_t prim = stack->IsPhysicalPrimary(iMc);
+ if(!prim) continue;
+
+ // checked accepted including pt cut
+ //if(accCuts->AcceptTrack(particle))
+ if( particle->Eta() > accCuts->GetMinEta() && particle->Eta() < accCuts->GetMaxEta() && particle->Pt() > accCuts->GetMinPt() && particle->Pt() < accCuts->GetMaxPt() )
+
+ {
+ mult++;
+ }
+ }
+
+return mult;
+}
+
+//_____________________________________________________________________________
+Int_t AlidNdPtHelper::GetMCTrueTrackMult(AliMCEvent *const mcEvent, AlidNdPtEventCuts *const evtCuts, AlidNdPtAcceptanceCuts *const accCuts, Double_t yShift)
+{
+ //
+ // calculate mc event true track multiplicity
+ //
+ if(!mcEvent) return 0;
+
+ AliStack* stack = 0;
+ Int_t mult = 0;
+
+ // MC particle stack
+ stack = mcEvent->Stack();
+ if (!stack) return 0;
+
+ //
+ //printf("minZv %f, maxZv %f \n", evtCuts->GetMinZv(), evtCuts->GetMaxZv());
+ //
+
+ Bool_t isEventOK = evtCuts->AcceptMCEvent(mcEvent);
+ if(!isEventOK) return 0;
+
Int_t nPart = stack->GetNtrack();
for (Int_t iMc = 0; iMc < nPart; ++iMc)
{
// checked accepted without pt cut
//if(accCuts->AcceptTrack(particle))
- if( particle->Eta() > accCuts->GetMinEta() && particle->Eta() < accCuts->GetMaxEta() )
+ if (TMath::Abs(particle->Eta()) > 100.) continue;
+
+ Double_t etacms = TMath::ASinH((TMath::CosH(yShift)*TMath::SinH(particle->Eta())) - (TMath::SinH(yShift)*particle->Energy()/particle->Pt()));
+ Double_t minetacms = accCuts->GetMinEta()-yShift;
+ Double_t maxetacms = accCuts->GetMaxEta()-yShift;
+
+ // checked accepted including pt cut
+ //if(accCuts->AcceptTrack(particle))
+ if( etacms > minetacms && etacms < maxetacms && particle->Pt() > accCuts->GetMinPt() && particle->Pt() < accCuts->GetMaxPt() )
{
mult++;
}
// generate correction matrix
if(!hist1 || !hist2) return 0;
-THnSparse *h =(THnSparse*)hist1->Clone(name);;
+THnSparse *h =(THnSparse*)hist1->Clone(name);
h->Divide(hist1,hist2,1,1,"B");
return h;
//
// Origin: Jan Fiete Grosse-Oetringhaus
// Modified and Extended: Jacek Otwinowski 19/11/2009
-// last change: 2013-02-05 by M.Knichel
+// last change: 2013-06-13 by M.Knichel
//
#include <TObject.h>
static Int_t GetSPDMBTrackMult(const AliESDEvent* const esdEvent, Float_t deltaThetaCut =0.025, Float_t deltaPhiCut = 0.08);
static Int_t GetSPDMBPrimTrackMult(const AliESDEvent* const esdEvent, AliStack *const stack, Float_t deltaThetaCut =0.025, Float_t deltaPhiCut = 0.08);
- static Int_t GetMCTrueTrackMult(AliMCEvent *const mcEvent, AlidNdPtEventCuts *const evtCuts, AlidNdPtAcceptanceCuts *const accCuts);
+ static Int_t GetMCTrueTrackMult(AliMCEvent *const mcEvent, AlidNdPtEventCuts *const evtCuts, AlidNdPtAcceptanceCuts *const accCuts);
+ static Int_t GetMCTrueTrackMult(AliMCEvent *const mcEvent, AlidNdPtEventCuts *const evtCuts, AlidNdPtAcceptanceCuts *const accCuts, Double_t yShift);
static AliESDtrack* GetTPCOnlyTrackSPDvtx(const AliESDEvent* const esdEvent, Int_t iTrack, Bool_t bUpdate);
static AliESDtrack* GetTPCOnlyTrackTrackSPDvtx(const AliESDEvent* const esdEvent, Int_t iTrack, Bool_t bUpdate);
static AliPWG0Helper::MCProcessType GetEventProcessTypePA(AliHeader* aHeader, Bool_t adebug = kFALSE);
static AliPWG0Helper::MCProcessType GetDPMjetEventProcessTypePA(AliGenEventHeader* aHeader, Bool_t adebug = kFALSE);
- ClassDef(AlidNdPtHelper, 2);
+ ClassDef(AlidNdPtHelper, 3);
private:
AlidNdPtHelper(const AlidNdPtHelper&);
// this macro creates the track and event cuts used in this analysis
-// last modified: 2012-02-06
+// last modified: 2013-06-13
// m.l.knichel@gsi.de
-// added cut modes 2000-2222 for cut studies
AliESDtrackCuts* CreatedNdPtTrackCuts(Int_t cutMode=1, Bool_t fieldOn = kTRUE, Bool_t hists = kTRUE)
TString tag = "TPC-only tracking (2011)";
}
-
+
+ // TPC multiplicity cuts (test 2013)
+ if (cutMode == 203)
+ {
+ // beta cuts (still under investigation)
+ //minNClustersTPC = 50;
+ Float_t minNCrossedRowsTPC = 80;
+ Float_t minRatioCrossedRowsOverFindableClustersTPC = 0.8;
+ Float_t maxFractionSharedTPCCluster = 0.4;
+ maxChi2PerClusterTPC = 4.0;
+ maxDCAtoVertexXY = 2.4; // cm
+ maxDCAtoVertexZ = 3.2; // cm
+ minPt=0.0;
+ maxPt=1.e10;
+
+ esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
+ esdTrackCuts->SetRequireTPCRefit(kFALSE);
+ esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
+ //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
+
+ esdTrackCuts->SetMinNCrossedRowsTPC(minNCrossedRowsTPC);
+ esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(minRatioCrossedRowsOverFindableClustersTPC);
+ esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
+ esdTrackCuts->SetMaxFractionSharedTPCClusters(maxFractionSharedTPCCluster);
+
+ esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
+ esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
+ esdTrackCuts->SetDCAToVertex2D(kTRUE);
+ esdTrackCuts->SetPtRange(minPt,maxPt);
+
+ TString tag = "TPC Multiplicity Cuts (2013)";
+ }
+
//
// systematic errors DCA cut studies
TString tag = "TPC+ITS combine tracking + DCAr(pt) (2011)";
}
+
+// TPC+ITS combine tracking + DCAr(pt) (2011)
+ if (cutMode == 222)
+ {
+ //Int_t minclsTPC=70;
+ Float_t minNCrossedRowsTPC = 120;
+ Float_t minRatioCrossedRowsOverFindableClustersTPC = 0.8;
+ Float_t maxFractionSharedTPCCluster = 0.4;
+ Double_t maxchi2perTPCcl=4.;
+ Double_t maxdcazITSTPC=2.0;
+
+ //
+ // TPC
+ //
+ esdTrackCuts->SetRequireTPCRefit(kTRUE);
+ esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
+
+ //esdTrackCuts->SetMinNClustersTPC(minclsTPC);
+ esdTrackCuts->SetMinNCrossedRowsTPC(minNCrossedRowsTPC);
+ esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(minRatioCrossedRowsOverFindableClustersTPC);
+ esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
+ esdTrackCuts->SetMaxFractionSharedTPCClusters(maxFractionSharedTPCCluster);
+ //
+ // ITS
+ //
+ esdTrackCuts->SetRequireITSRefit(kTRUE);
+ esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
+ esdTrackCuts->SetMaxChi2PerClusterITS(36.);
+ //
+ // primary selection
+ //
+ esdTrackCuts->SetDCAToVertex2D(kFALSE);
+ esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
+ esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
+
+ // DCArphi parametrization (LHC10c pass2)
+ // 7*(0.0026+0.0050/pt^1.01)
+ esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
+
+ // tpcc cut
+ esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36.);
+
+ TString tag = "TPC+ITS combine tracking + DCAr(pt) + Chi2TPCcc + Chi2ITS";
+ }
+
+
// TPC-tracks + SPD point + ITS refit + DCAr(pt) 4-sigma
if (cutMode == 75)
TString tag = "TPC refit + Kink rejection required - for cut studies";
}
-
+
+
// TPC+ITS combine tracking + DCAr(pt) (2011)
- // used for step-by-step cut studies!
- if ((cutMode >= 2000) && (cutMode <= 2222))
+ if ((cutMode >= 2000) && (cutMode <= 2100))
{
//Int_t minclsTPC=70;
Float_t minNCrossedRowsTPC = 120;
if (cutMode >= 2014) { esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36.); }
TString tag = "for cut/efficiency studies)";
- }
+ }
+
+ if ((cutMode >= 3000) && (cutMode <= 3100))
+ {
+ //Int_t minclsTPC=70;
+ Float_t minNCrossedRowsTPC = 120;
+ Float_t minRatioCrossedRowsOverFindableClustersTPC = 0.8;
+ Float_t maxFractionSharedTPCCluster = 0.4;
+ Double_t maxchi2perTPCcl=4.;
+ Double_t maxdcazITSTPC=2.0;
+ Double_t maxdaczTPC=3.0;
+ Double_t maxdcaxyTPC=3.0;
+
+ //
+ // TPC
+ //
+ if (cutMode >= 3001) { esdTrackCuts->SetRequireTPCRefit(kTRUE); }
+
+ if (cutMode >= 3002) { esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl); }
+ if (cutMode >= 3003) { esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(minRatioCrossedRowsOverFindableClustersTPC); }
+ if (cutMode >= 3004) { esdTrackCuts->SetMinNCrossedRowsTPC(minNCrossedRowsTPC); }
+ if (cutMode >= 3005) { esdTrackCuts->SetMaxFractionSharedTPCClusters(maxFractionSharedTPCCluster); }
+ if (cutMode >= 3006) { esdTrackCuts->SetMaxDCAToVertexZ(maxdaczTPC); }
+ if (cutMode >= 3007) { esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyTPC); }
+ //
+ // ITS
+ //
+ if (cutMode >= 3008) { esdTrackCuts->SetRequireITSRefit(kTRUE); }
+ if (cutMode >= 3009) { esdTrackCuts->SetMaxChi2PerClusterITS(36.); }
+ if (cutMode >= 3010) { esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny); }
+ //
+ // primary selection
+ //
+ esdTrackCuts->SetDCAToVertex2D(kFALSE);
+ esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
+ if (cutMode >= 3011) { esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC); }
+ // DCArphi parametrization (LHC10c pass2)
+ // 7*(0.0026+0.0050/pt^1.01)
+ if (cutMode >= 3012) { esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01"); }
+ if (cutMode >= 3013) { esdTrackCuts->SetAcceptKinkDaughters(kFALSE); }
+
+ if (cutMode >= 3014) { esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36.); }
+
+ TString tag = "for cut/efficiency studies (version 3)";
+ }
+ if ((cutMode >= 4000) && (cutMode <= 4400))
+ {
+ //
+ // TPC
+ //
+ esdTrackCuts->SetRequireTPCRefit(kTRUE);
+ esdTrackCuts->SetMinNCrossedRowsTPC(120);
+ esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
+ esdTrackCuts->SetMaxChi2PerClusterTPC(4);
+ esdTrackCuts->SetMaxFractionSharedTPCClusters(0.4);
+ esdTrackCuts->SetMaxDCAToVertexXY(3.0);
+ //
+ // ITS
+ //
+ esdTrackCuts->SetRequireITSRefit(kTRUE);
+ esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
+ esdTrackCuts->SetMaxChi2PerClusterITS(36.);
+ //
+ // primary selection
+ //
+ esdTrackCuts->SetDCAToVertex2D(kFALSE);
+ esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
+ esdTrackCuts->SetMaxDCAToVertexZ(2.0);
+ // 7*(0.0026+0.0050/pt^1.01)
+ esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
+ esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
+ esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36.);
+ //
+ // Swich Low/High for study of systematics
+ //
+ if(cutMode==4010){esdTrackCuts->SetMaxChi2PerClusterITS(25.);} // Low 1
+ if(cutMode==4011){esdTrackCuts->SetMaxChi2PerClusterITS(49.);} // High 2
+ if(cutMode==4020){esdTrackCuts->SetMaxChi2PerClusterTPC(3); } // Low 3
+ if(cutMode==4021){esdTrackCuts->SetMaxChi2PerClusterTPC(5); } // High 4
+ if(cutMode==4030){esdTrackCuts->SetMinNCrossedRowsTPC(100);} // Low 5
+ if(cutMode==4031){esdTrackCuts->SetMinNCrossedRowsTPC(130);} // High 6
+ if(cutMode==4040){esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.7);} // Low 7
+ if(cutMode==4041){esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.9);} // High 8
+ if(cutMode==4050){esdTrackCuts->SetMaxFractionSharedTPCClusters(0.2);} // Low 9
+ if(cutMode==4051){esdTrackCuts->SetMaxFractionSharedTPCClusters(1.0);} // High 10
+ if(cutMode==4060){esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(25.); } // LoW 11
+ if(cutMode==4061){esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(49.); } // High 12
+ if(cutMode==4070){esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0104+0.0200/pt^1.01");} // Low 13
+ if(cutMode==4071){esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0260+0.0500/pt^1.01");} // High 14
+ if(cutMode==4080){esdTrackCuts->SetMaxDCAToVertexZ(1.0); } // Low 15
+ if(cutMode==4081){esdTrackCuts->SetMaxDCAToVertexZ(5.0); } // High 16
+ if(cutMode==4090){esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kOff); }// 17
+
+ TString tag = "Study of systematic uncertanties JGronef";
+}