1 AliAnalysisTask *AddTask_Remi_LMEEPbPb2011AOD_SemiCent2(Char_t* outputFileName="LMEEoutput.root", Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE, Bool_t rejOnly=kTRUE) {
3 Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
4 //get the current analysis manager
5 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 Error("AddTask_Remi_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= "/home/tanizaki/nfs/LMee_Deflection/ver1/";
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/ConfigRemiLMEEPbPb2011AOD.C .")) &&
24 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibRemi.C ."))
26 configBasePath=Form("%s/",gSystem->pwd());
30 TString configFile("ConfigRemiLMEEPbPb2011AOD.C");
31 TString configLMEECutLib("LMEECutLibRemi.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)
53 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
54 gROOT->LoadMacro(configLMEECutLibPath.Data());
55 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
56 gROOT->LoadMacro(configFilePath.Data());
59 LMEECutLibRemi* cutlib = new LMEECutLibRemi();
60 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
61 if (!hasMC) task->UsePhysicsSelection();
62 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
63 // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
64 // task->SetRejectPileup();
65 task->SelectCollisionCandidates(AliVEvent::kAny);
66 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011pidITSTPCTOF)); //
68 //load dielectron configuration file
70 //add dielectron analysis with different cuts to the task
75 // AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA);
76 // task->AddDielectron(lowmass1);
77 // printf("add: %s\n",lowmass1->GetName());
80 // AliDielectron *lowmass2=ConfigRemiLMEEPbPb2011AOD(2,hasMC,bESDANA);
81 // task->AddDielectron(lowmass2);
82 // printf("add: %s\n",lowmass2->GetName());
85 AliDielectron *lowmass3=ConfigRemiLMEEPbPb2011AOD(3,hasMC,bESDANA);
86 task->AddDielectron(lowmass3);
87 printf("add: %s\n",lowmass3->GetName());
88 AliDielectron *lowmass7=ConfigRemiLMEEPbPb2011AOD(7,hasMC,bESDANA);
89 task->AddDielectron(lowmass7);
90 printf("add: %s\n",lowmass7->GetName());
92 AliDielectron *lowmass11=ConfigRemiLMEEPbPb2011AOD(11,hasMC,bESDANA);
93 task->AddDielectron(lowmass11);
94 printf("add: %s\n",lowmass11->GetName());
96 AliDielectron *lowmass15=ConfigRemiLMEEPbPb2011AOD(15,hasMC,bESDANA);
97 task->AddDielectron(lowmass15);
98 printf("add: %s\n",lowmass15->GetName());
100 AliDielectron *lowmass19=ConfigRemiLMEEPbPb2011AOD(19,hasMC,bESDANA);
101 task->AddDielectron(lowmass19);
102 printf("add: %s\n",lowmass19->GetName());
103 AliDielectron *lowmass23=ConfigRemiLMEEPbPb2011AOD(23,hasMC,bESDANA);
104 task->AddDielectron(lowmass23);
105 printf("add: %s\n",lowmass23->GetName());
106 AliDielectron *lowmass27=ConfigRemiLMEEPbPb2011AOD(27,hasMC,bESDANA);
107 task->AddDielectron(lowmass27);
108 printf("add: %s\n",lowmass27->GetName());
112 // AliDielectron *lowmass4=ConfigRemiLMEEPbPb2011AOD(4,hasMC,bESDANA);
113 // task->AddDielectron(lowmass4);
114 // printf("add: %s\n",lowmass4->GetName());
117 // AliDielectron *lowmass5=ConfigRemiLMEEPbPb2011AOD(5,hasMC,bESDANA);
118 // task->AddDielectron(lowmass5);
119 // printf("add: %s\n",lowmass5->GetName());
124 AliDielectron *lowmass4=ConfigRemiLMEEPbPb2011AOD(4,hasMC,bESDANA);
125 task->AddDielectron(lowmass4);
126 printf("add: %s\n",lowmass4->GetName());
129 AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA);
130 task->AddDielectron(lowmass1);
131 printf("add: %s\n",lowmass1->GetName());
135 AliDielectron *lowmass7=ConfigRemiLMEEPbPb2011AOD(7,hasMC,bESDANA);
136 task->AddDielectron(lowmass7);
137 printf("add: %s\n",lowmass7->GetName());
144 //create output container
145 AliAnalysisDataContainer *coutput1 =
146 mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent2_tree",
148 AliAnalysisManager::kExchangeContainer,
151 AliAnalysisDataContainer *cOutputHist1 =
152 mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent2_out",
154 AliAnalysisManager::kOutputContainer,
157 AliAnalysisDataContainer *cOutputHist2 =
158 mgr->CreateContainer("Remi_LMEEPbPb2011SemiCent2_CF",
160 AliAnalysisManager::kOutputContainer,
163 AliAnalysisDataContainer *cOutputHist3 =
164 mgr->CreateContainer("Remi_EventStatPbPb2011SemiCent2",
166 AliAnalysisManager::kOutputContainer,
170 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
171 mgr->ConnectOutput(task, 0, coutput1 );
172 mgr->ConnectOutput(task, 1, cOutputHist1);
173 mgr->ConnectOutput(task, 2, cOutputHist2);
174 mgr->ConnectOutput(task, 3, cOutputHist3);