]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGDQ/dielectron/macrosLMEE/AddTask_cbaumann_LMEEpp2010.C
add robust defaults
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_cbaumann_LMEEpp2010.C
index 4628a067fc6408f9acec3e0c109f3e9e68094fa2..9549ce4786c285bcb805dd8b01b678b35d3a324e 100644 (file)
@@ -1,9 +1,9 @@
-AliAnalysisTask *AddTask_cbaumann_LMEEpp2010(Bool_t runTwo=kFALSE){
+AliAnalysisTask *AddTask_cbaumann_LMEEpp2010(Bool_t runTwo=kFALSE, Bool_t hasMC=kFALSE, Bool_t enableCF=kFALSE){
   //get the current analysis manager
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
-       Error("AddTask_cbaumann_LMEEpp2010", "No analysis manager found.");
-       return 0;
+    Error("AddTask_cbaumann_LMEEpp2010", "No analysis manager found.");
+    return 0;
   }
 
   //set config file name
@@ -12,71 +12,74 @@ AliAnalysisTask *AddTask_cbaumann_LMEEpp2010(Bool_t runTwo=kFALSE){
   //AOD Usage not yet testes/avialable-------------------------------------
 
   if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
-       ::Info("AddTaskLMEEpp2010", "no dedicated AOD configuration");
-//     configFile="$TRAIN_ROOT/util/dielectron/dielectron/macros/ConfigLMEEpp2010AOD.C";       
-       
+    ::Info("AddTaskLMEEpp2010", "no dedicated AOD configuration");
+    // configFile="$TRAIN_ROOT/util/dielectron/dielectron/macros/ConfigLMEEpp2010AOD.C";       
+
   }
 
-  //Do we have an MC handler?
-  Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
+  //Do we have an MC handler? //Child protected, if auto-recognition fails
+  if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
+    hasMC=kTRUE;
 
 
-//  create task and add it to the manager
+  //  create task and add it to the manager
 
-   gROOT->LoadMacro("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/LMEECutLib.C");
+  gROOT->LoadMacro("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/LMEECutLib.C");
   gROOT->LoadMacro(configFile.Data());
   LMEECutLib* cutlib = new LMEECutLib();
   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
   if (!hasMC) task->UsePhysicsSelection();
   task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kpp2010TPCandTOF)); //
-       
+
 
   //load dielectron configuration file
 
   //add dielectron analysis with different cuts to the task
-  
-  AliDielectron *lowmass1=ConfigLMEEpp2010(1,hasMC);
+
+  AliDielectron *lowmass1=ConfigLMEEpp2010(1,hasMC,enableCF);
   task->AddDielectron(lowmass1);
   printf("add: %s\n",lowmass1->GetName());
-if (runTwo) {
-  AliDielectron *lowmass2=ConfigLMEEpp2010(2,hasMC);
-  task->AddDielectron(lowmass2);
-  printf("add: %s\n",lowmass2->GetName());
-}
-  
+
+  if (runTwo) {
+    AliDielectron *lowmass2=ConfigLMEEpp2010(2,hasMC,enableCF);
+    task->AddDielectron(lowmass2);
+    printf("add: %s\n",lowmass2->GetName());
+  }
+
   mgr->AddTask(task);
 
   //create output container
   AliAnalysisDataContainer *coutput1 =
-       mgr->CreateContainer("cbaumann_LMEEpp2010_tree",
-               TTree::Class(),
-               AliAnalysisManager::kExchangeContainer,
-               "cbaumann_LMEEpp2010_default.root");
+    mgr->CreateContainer("cbaumann_LMEEpp2010_tree",
+       TTree::Class(),
+       AliAnalysisManager::kExchangeContainer,
+       "cbaumann_LMEEpp2010_default.root");
 
   AliAnalysisDataContainer *cOutputHist1 =
-       mgr->CreateContainer("cbaumann_LMEEpp2010_out",
-               TList::Class(),
-               AliAnalysisManager::kOutputContainer,
-               "cbaumann_LMEEpp2010_out.root");
-
-  AliAnalysisDataContainer *cOutputHist2 =
-       mgr->CreateContainer("cbaumann_LMEEpp2010_CF",
-               TList::Class(),
-               AliAnalysisManager::kOutputContainer,
-               "cbaumann_LMEEpp2010_out.root");
-
+    mgr->CreateContainer("cbaumann_LMEEpp2010_out",
+       TList::Class(),
+       AliAnalysisManager::kOutputContainer,
+       "cbaumann_LMEEpp2010_out.root");
+  if (enableCF) {
+    AliAnalysisDataContainer *cOutputHist2 =
+      mgr->CreateContainer("cbaumann_LMEEpp2010_CF",
+         TList::Class(),
+         AliAnalysisManager::kOutputContainer,
+         "cbaumann_LMEEpp2010_out.root");
+  }
   AliAnalysisDataContainer *cOutputHist3 =
-       mgr->CreateContainer("cbaumann_EventStatPbPb2011",
-               TH1D::Class(),
-               AliAnalysisManager::kOutputContainer,
-               "cbaumann_LMEEpp2010_out.root");
+    mgr->CreateContainer("cbaumann_EventStatPbPb2011",
+       TH1D::Class(),
+       AliAnalysisManager::kOutputContainer,
+       "cbaumann_LMEEpp2010_out.root");
 
 
   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
   mgr->ConnectOutput(task, 0, coutput1 );
   mgr->ConnectOutput(task, 1, cOutputHist1);
-  mgr->ConnectOutput(task, 2, cOutputHist2);
+  if (enableCF) {
+    mgr->ConnectOutput(task, 2, cOutputHist2);
+  }  
   mgr->ConnectOutput(task, 3, cOutputHist3);
 
   return task;