3 AliAnalysisTask *AddTask_mkoehler_lowmass(){
6 //get the current analysis manager
7 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
9 Error("AddTask_lowmass", "No analysis manager found.");
14 Bool_t RunEMCtrigger = 0;
15 Bool_t RunHighMulttrigger = 0;
16 Bool_t RunMBtrigger = 1;
18 Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
20 //Get the current train configuration
21 TString trainConfig=gSystem->Getenv("CONFIG_FILE");
23 //set config file name
24 TString configFile("$TRAIN_ROOT/mkoehler_lowmassee/Config_lowmass.C");
25 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
27 if (trainRoot.IsNull()) configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/Config_lowmass.C";
30 //create task and add it to the manager (MB)
31 AliAnalysisTaskMultiDielectron *taskMB = new AliAnalysisTaskMultiDielectron("MultiDieMB");
32 if (!hasMC) taskMB->UsePhysicsSelection();
33 taskMB->SelectCollisionCandidates(AliVEvent::kMB);
34 taskMB->SetRejectPileup();
37 if(RunHighMulttrigger){
38 //create task and add it to the manager (HighMult)
39 AliAnalysisTaskMultiDielectron *taskHighMult = new AliAnalysisTaskMultiDielectron("MultiDieHighMult");
40 if (!hasMC) taskHighMult->UsePhysicsSelection();
41 taskHighMult->SelectCollisionCandidates(AliVEvent::kHighMult);
42 taskHighMult->SetRejectPileup();
46 //create task and add it to the manager (EMC1)
47 AliAnalysisTaskMultiDielectron *taskEMC1 = new AliAnalysisTaskMultiDielectron("MultiDieEMC1");
48 if (!hasMC) taskEMC1->UsePhysicsSelection();
49 taskEMC1->SelectCollisionCandidates(AliVEvent::kEMC1);
50 taskEMC1->SetRejectPileup();
54 AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
55 eventCuts->SetRequireVertex();
56 eventCuts->SetVertexZ(-10.,10.);
57 eventCuts->SetMinVtxContributors(1);
59 if(RunMBtrigger)taskMB->SetEventFilter(eventCuts);
60 if(RunHighMulttrigger) taskHighMult->SetEventFilter(eventCuts);
61 if(RunEMCtrigger) taskEMC1->SetEventFilter(eventCuts);
63 if(RunMBtrigger) mgr->AddTask(taskMB);
64 if(RunHighMulttrigger)mgr->AddTask(taskHighMult);
65 if(RunEMCtrigger)mgr->AddTask(taskEMC1);
67 //load dielectron configuration file
68 gROOT->LoadMacro(configFile.Data());
70 //add dielectron analysis with different cuts to the task
71 for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
74 AliDielectron *diel_lowMB = Config_lowmass(i);
75 if(!diel_lowMB)continue;
76 taskMB->AddDielectron(diel_lowMB);
78 if(RunHighMulttrigger){
80 AliDielectron *diel_lowHighMult = Config_lowmass(i);
81 if(!diel_lowHighMult)continue;
82 taskHighMult->AddDielectron(diel_lowHighMult);
86 AliDielectron *diel_lowEMC1 = Config_lowmass(i);
87 if(!diel_lowEMC1)continue;
88 taskEMC1->AddDielectron(diel_lowEMC1);
94 //create output container
95 AliAnalysisDataContainer *coutput1 =
96 mgr->CreateContainer("tree_lowmass",
98 AliAnalysisManager::kExchangeContainer,
101 AliAnalysisDataContainer *cOutputHist1 =
102 mgr->CreateContainer("Histos_diel_lowmass",
104 AliAnalysisManager::kOutputContainer,
105 "mkoehler_lowmass.root");
107 AliAnalysisDataContainer *cOutputHist2 =
108 mgr->CreateContainer("CF_diel_lowmass",
110 AliAnalysisManager::kOutputContainer,
111 "mkoehler_lowmass.root");
113 AliAnalysisDataContainer *cOutputHist3 =
114 mgr->CreateContainer("mkoehler_lowmass_EventStat",
116 AliAnalysisManager::kOutputContainer,
117 "mkoehler_lowmass.root");
119 if(RunHighMulttrigger){
120 //create output container (HighMult)
121 AliAnalysisDataContainer *coutputHighMult1 =
122 mgr->CreateContainer("tree_lowmassHighMult",
124 AliAnalysisManager::kExchangeContainer,
127 AliAnalysisDataContainer *cOutputHistHighMult1 =
128 mgr->CreateContainer("Histos_diel_lowmassHighMult",
130 AliAnalysisManager::kOutputContainer,
131 "mkoehler_lowmassHighMult.root");
133 AliAnalysisDataContainer *cOutputHistHighMult2 =
134 mgr->CreateContainer("CF_diel_lowmassHighMult",
136 AliAnalysisManager::kOutputContainer,
137 "mkoehler_lowmassHighMult.root");
139 AliAnalysisDataContainer *cOutputHistHighMult3 =
140 mgr->CreateContainer("mkoehler_lowmass_EventStatHighMult",
142 AliAnalysisManager::kOutputContainer,
143 "mkoehler_lowmassHighMult.root");
148 //create output container (EMC1)
149 AliAnalysisDataContainer *coutputEMC11 =
150 mgr->CreateContainer("tree_lowmassEMC1",
152 AliAnalysisManager::kExchangeContainer,
155 AliAnalysisDataContainer *cOutputHistEMC11 =
156 mgr->CreateContainer("Histos_diel_lowmassEMC1",
158 AliAnalysisManager::kOutputContainer,
159 "mkoehler_lowmassEMC1.root");
161 AliAnalysisDataContainer *cOutputHistEMC12 =
162 mgr->CreateContainer("CF_diel_lowmassEMC1",
164 AliAnalysisManager::kOutputContainer,
165 "mkoehler_lowmassEMC1.root");
167 AliAnalysisDataContainer *cOutputHistEMC13 =
168 mgr->CreateContainer("mkoehler_lowmass_EventStatEMC1",
170 AliAnalysisManager::kOutputContainer,
171 "mkoehler_lowmassEMC1.root");
175 mgr->ConnectInput(taskMB, 0, mgr->GetCommonInputContainer());
176 mgr->ConnectOutput(taskMB, 0, coutput1 );
177 mgr->ConnectOutput(taskMB, 1, cOutputHist1);
178 mgr->ConnectOutput(taskMB, 2, cOutputHist2);
179 mgr->ConnectOutput(taskMB, 3, cOutputHist3);
181 if(RunHighMulttrigger){
182 mgr->ConnectInput(taskHighMult, 0, mgr->GetCommonInputContainer());
183 mgr->ConnectOutput(taskHighMult, 0, coutputHighMult1 );
184 mgr->ConnectOutput(taskHighMult, 1, cOutputHistHighMult1);
185 mgr->ConnectOutput(taskHighMult, 2, cOutputHistHighMult2);
186 mgr->ConnectOutput(taskHighMult, 3, cOutputHistHighMult3);
189 mgr->ConnectInput(taskEMC1, 0, mgr->GetCommonInputContainer());
190 mgr->ConnectOutput(taskEMC1, 0, coutputEMC11 );
191 mgr->ConnectOutput(taskEMC1, 1, cOutputHistEMC11);
192 mgr->ConnectOutput(taskEMC1, 2, cOutputHistEMC12);
193 mgr->ConnectOutput(taskEMC1, 3, cOutputHistEMC13);