1 AliAnalysisTask *AddTask_Asako_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_Asako_LMEEPbPb2011AOD", "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");
19 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
23 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigLMEEPbPb2011AOD.C .")) &&
24 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibAOD.C ."))
26 configBasePath=Form("%s/",gSystem->pwd());
29 TString configFile("ConfigAsakoLMEEPbPb2011AOD.C");
30 TString configLMEECutLib("LMEECutLibAsako.C");
32 TString configFilePath(configBasePath+configFile);
33 TString configLMEECutLibPath(configBasePath+configLMEECutLib);
35 //AOD Usage currently tested with separate task, to be merged
36 if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
37 ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
39 else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
40 ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
45 //Do we have an MC handler?
47 if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
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 LMEECutLibAsako* cutlib = new LMEECutLibAsako();
59 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
60 if (!hasMC) task->UsePhysicsSelection();
61 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
62 // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
63 // task->SetRejectPileup();
64 task->SelectCollisionCandidates(AliVEvent::kAny);
65 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibAsako::kPbPb2011TPCandTOF)); //
68 //load dielectron configuration file
70 //add dielectron analysis with different cuts to the task
73 AliDielectron *lowmass1=ConfigAsakoLMEEPbPb2011AOD(1,hasMC,bESDANA);
74 task->AddDielectron(lowmass1);
75 printf("add: %s\n",lowmass1->GetName());
78 AliDielectron *lowmass2=ConfigAsakoLMEEPbPb2011AOD(2,hasMC,bESDANA);
79 task->AddDielectron(lowmass2);
80 printf("add: %s\n",lowmass2->GetName());
83 AliDielectron *lowmass3=ConfigAsakoLMEEPbPb2011AOD(3,hasMC,bESDANA);
84 task->AddDielectron(lowmass3);
85 printf("add: %s\n",lowmass3->GetName());
88 AliDielectron *lowmass4=ConfigAsakoLMEEPbPb2011AOD(4,hasMC,bESDANA);
89 task->AddDielectron(lowmass4);
90 printf("add: %s\n",lowmass4->GetName());
94 AliDielectron *lowmass5=ConfigAsakoLMEEPbPb2011AOD(5,hasMC,bESDANA);
95 task->AddDielectron(lowmass5);
96 printf("add: %s\n",lowmass5->GetName());
98 AliDielectron *lowmass6=ConfigAsakoLMEEPbPb2011AOD(6,hasMC,bESDANA);
99 task->AddDielectron(lowmass6);
100 printf("add: %s\n",lowmass6->GetName());
102 AliDielectron *lowmass7=ConfigAsakoLMEEPbPb2011AOD(7,hasMC,bESDANA);
103 task->AddDielectron(lowmass7);
104 printf("add: %s\n",lowmass7->GetName());
106 AliDielectron *lowmass8=ConfigAsakoLMEEPbPb2011AOD(8,hasMC,bESDANA);
107 task->AddDielectron(lowmass8);
108 printf("add: %s\n",lowmass8->GetName());
110 AliDielectron *lowmass9=ConfigAsakoLMEEPbPb2011AOD(9,hasMC,bESDANA);
111 task->AddDielectron(lowmass9);
112 printf("add: %s\n",lowmass9->GetName());
114 AliDielectron *lowmass10=ConfigAsakoLMEEPbPb2011AOD(10,hasMC,bESDANA);
115 task->AddDielectron(lowmass10);
116 printf("add: %s\n",lowmass9->GetName());
119 AliDielectron *lowmass11=ConfigAsakoLMEEPbPb2011AOD(11,hasMC,bESDANA);
120 task->AddDielectron(lowmass11);
121 printf("add: %s\n",lowmass11->GetName());
124 AliDielectron *lowmass12=ConfigAsakoLMEEPbPb2011AOD(12,hasMC,bESDANA);
125 task->AddDielectron(lowmass12);
126 printf("add: %s\n",lowmass12->GetName());
129 AliDielectron *lowmass13=ConfigAsakoLMEEPbPb2011AOD(13,hasMC,bESDANA);
130 task->AddDielectron(lowmass13);
131 printf("add: %s\n",lowmass13->GetName());
134 //AliDielectron *lowmass7=ConfigLMEEPbPb2011AOD(7,hasMC,bESDANA);
135 // task->AddDielectron(lowmass7);
136 // printf("add: %s\n",lowmass7->GetName());
141 //create output container
142 AliAnalysisDataContainer *coutput1 =
143 mgr->CreateContainer("asako_LMEEPbPb2011_tree",
145 AliAnalysisManager::kExchangeContainer,
148 AliAnalysisDataContainer *cOutputHist1 =
149 mgr->CreateContainer("asako_LMEEPbPb2011_out",
151 AliAnalysisManager::kOutputContainer,
154 /* AliAnalysisDataContainer *cOutputHist2 =
155 mgr->CreateContainer("cbaumann_lowmass_CF",
157 AliAnalysisManager::kOutputContainer,
158 "cbaumann_lowmass_CF.root");
160 AliAnalysisDataContainer *cOutputHist2 =
161 mgr->CreateContainer("asako_LMEEPbPb2011_CF",
163 AliAnalysisManager::kOutputContainer,
166 AliAnalysisDataContainer *cOutputHist3 =
167 mgr->CreateContainer("asako_EventStatPbPb2011",
169 AliAnalysisManager::kOutputContainer,
173 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
174 mgr->ConnectOutput(task, 0, coutput1 );
175 mgr->ConnectOutput(task, 1, cOutputHist1);
176 mgr->ConnectOutput(task, 2, cOutputHist2);
177 mgr->ConnectOutput(task, 3, cOutputHist3);