]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGCF/EBYE/BalanceFunctions/AliAnalysisTaskBFPsi.cxx
Option for customized binning (as in AliUEHist), EventMixing binning now derived...
[u/mrichter/AliRoot.git] / PWGCF / EBYE / BalanceFunctions / AliAnalysisTaskBFPsi.cxx
index 4e3a0c58f87932bc434f1a3da99f2cb0fb664d16..6503fa522ca8a4b17db9705ef76387ed3c40ff66 100755 (executable)
@@ -172,7 +172,8 @@ AliAnalysisTaskBFPsi::AliAnalysisTaskBFPsi(const char *name)
   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
@@ -380,6 +381,30 @@ void AliAnalysisTaskBFPsi::UserCreateOutputObjects() {
     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
@@ -393,22 +418,6 @@ void AliAnalysisTaskBFPsi::UserCreateOutputObjects() {
   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
@@ -443,25 +452,35 @@ void AliAnalysisTaskBFPsi::UserCreateOutputObjects() {
     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
@@ -556,6 +575,8 @@ void AliAnalysisTaskBFPsi::UserCreateOutputObjects() {
   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