]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG/EMCAL/macros/AddTaskEmcalAodTrackFilter.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEmcalAodTrackFilter.C
index c268e293fc7a531a4d1ec3d1fe08746ced78883b..edb94536d4d902e1f2b60ba20007b629bc67b66c 100644 (file)
@@ -1,5 +1,3 @@
-// $Id$
-
 AliEmcalAodTrackFilterTask* AddTaskEmcalAodTrackFilter(
   const char *name         = "FilterTracks",
   const char *inname       = "tracks",
@@ -25,8 +23,8 @@ AliEmcalAodTrackFilterTask* AddTaskEmcalAodTrackFilter(
   }
 
   TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
-  if (inputDataType != "AOD")) {
-    ::Error("AddTaskAodTrackFilter", "This task works only on AOD analysis");
+  if (inputDataType != "AOD") {
+    ::Info("AddTaskEmcalAodTpcTrack", "This task is only needed for AOD analysis. No task added.");
     return NULL;
   }
   
@@ -38,26 +36,39 @@ AliEmcalAodTrackFilterTask* AddTaskEmcalAodTrackFilter(
   aodTask->SetTracksOutName(name);
   aodTask->SetTracksInName(inname);
   aodTask->SetMC(kFALSE);
-  Bool_t doProp = kFALSE;
+
+  Bool_t includeNoITS  = kFALSE;
+  Bool_t doProp        = kFALSE; //force propagation of all tracks to EMCal
+  Bool_t doAttemptProp = kTRUE;  //only propagate the tracks which were not propagated during AOD filtering
+  Bool_t isMC          = kFALSE;
 
   TString runPeriod(runperiod);
-  Bool_t includeNoITS = kFALSE;
   runPeriod.ToLower();
-  if (runPeriod == "lhc11h" || runPeriod == "lhc13b" || runPeriod == "lhc13c" || 
-      runPeriod == "lhc13d" || runPeriod == "lhc13e" || runPeriod == "lhc13f" || 
-      runPeriod == "lhc13g" || runPeriod == "lhc12g" || runPeriod == "lhc10h") {
+  if (runPeriod == "lhc10d" || runPeriod == "lhc10e" || runPeriod == "lhc10h" || 
+      runPeriod == "lhc11h" || runPeriod == "lhc12a" || runPeriod == "lhc12b" ||
+      runPeriod == "lhc12c" || runPeriod == "lhc12d" || runPeriod == "lhc12e" ||
+      runPeriod == "lhc12f" || runPeriod == "lhc12g" || runPeriod == "lhc12h" ||
+      runPeriod == "lhc12i" || runPeriod == "lhc13b" || runPeriod == "lhc13c" ||
+      runPeriod == "lhc13d" || runPeriod == "lhc13e" || runPeriod == "lhc13f" ||
+      runPeriod == "lhc13g"
+      ) {
     aodTask->SetAODfilterBits(256,512); // hybrid tracks
-    if(runPeriod == "lhc10h")
+    if (runPeriod == "lhc10d" || runPeriod == "lhc10e" || runPeriod == "lhc10h")
       includeNoITS = kTRUE;
-  } else if (runPeriod == "lhc12a15e" || runPeriod == "lhc13b4" || runPeriod == "lhc13b4_fix" || runPeriod == "lhc12a15f") {
+  } else if (runPeriod == "lhc12a15e"   || runPeriod.Contains("lhc12a17") || runPeriod == "lhc13b4" ||
+            runPeriod == "lhc13b4_fix" || runPeriod == "lhc13b4_plus"    || runPeriod.Contains("lhc14a1") || runPeriod.Contains("lhc13b2_efix")
+            ) {
     aodTask->SetAODfilterBits(256,512); // hybrid tracks
-    aodTask->SetMC(kTRUE);
+    isMC = kTRUE;
   } else if (runPeriod == "lhc11a" || runPeriod == "lhc10hold") {
-    aodTask->SetAODfilterBits(256,16); // hybrid tracks for LHC11a
+    aodTask->SetAODfilterBits(256,16); // hybrid tracks
     includeNoITS = kTRUE;
-  } else if (runPeriod.Contains("lhc12a15a")) {
-    aodTask->SetAODfilterBits(256,16); // hybrid tracks for LHC12a15a
-    aodTask->SetMC(kTRUE);
+  } else if(runPeriod == "lhc11d") {
+    aodTask->SetAODfilterBits(256,16); // hybrid tracks (MV: not 100% sure)
+    includeNoITS = kFALSE;
+  } else if (runPeriod.Contains("lhc12a15a") || runPeriod == "lhc12a15f" || runPeriod == "lhc12a15g") {
+    aodTask->SetAODfilterBits(256,16); // hybrid tracks
+    isMC = kTRUE;
     includeNoITS = kTRUE;
   } else if (runPeriod.Contains(":")) {
     TObjArray *arr = runPeriod.Tokenize(":");
@@ -71,6 +82,10 @@ AliEmcalAodTrackFilterTask* AddTaskEmcalAodTrackFilter(
        includeNoITS=kTRUE;
       if (arg3.Contains("doProp=kTRUE"))
        doProp=kTRUE;
+      if (arg3.Contains("doAttemptProp=kFALSE"))
+       doAttemptProp=kFALSE;
+      if (arg3.Contains("isMC=kTRUE"))
+       isMC = kTRUE;
     }
     aodTask->SetAODfilterBits(arg1.Atoi(),arg2.Atoi());
     delete arr;
@@ -80,6 +95,8 @@ AliEmcalAodTrackFilterTask* AddTaskEmcalAodTrackFilter(
   }
   aodTask->SetIncludeNoITS(includeNoITS);
   aodTask->SetDoPropagation(doProp);
+  aodTask->SetAttemptProp(doAttemptProp);
+  aodTask->SetMC(isMC);
 
   //-------------------------------------------------------
   // Final settings, pass to manager and set the containers
@@ -87,8 +104,8 @@ AliEmcalAodTrackFilterTask* AddTaskEmcalAodTrackFilter(
   mgr->AddTask(aodTask);
   
   // Create containers for input/output
-  AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
-  mgr->ConnectInput  (aodTask, 0,  cinput1 );
+  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
+  mgr->ConnectInput(aodTask, 0,  cinput1 );
   
   return aodTask;
 }