1 AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011AOD(Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE){
3 Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
4 //get the current analysis manager
5 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 Error("AddTask_cbaumann_LMEEPbPb2011", "No analysis manager found.");
12 // create task and add it to the manager
13 // 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 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigLMEEPbPb2011AOD.C .")) &&
23 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibAOD.C ."))
25 configBasePath=Form("%s/",gSystem->pwd());
28 TString configFile("ConfigLMEEPbPb2011AOD.C");
29 TString configLMEECutLib("LMEECutLibAOD.C");
31 TString configFilePath(configBasePath+configFile);
32 TString configLMEECutLibPath(configBasePath+configLMEECutLib);
34 //AOD Usage currently tested with separate task, to be merged
35 if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
36 ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
38 else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
39 ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
44 //Do we have an MC handler?
46 if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
51 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
52 gROOT->LoadMacro(configLMEECutLibPath.Data());
53 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
54 gROOT->LoadMacro(configFilePath.Data());
57 LMEECutLib* cutlib = new LMEECutLib();
58 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
59 if (!hasMC) task->UsePhysicsSelection();
60 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
61 // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
62 // task->SetRejectPileup();
63 task->SelectCollisionCandidates(AliVEvent::kAny);
64 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); //
67 //load dielectron configuration file
69 //add dielectron analysis with different cuts to the task
70 AliDielectron *lowmass4=ConfigLMEEPbPb2011AOD(4,hasMC,bESDANA);
71 task->AddDielectron(lowmass4);
72 printf("add: %s\n",lowmass4->GetName());
74 AliDielectron *lowmass6=ConfigLMEEPbPb2011AOD(6,hasMC,bESDANA);
75 task->AddDielectron(lowmass6);
76 printf("add: %s\n",lowmass6->GetName());
79 AliDielectron *lowmass7=ConfigLMEEPbPb2011AOD(7,hasMC,bESDANA);
80 task->AddDielectron(lowmass7);
81 printf("add: %s\n",lowmass7->GetName());
86 //create output container
87 AliAnalysisDataContainer *coutput1 =
88 mgr->CreateContainer("cbaumann_LMEEPbPb2011_tree",
90 AliAnalysisManager::kExchangeContainer,
91 "cbaumann_LMEEPbPb2011_default.root");
93 AliAnalysisDataContainer *cOutputHist1 =
94 mgr->CreateContainer("cbaumann_LMEEPbPb2011_out",
96 AliAnalysisManager::kOutputContainer,
97 "cbaumann_LMEEPbPb2011_out.root");
99 /* AliAnalysisDataContainer *cOutputHist2 =
100 mgr->CreateContainer("cbaumann_lowmass_CF",
102 AliAnalysisManager::kOutputContainer,
103 "cbaumann_lowmass_CF.root");
105 AliAnalysisDataContainer *cOutputHist2 =
106 mgr->CreateContainer("cbaumann_LMEEPbPb2011_CF",
108 AliAnalysisManager::kOutputContainer,
109 "cbaumann_LMEEPbPb2011_out.root");
111 AliAnalysisDataContainer *cOutputHist3 =
112 mgr->CreateContainer("cbaumann_EventStatPbPb2011",
114 AliAnalysisManager::kOutputContainer,
115 "cbaumann_LMEEPbPb2011_out.root");
118 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
119 mgr->ConnectOutput(task, 0, coutput1 );
120 mgr->ConnectOutput(task, 1, cOutputHist1);
121 mgr->ConnectOutput(task, 2, cOutputHist2);
122 mgr->ConnectOutput(task, 3, cOutputHist3);