A better way to specify the Nch axis for the MultDists task.
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AddTaskForwardMultDists.C
index 44de299e91944e2811006dbadcfaa288274c3d2b..d1398298d05579ec49a5f29072a574698ee26356 100644 (file)
  *
  * @ingroup pwglf_forward_dndeta
  */
+
 AliAnalysisTask*
 AddTaskForwardMultDists(const char* trig      = "V0AND", 
                        Double_t    vzMin     = -4, 
                        Double_t    vzMax     = +4,
-                       UShort_t    maxN      = 150,
-                       UShort_t    nDiv      = 1,
                        Bool_t      usePhiAcc = true,
                        Bool_t      useAsymm  = false)
 {
@@ -54,26 +53,76 @@ AddTaskForwardMultDists(const char* trig      = "V0AND",
   task->SetIpZRange(vzMin, vzMax);
   // Set the trigger mask to use (INEL,INEL>0,NSD)
   task->SetTriggerMask(trig);
-  // Set the maximum number of charged particles
-  task->SetMaxN(maxN);
-  // Set number of divisions per particle number 
-  task->SetNDivisions(nDiv);
   // Set whether to use stored phi acceptance 
   task->SetUsePhiAcc(usePhiAcc);
   // add the task 
   mgr->AddTask(task);
 
+  // Variable size axis objects
+  // for |eta|<0.5 from CMD
+  AliForwardMultDists::BinSpec b05(-0.5, 0.5, -0.5);
+  b05.Push(21, 1);
+  b05.Push(1, 3); 
+  b05.Push(1, 5);
+  b05.Push(3, 5); // <-- Extra 
+
+  // for |eta|<0.5 from ALICE
+  AliForwardMultDists::BinSpec a05(-0.5, 0.5, -0.5);
+  a05.Push(21, 1);
+  a05.Push(3, 2);
+
+  // For |eta|<1 from CMS 
+  AliForwardMultDists::BinSpec b10(-1.0, 1.0, -0.5);
+  b10.Push(35, 1);
+  b10.Push(1, 3);
+  b10.Push(4, 5);
+  b10.Push(2, 5); // <-- Extra 
+
+  // For |eta|<1 from ALICE 
+  AliForwardMultDists::BinSpec a10(-1.0, 1.0, -0.5);
+  a10.Push(41, 1);
+  a10.Push(1,  2);
+
+  // For |eta|<1.3 from ALICE 
+  AliForwardMultDists::BinSpec a13(-1.3, 1.3, -0.5);
+  a13.Push(41, 1);
+  a13.Push(7,  2);
+
+  // For |eta|<1.5 from CMS 
+  AliForwardMultDists::BinSpec b15(-1.5, 1.5, -0.5);
+  b15.Push(46, 1);
+  b15.Push(1,  2);
+  b15.Push(1,  3); 
+  b15.Push(4,  5);
+  b15.Push(4,  5); // <-- Extra
+
+  // for |eta|<2.0 from CMS 
+  AliForwardMultDists::BinSpec b20(-2.0, 2.0, -0.5);
+  b20.Push(62, 1);
+  b20.Push(2,  2);
+  b20.Push(1,  4);
+  b20.Push(3,  10);
+  b20.Push(2,  10); // <-- Extra
+
+  // for |eta|<2 from CMS 
+  AliForwardMultDists::BinSpec b24(-2.4, 2.4, -0.5);
+  b24.Push(57, 1);
+  b24.Push(1,  2);
+  b24.Push(1,  3); 
+  b24.Push(3,  10);
+  b24.Push(4,  10); // <-- Extra
+  
   // Add bins 
-  Double_t limits[] = { 1, 1.5, 2, 3, 0 };
-  Double_t* plimit  = limits;
-  while (*plimit) {
-    Double_t eta = *plimit;
-    task->AddBin(-eta, +eta);
+  AliForwardMultDists::BinSpec*  bs[] = { &b05, &b10, &b15, &b20, &b24, 0 };
+  AliForwardMultDists::BinSpec** pb   = bs;
+  while (*pb) {
+    AliForwardMultDists::BinSpec* b = *pb;
+    task->AddBin(*b);
     if (useAsymm) { 
-      task->AddBin(-eta, 0);
-      task->AddBin(0,    +eta);
+      task->AddBin(b->fEtaMin, 0,          b->Axis());
+      task->AddBin(0,          b->fEtaMax, b->Axis());
     }
-    plimit++;
+    pb++;
   }
 
   // --- create containers for input/output --------------------------