fExcludeElectronsInMC(kFALSE),\r
fUseMCPdgCode(kFALSE),\r
fPDGCodeToBeAnalyzed(-1),\r
- fEventClass("EventPlane") \r
+ fEventClass("EventPlane"), \r
+ fCustomBinning("") \r
{\r
// Constructor\r
// Define input and output slots here\r
fHistRefTracks->GetXaxis()->SetBinLabel(i,gRefTrackName[i-1].Data());\r
fList->Add(fHistRefTracks);\r
\r
+ // Balance function histograms\r
+ // Initialize histograms if not done yet (including the custom binning)\r
+ if(!fBalance->GetHistNp()){\r
+ AliInfo("Histograms not yet initialized! --> Will be done now");\r
+ fBalance->SetCustomBinning(fCustomBinning);\r
+ fBalance->InitHistograms();\r
+ }\r
+\r
+ if(fRunShuffling) {\r
+ if(!fShuffledBalance->GetHistNp()) {\r
+ AliInfo("Histograms (shuffling) not yet initialized! --> Will be done now");\r
+ fShuffledBalance->SetCustomBinning(fCustomBinning);\r
+ fShuffledBalance->InitHistograms();\r
+ }\r
+ }\r
+\r
+ if(fRunMixing) {\r
+ if(!fMixedBalance->GetHistNp()) {\r
+ AliInfo("Histograms (mixing) not yet initialized! --> Will be done now");\r
+ fMixedBalance->SetCustomBinning(fCustomBinning);\r
+ fMixedBalance->InitHistograms();\r
+ }\r
+ }\r
+\r
// QA histograms for different cuts\r
fList->Add(fBalance->GetQAHistHBTbefore());\r
fList->Add(fBalance->GetQAHistHBTafter());\r
fList->Add(fBalance->GetQAHistQbefore());\r
fList->Add(fBalance->GetQAHistQafter());\r
\r
- // Balance function histograms\r
- // Initialize histograms if not done yet\r
- if(!fBalance->GetHistNp()){\r
- AliWarning("Histograms not yet initialized! --> Will be done now");\r
- AliWarning("--> Add 'gBalance->InitHistograms()' in your configBalanceFunction");\r
- fBalance->InitHistograms();\r
- }\r
-\r
- if(fRunShuffling) {\r
- if(!fShuffledBalance->GetHistNp()) {\r
- AliWarning("Histograms (shuffling) not yet initialized! --> Will be done now");\r
- AliWarning("--> Add 'gBalance->InitHistograms()' in your configBalanceFunction");\r
- fShuffledBalance->InitHistograms();\r
- }\r
- }\r
-\r
//for(Int_t a = 0; a < ANALYSIS_TYPES; a++){\r
fListBF->Add(fBalance->GetHistNp());\r
fListBF->Add(fBalance->GetHistNn());\r
Int_t poolsize = 1000; // Maximum number of events, ignored in the present implemented of AliEventPoolManager\r
\r
// centrality bins\r
- //Double_t centralityBins[] = {0.,1.,2.,3.,4.,5.,7.,10.,20.,30.,40.,50.,60.,70.,80.,100.}; // SHOULD BE DEDUCED FROM CREATED ALITHN!!!\r
- Double_t centralityBins[] = {0.,1.,2.,3.,4.,5.,7.,10.,15.,20.,25.,30.,35.,40.,45.,50.,55.,60.,65.,70.,75.,80.};\r
- Double_t* centbins = centralityBins;\r
- Int_t nCentralityBins = sizeof(centralityBins) / sizeof(Double_t) - 1;\r
-\r
+ Double_t* centbins;\r
+ Int_t nCentralityBins;\r
+ if(fBalance->IsUseVertexBinning()){\r
+ centbins = fBalance->GetBinning(fBalance->GetBinningString(), "centralityVertex", nCentralityBins);\r
+ }\r
+ else{\r
+ centbins = fBalance->GetBinning(fBalance->GetBinningString(), "centrality", nCentralityBins);\r
+ }\r
+ \r
// multiplicity bins\r
- Double_t multiplicityBins[] = {0,10,20,30,40,50,60,70,80,100,100000}; // SHOULD BE DEDUCED FROM CREATED ALITHN!!!\r
- Double_t* multbins = multiplicityBins;\r
- Int_t nMultiplicityBins = sizeof(multiplicityBins) / sizeof(Double_t) - 1;\r
+ Double_t* multbins;\r
+ Int_t nMultiplicityBins;\r
+ multbins = fBalance->GetBinning(fBalance->GetBinningString(), "multiplicity", nMultiplicityBins);\r
\r
// Zvtx bins\r
- Double_t vertexBins[] = {-10., -7., -5., -3., -1., 1., 3., 5., 7., 10.}; // SHOULD BE DEDUCED FROM CREATED ALITHN!!!\r
- Double_t* vtxbins = vertexBins;\r
- Int_t nVertexBins = sizeof(vertexBins) / sizeof(Double_t) - 1;\r
- \r
+ Double_t* vtxbins; \r
+ Int_t nVertexBins;\r
+ if(fBalance->IsUseVertexBinning()){\r
+ vtxbins = fBalance->GetBinning(fBalance->GetBinningString(), "vertexVertex", nVertexBins);\r
+ }\r
+ else{\r
+ vtxbins = fBalance->GetBinning(fBalance->GetBinningString(), "vertex", nVertexBins);\r
+ }\r
+\r
// Event plane angle (Psi) bins\r
- Double_t psiBins[] = {0.,45.,135.,215.,305.,360.}; // SHOULD BE DEDUCED FROM CREATED ALITHN!!!\r
- Double_t* psibins = psiBins;\r
- Int_t nPsiBins = sizeof(psiBins) / sizeof(Double_t) - 1;\r
+ Double_t* psibins;\r
+ Int_t nPsiBins; \r
+ psibins = fBalance->GetBinning(fBalance->GetBinningString(), "eventPlane", nPsiBins);\r
+\r
\r
// run the event mixing also in bins of event plane (statistics!)\r
if(fRunMixingEventPlane){\r
if(fRunMixing) PostData(4, fListBFM);\r
if(fUsePID || fElectronRejection) PostData(5, fHistListPIDQA); //PID\r
\r
+ AliInfo("Finished setting up the Output");\r
+\r
TH1::AddDirectory(oldStatus);\r
}\r
\r