]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/macros/AddTaskJetRespPtHard.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetRespPtHard.C
index 4adf5156eef5bbbcad1d687547696150da1f07b1..f24a6ad7cab4d138bc99ccbb328aacdf76e2021d 100644 (file)
@@ -1,37 +1,83 @@
 // $Id$
 
-AliJetResponseMaker* AddTaskJetRespPtHard(const char *ntracks            = "Tracks",
-                                         const char *nclusters          = "CaloClusters",
-                                         const char *njets              = "Jets",
-                                         const char *nrho               = "Rho",
-                                         const char *nmctracks          = "MCParticles",
-                                         const char *nmcjets            = "MCJets",
-                                         Double_t    jetradius          = 0.2,
-                                         Double_t    jetptcut           = 1,
-                                         Double_t    jetareacut         = 0.557,
-                                         Double_t    jetBiasTrack       = 5,
-                                         Double_t    jetBiasClus        = 5,
-                                         Double_t    maxDistance        = 0.25,
-                                         UInt_t      type               = AliAnalysisTaskEmcal::kTPC,
-                                         Int_t       minPtBin           = 1, 
-                                         Int_t       maxPtBin           = 10,
-                                         Bool_t      domatch            = kTRUE,
-                                         Bool_t      biggerMatrix       = kFALSE,
-                                         const char *taskname           = "AliJetResponseMaker"
-                                         
+AliJetResponseMaker* AddTaskJetRespPtHard(  
+  const char *ntracks1           = "Tracks",
+  const char *nclusters1         = "CaloClusters",
+  const char *njets1             = "Jets",
+  const char *nrho1              = "Rho",
+  Double_t    jetradius1         = 0.2,
+  const char *ntracks2           = "MCParticles",
+  const char *nclusters2         = "",
+  const char *njets2             = "MCJets",
+  const char *nrho2              = "",
+  Double_t    jetradius2         = 0.2,
+  Double_t    jetptcut           = 1,
+  Double_t    jetareacut         = 0.557,
+  Double_t    jetBias            = 5,
+  Int_t       biasType           = 0,   //  0 = charged, 1 = neutral, 2 = both
+  UInt_t      matching           = AliJetResponseMaker::kGeometrical,
+  Double_t    maxDistance1       = 0.25,
+  Double_t    maxDistance2       = 0.25,
+  const char *cutType            = "TPC",
+  Int_t       minPtHardBin       = -999,
+  Int_t       maxPtHardBin       = -999,
+  Int_t       ncent              = 0,
+  const char *taskname           = "AliJetResponseMaker",
+  Bool_t      biggerMatrix       = kFALSE
 )
-{  
-  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskJetResponseMaker.C");
-  
-  AliJetResponseMaker *jetTask = new AliJetResponseMaker[maxPtBin - minPtBin + 1];
-
-  for (Int_t i = minPtBin; i <= maxPtBin; i++) {
-    AddTaskJetResponseMaker(ntracks, nclusters, njets, nrho, nmctracks, nmcjets,
-                           jetradius, jetptcut, jetareacut, jetBiasTrack, 
-                           jetBiasClus, maxDistance, type, i, taskname, jetTask + i - minPtBin);
-    jetTask[i - minPtBin].SetDoMatching(domatch);
-    if (biggerMatrix) 
-      jetTask[i - minPtBin].SetHistoBins(1000,0,500);
+{
+  TCollection *funct = gROOT->GetListOfGlobalFunctions();
+  if (!funct->Contains("AddTaskJetResponseMaker"))
+    gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskJetResponseMaker.C");
+  else
+    Printf("Function AddTaskJetResponseMaker already loaded, will not load again...");
+
+  Double_t centRanges[5] = {0,10,30,50,100};
+  if (ncent == 0) {
+    ncent = 1;
+    centRanges[0] = -999;
+    centRanges[1] = -999;
+  }
+
+  if (ncent > 4)
+    ncent = 4;
+
+  Int_t ntasks = (maxPtHardBin - minPtHardBin + 1) * ncent;
+
+  if (jetBias > 5)
+    ntasks *= 3;
+  else if (jetBias > 0)
+    ntasks *= 2;
+
+  AliJetResponseMaker *jetTask = new AliJetResponseMaker[ntasks];
+
+  Int_t itask = 0;
+
+  for (Int_t i = minPtHardBin; i <= maxPtHardBin; i++) {
+    for (Int_t j = 0; j < ncent; j++) {
+      Printf("Adding AliJetResponseMaker n. %d", itask);
+      AddTaskJetResponseMaker(ntracks1, nclusters1, njets1, nrho1, jetradius1, ntracks2, nclusters2, njets2, nrho2, jetradius2,
+                             jetptcut, jetareacut, 0, biasType,
+                             matching, maxDistance1, maxDistance2, cutType, i, centRanges[j], centRanges[j+1], taskname, biggerMatrix, jetTask + itask);
+      itask++;
+
+      if (jetBias > 5) {
+       Printf("Adding AliJetResponseMaker n. %d", itask);
+       AddTaskJetResponseMaker(ntracks1, nclusters1, njets1, nrho1, jetradius1, ntracks2, nclusters2, njets2, nrho2, jetradius2,
+                               jetptcut, jetareacut, 5, biasType,
+                               0, 1, 1, cutType, i, centRanges[j], centRanges[j+1], taskname, biggerMatrix, jetTask + itask);
+       itask++;
+      }
+
+      if (jetBias > 0) {
+       Printf("Adding AliJetResponseMaker n. %d", itask);
+       AddTaskJetResponseMaker(ntracks1, nclusters1, njets1, nrho1, jetradius1, ntracks2, nclusters2, njets2, nrho2, jetradius2,
+                               jetptcut, jetareacut, jetBias, biasType,
+                               0, 1, 1, cutType, i, centRanges[j], centRanges[j+1], taskname, biggerMatrix, jetTask + itask);
+       itask++;
+      }
+    }
   }
   
   return jetTask;