]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGDQ/dielectron/macrosLMEE/AddTask_cbaumann_LMEEPbPb2011.C
add robust defaults
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_cbaumann_LMEEPbPb2011.C
index 0c3f03b1e481c36cf3af6a3c6c7fc1a6c67e5f38..fc9820f01e3bba8192cf1c171daaa27e5fba0488 100644 (file)
@@ -1,31 +1,39 @@
-AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011(Bool_t runRejection=kFALSE, Bool_t setMC=kFALSE){
+AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011(Bool_t runRejection=kFALSE, Bool_t setMC=kFALSE,Bool_t enableCF=kFALSE){
   //get the current analysis manager
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
-       Error("AddTask_cbaumann_LMEEPbPb2011", "No analysis manager found.");
-       return 0;
+    Error("AddTask_cbaumann_LMEEPbPb2011", "No analysis manager found.");
+    return 0;
   }
 
-  //set config file name
-  TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/ConfigLMEEPbPb2011.C");
+  //create config File names: TRAIN_ROOT is for running on GSI train, 
+  // ALICE_ROOT for CERN Lego trains
+  TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
+  TString trainRoot=gSystem->Getenv("TRAIN_ROOT");                                                                            
+  if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
+  TString configFile("ConfigLMEEPbPb2011.C");
+  TString configLMEECutLib("LMEECutLib.C");
 
-  //AOD Usage not yet testes/avialable-------------------------------------
+  TString configFilePath(configBasePath+configFile);
+  TString configLMEECutLib(configBasePath+configLMEECutLib);
 
+  //AOD Usage currently tested with separate task, to be merged
   if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
-       ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
-//     configFile="$TRAIN_ROOT/util/dielectron/dielectron/macros/ConfigLMEEPbPb2011AOD.C";     
-       
+    ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
   }
 
   //Do we have an MC handler?
-  //Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
   Bool_t hasMC=setMC;
+  if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
+    hasMC=kTRUE;
 
-//  create task and add it to the manager
-//     gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
 
-       gROOT->LoadMacro("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/LMEECutLib.C");
-       gROOT->LoadMacro(configFile.Data());
+
+  if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
+    gROOT->LoadMacro(configFilePath.Data());
+  if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
+    gROOT->LoadMacro(configLMEECutLibPath.Data());
+
   LMEECutLib* cutlib = new LMEECutLib();
   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
   if (!hasMC){ task->UsePhysicsSelection();
@@ -36,78 +44,60 @@ AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011(Bool_t runRejection=kFALSE, Bool_
   //load dielectron configuration file
 
   //add dielectron analysis with different cuts to the task
-/*
-  AliDielectron *lowmass1=ConfigLMEEPbPb2011(1,hasMC);
-  task->AddDielectron(lowmass1);
-  printf("add: %s\n",lowmass1->GetName());
-
-  AliDielectron *lowmass2=ConfigLMEEPbPb2011(2,hasMC);
-  task->AddDielectron(lowmass2);
-  printf("add: %s\n",lowmass2->GetName());
-*/
-  /*
-  AliDielectron *lowmass3=ConfigLMEEPbPb2011(3,hasMC);
-  task->AddDielectron(lowmass3);
-  printf("add: %s\n",lowmass3->GetName());
-*/
-if (runRejection) {
-  AliDielectron *lowmass4=ConfigLMEEPbPb2011(4,hasMC);
-  task->AddDielectron(lowmass4);
-  printf("add: %s\n",lowmass4->GetName());
-/*
-  AliDielectron *lowmass8=ConfigLMEEPbPb2011(8,hasMC);
-  task->AddDielectron(lowmass8);
-  printf("add: %s\n",lowmass8->GetName())
-*/
-//  AliDielectron *lowmass5=ConfigLMEEPbPb2011(5,hasMC);
-//  task->AddDielectron(lowmass5);
-//  printf("add: %s\n",lowmass5->GetName());
-}
-else {
-  AliDielectron *lowmass3=ConfigLMEEPbPb2011(3,hasMC);
-  task->AddDielectron(lowmass3);
-  printf("add: %s\n",lowmass3->GetName())
-AliDielectron *lowmass1=ConfigLMEEPbPb2011(1,hasMC);
-  task->AddDielectron(lowmass1);
-  printf("add: %s\n",lowmass1->GetName())
-  AliDielectron *lowmass7=ConfigLMEEPbPb2011(7,hasMC);
-  task->AddDielectron(lowmass7);
-  printf("add: %s\n",lowmass7->GetName())
-}
+  if (runRejection) {
+
+    AliDielectron *lowmass4=ConfigLMEEPbPb2011(4,hasMC,enableCF);
+    task->AddDielectron(lowmass4);
+    printf("add: %s\n",lowmass4->GetName());
+  }
+  else {
+
+    AliDielectron *lowmass3=ConfigLMEEPbPb2011(3,hasMC,enableCF);
+    task->AddDielectron(lowmass3);
+    printf("add: %s\n",lowmass3->GetName())
+      AliDielectron *lowmass1=ConfigLMEEPbPb2011(1,hasMC,enableCF);
+    task->AddDielectron(lowmass1);
+    printf("add: %s\n",lowmass1->GetName())
+      AliDielectron *lowmass7=ConfigLMEEPbPb2011(7,hasMC,enableCF);
+    task->AddDielectron(lowmass7);
+    printf("add: %s\n",lowmass7->GetName())
+  }
 
   mgr->AddTask(task);
 
   //create output container
   AliAnalysisDataContainer *coutput1 =
-       mgr->CreateContainer("cbaumann_LMEEPbPb2011_tree",
-               TTree::Class(),
-               AliAnalysisManager::kExchangeContainer,
-               "cbaumann_LMEEPbPb2011_default.root");
+    mgr->CreateContainer("cbaumann_LMEEPbPb2011_tree",
+       TTree::Class(),
+       AliAnalysisManager::kExchangeContainer,
+       "cbaumann_LMEEPbPb2011_default.root");
 
   AliAnalysisDataContainer *cOutputHist1 =
-       mgr->CreateContainer("cbaumann_LMEEPbPb2011_out",
-               TList::Class(),
-               AliAnalysisManager::kOutputContainer,
-               "cbaumann_LMEEPbPb2011_out.root");
-//  if (hasMC) {
-  AliAnalysisDataContainer *cOutputHist2 =
-       mgr->CreateContainer("cbaumann_LMEEPbPb2011_CF",
-               TList::Class(),
-               AliAnalysisManager::kOutputContainer,
-               "cbaumann_LMEEPbPb2011_out.root");
-
-//       }
+    mgr->CreateContainer("cbaumann_LMEEPbPb2011_out",
+       TList::Class(),
+       AliAnalysisManager::kOutputContainer,
+       "cbaumann_LMEEPbPb2011_out.root");
+  if (enableCF) {
+    AliAnalysisDataContainer *cOutputHist2 =
+      mgr->CreateContainer("cbaumann_LMEEPbPb2011_CF",
+         TList::Class(),
+         AliAnalysisManager::kOutputContainer,
+         "cbaumann_LMEEPbPb2011_out.root");
+
+  }
   AliAnalysisDataContainer *cOutputHist3 =
-       mgr->CreateContainer("cbaumann_EventStatPbPb2011",
-               TH1D::Class(),
-               AliAnalysisManager::kOutputContainer,
-               "cbaumann_LMEEPbPb2011_out.root");
+    mgr->CreateContainer("cbaumann_EventStatPbPb2011",
+       TH1D::Class(),
+       AliAnalysisManager::kOutputContainer,
+       "cbaumann_LMEEPbPb2011_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;