]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_mkoehler_lowmass.C
add markus, bugfix
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_mkoehler_lowmass.C
1
2
3 AliAnalysisTask *AddTask_mkoehler_lowmass(){
4
5
6   //get the current analysis manager
7   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8   if (!mgr) {
9     Error("AddTask_lowmass", "No analysis manager found.");
10     return 0;
11   }
12
13
14   Bool_t RunEMCtrigger = 0;
15   Bool_t RunHighMulttrigger = 0;
16   Bool_t RunMBtrigger = 1;
17
18   Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
19
20   //Get the current train configuration
21   TString trainConfig=gSystem->Getenv("CONFIG_FILE");
22
23   //set config file name
24   TString configFile("$TRAIN_ROOT/mkoehler_lowmassee/Config_lowmass.C");
25   TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
26
27   if (trainRoot.IsNull()) configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/Config_lowmass.C";
28
29   if(RunMBtrigger){
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();
35         }
36
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();
43         }
44
45   if(RunEMCtrigger){
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();
51 }
52
53           //Add event filter
54   AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
55   eventCuts->SetRequireVertex();
56   eventCuts->SetVertexZ(-10.,10.);
57   eventCuts->SetMinVtxContributors(1);
58
59    if(RunMBtrigger)taskMB->SetEventFilter(eventCuts);
60    if(RunHighMulttrigger) taskHighMult->SetEventFilter(eventCuts);
61    if(RunEMCtrigger) taskEMC1->SetEventFilter(eventCuts);
62
63     if(RunMBtrigger) mgr->AddTask(taskMB);
64     if(RunHighMulttrigger)mgr->AddTask(taskHighMult);
65     if(RunEMCtrigger)mgr->AddTask(taskEMC1);
66
67   //load dielectron configuration file
68   gROOT->LoadMacro(configFile.Data());
69
70   //add dielectron analysis with different cuts to the task
71   for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
72   if(RunMBtrigger){
73     //MB
74     AliDielectron *diel_lowMB = Config_lowmass(i);
75     if(!diel_lowMB)continue;
76     taskMB->AddDielectron(diel_lowMB);
77         }
78   if(RunHighMulttrigger){
79     //HighMult
80     AliDielectron *diel_lowHighMult = Config_lowmass(i);
81     if(!diel_lowHighMult)continue;
82     taskHighMult->AddDielectron(diel_lowHighMult);
83 }
84           if(RunEMCtrigger){
85     //EMC1 
86     AliDielectron *diel_lowEMC1 = Config_lowmass(i);
87     if(!diel_lowEMC1)continue;
88     taskEMC1->AddDielectron(diel_lowEMC1);
89         }
90
91   }//loop
92
93   if(RunMBtrigger){
94   //create output container
95   AliAnalysisDataContainer *coutput1 =
96     mgr->CreateContainer("tree_lowmass",
97                          TTree::Class(),
98                          AliAnalysisManager::kExchangeContainer,
99                          "default");
100   
101   AliAnalysisDataContainer *cOutputHist1 =
102     mgr->CreateContainer("Histos_diel_lowmass",
103                          TList::Class(),
104                          AliAnalysisManager::kOutputContainer,
105                          "mkoehler_lowmass.root");
106
107   AliAnalysisDataContainer *cOutputHist2 =
108     mgr->CreateContainer("CF_diel_lowmass",
109                          TList::Class(),
110                          AliAnalysisManager::kOutputContainer,
111                          "mkoehler_lowmass.root");
112
113   AliAnalysisDataContainer *cOutputHist3 =
114     mgr->CreateContainer("mkoehler_lowmass_EventStat",
115                          TList::Class(),
116                          AliAnalysisManager::kOutputContainer,
117                          "mkoehler_lowmass.root");
118         }
119   if(RunHighMulttrigger){
120   //create output container (HighMult)
121   AliAnalysisDataContainer *coutputHighMult1 =
122     mgr->CreateContainer("tree_lowmassHighMult",
123                          TTree::Class(),
124                          AliAnalysisManager::kExchangeContainer,
125                          "default");
126   
127   AliAnalysisDataContainer *cOutputHistHighMult1 =
128     mgr->CreateContainer("Histos_diel_lowmassHighMult",
129                          TList::Class(),
130                          AliAnalysisManager::kOutputContainer,
131                          "mkoehler_lowmassHighMult.root");
132
133   AliAnalysisDataContainer *cOutputHistHighMult2 =
134     mgr->CreateContainer("CF_diel_lowmassHighMult",
135                          TList::Class(),
136                          AliAnalysisManager::kOutputContainer,
137                          "mkoehler_lowmassHighMult.root");
138
139   AliAnalysisDataContainer *cOutputHistHighMult3 =
140     mgr->CreateContainer("mkoehler_lowmass_EventStatHighMult",
141                          TList::Class(),
142                          AliAnalysisManager::kOutputContainer,
143                          "mkoehler_lowmassHighMult.root");
144         }
145
146           if(RunEMCtrigger){
147
148   //create output container (EMC1)
149   AliAnalysisDataContainer *coutputEMC11 =
150     mgr->CreateContainer("tree_lowmassEMC1",
151                          TTree::Class(),
152                          AliAnalysisManager::kExchangeContainer,
153                          "default");
154   
155   AliAnalysisDataContainer *cOutputHistEMC11 =
156     mgr->CreateContainer("Histos_diel_lowmassEMC1",
157                          TList::Class(),
158                          AliAnalysisManager::kOutputContainer,
159                          "mkoehler_lowmassEMC1.root");
160
161   AliAnalysisDataContainer *cOutputHistEMC12 =
162     mgr->CreateContainer("CF_diel_lowmassEMC1",
163                          TList::Class(),
164                          AliAnalysisManager::kOutputContainer,
165                          "mkoehler_lowmassEMC1.root");
166
167   AliAnalysisDataContainer *cOutputHistEMC13 =
168     mgr->CreateContainer("mkoehler_lowmass_EventStatEMC1",
169                          TList::Class(),
170                          AliAnalysisManager::kOutputContainer,
171                          "mkoehler_lowmassEMC1.root");
172 }
173
174   if(RunMBtrigger){
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);
180 }
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);
187 }
188   if(RunEMCtrigger){
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);
194 }
195
196
197   return taskMB;
198
199 }