1 AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011AOD(Char_t* outputFileName="LMEEoutput.root",
2 Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE, Bool_t rejOnly=kTRUE,
3 Int_t triggerNames=(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral),Int_t collCands= AliVEvent::kAny) {
4 Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
5 //get the current analysis manager
6 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8 Error("AddTask_cbaumann_LMEEPbPb2011", "No analysis manager found.");
13 // create task and add it to the manager
14 // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
16 TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
17 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
18 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
22 //Load updated macros from private ALIEN path
24 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigLMEEPbPb2011AOD.C .")) &&
25 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibAOD.C ."))
27 configBasePath=Form("%s/",gSystem->pwd());
30 TString configFile("ConfigLMEEPbPb2011AOD.C");
31 TString configLMEECutLib("LMEECutLibAOD.C");
33 TString configFilePath(configBasePath+configFile);
34 TString configLMEECutLibPath(configBasePath+configLMEECutLib);
36 //AOD Usage currently tested with separate task, to be merged
37 if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
38 ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
40 else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
41 ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
46 //Do we have an MC handler?
48 if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
51 //load dielectron configuration files
52 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
53 gROOT->LoadMacro(configLMEECutLibPath.Data());
54 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
55 gROOT->LoadMacro(configFilePath.Data());
58 LMEECutLib* cutlib = new LMEECutLib();
59 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
60 if (!hasMC) task->UsePhysicsSelection();
61 task->SetTriggerMask(triggerNames);
62 task->SelectCollisionCandidates(collCands);
63 //Basic Event cuts on z-Vertex,...
64 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); //
70 //obsolete variable, kept not to break existing trains
73 //obsolete variable, kept not to break existing trains
76 //add dielectron analysis with different cuts to the task
77 AliDielectron *lowmass1=ConfigLMEEPbPb2011AOD(1,hasMC,bESDANA);
78 task->AddDielectron(lowmass1);
79 printf("add: %s\n",lowmass1->GetName());
81 AliDielectron *lowmass3=ConfigLMEEPbPb2011AOD(3,hasMC,bESDANA);
82 task->AddDielectron(lowmass3);
83 printf("add: %s\n",lowmass3->GetName());
87 //create output container
88 AliAnalysisDataContainer *coutput1 =
89 mgr->CreateContainer("cbaumann_LMEEPbPb2011_tree",
91 AliAnalysisManager::kExchangeContainer,
94 AliAnalysisDataContainer *cOutputHist1 =
95 mgr->CreateContainer("cbaumann_LMEEPbPb2011_out",
97 AliAnalysisManager::kOutputContainer,
100 AliAnalysisDataContainer *cOutputHist2 =
101 mgr->CreateContainer("cbaumann_LMEEPbPb2011_CF",
103 AliAnalysisManager::kOutputContainer,
106 AliAnalysisDataContainer *cOutputHist3 =
107 mgr->CreateContainer("cbaumann_EventStatPbPb2011",
109 AliAnalysisManager::kOutputContainer,
112 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
113 mgr->ConnectOutput(task, 0, coutput1 );
114 mgr->ConnectOutput(task, 1, cOutputHist1);
115 mgr->ConnectOutput(task, 2, cOutputHist2);
116 mgr->ConnectOutput(task, 3, cOutputHist3);