]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/AddTask_lowmass_lowmasspp.C
update from pr task : sjena
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_lowmass_lowmasspp.C
CommitLineData
6e463db3 1AliAnalysisTask *AddTask_lowmass_lowmasspp(){
2
3
4 //get the current analysis manager
5 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6 if (!mgr) {
7 Error("AddTask_lowmass", "No analysis manager found.");
8 return 0;
9 }
10
11
12 Bool_t RunEMCtrigger = 0;
13 Bool_t RunHighMulttrigger = 0;
14 Bool_t RunMBtrigger = 1;
15
16 //Do we have an MC handler?
17 Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
18
19
20
21 //Get the current train configuration
22
23 //Directories for GSI train:
24 TString configBasePath("$TRAIN_ROOT/lowmass_LOWMASS/");
25 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
26
27 //Base Directory for GRID / LEGO Train
28 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
29
30 TString configFile("Config_lowmasspp.C");
31 TString configFilePath(configBasePath+configFile);
32
33
34 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
35 gROOT->LoadMacro(configFilePath.Data());
36
37
38 if(RunMBtrigger){
39 //create task and add it to the manager (MB)
40 AliAnalysisTaskMultiDielectron *taskMB = new AliAnalysisTaskMultiDielectron("MultiDieMB");
41 if (!hasMC) taskMB->UsePhysicsSelection();
42 taskMB->SelectCollisionCandidates(AliVEvent::kMB);
43 taskMB->SetRejectPileup();
44 }
45
46 if(RunHighMulttrigger){
47 //create task and add it to the manager (HighMult)
48 AliAnalysisTaskMultiDielectron *taskHighMult = new AliAnalysisTaskMultiDielectron("MultiDieHighMult");
49 if (!hasMC) taskHighMult->UsePhysicsSelection();
50 taskHighMult->SelectCollisionCandidates(AliVEvent::kHighMult);
51 taskHighMult->SetRejectPileup();
52 }
53
54 if(RunEMCtrigger){
55 //create task and add it to the manager (EMC1)
56 AliAnalysisTaskMultiDielectron *taskEMC1 = new AliAnalysisTaskMultiDielectron("MultiDieEMC1");
57 if (!hasMC) taskEMC1->UsePhysicsSelection();
58 taskEMC1->SelectCollisionCandidates(AliVEvent::kEMC1);
59 taskEMC1->SetRejectPileup();
60}
61
62 //Add event filter
63 AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
64 eventCuts->SetRequireVertex();
65 eventCuts->SetVertexZ(-10.,10.);
66 eventCuts->SetMinVtxContributors(1);
67
68 if(RunMBtrigger)taskMB->SetEventFilter(eventCuts);
69 if(RunHighMulttrigger) taskHighMult->SetEventFilter(eventCuts);
70 if(RunEMCtrigger) taskEMC1->SetEventFilter(eventCuts);
71
72 if(RunMBtrigger) mgr->AddTask(taskMB);
73 if(RunHighMulttrigger)mgr->AddTask(taskHighMult);
74 if(RunEMCtrigger)mgr->AddTask(taskEMC1);
75
76
77 //add dielectron analysis with different cuts to the task
78 for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
79 if(RunMBtrigger){
80 //MB
81 AliDielectron *diel_lowMB = Config_lowmasspp(i);
82 if(!diel_lowMB)continue;
83 taskMB->AddDielectron(diel_lowMB);
84 }
85 if(RunHighMulttrigger){
86 //HighMult
87 AliDielectron *diel_lowHighMult = Config_lowmasspp(i);
88 if(!diel_lowHighMult)continue;
89 taskHighMult->AddDielectron(diel_lowHighMult);
90}
91 if(RunEMCtrigger){
92 //EMC1
93 AliDielectron *diel_lowEMC1 = Config_lowmasspp(i);
94 if(!diel_lowEMC1)continue;
95 taskEMC1->AddDielectron(diel_lowEMC1);
96 }
97
98 }//loop
99 if(RunMBtrigger){
100 //create output container
101 AliAnalysisDataContainer *coutput1 =
102 mgr->CreateContainer("tree_lowmass",
103 TTree::Class(),
104 AliAnalysisManager::kExchangeContainer,
105 "default");
106
107 AliAnalysisDataContainer *cOutputHist1 =
108 mgr->CreateContainer("Histos_diel_lowmass",
109 TList::Class(),
110 AliAnalysisManager::kOutputContainer,
111 "lowmass_lowmass.root");
112
113 AliAnalysisDataContainer *cOutputHist2 =
114 mgr->CreateContainer("CF_diel_lowmass",
115 TList::Class(),
116 AliAnalysisManager::kOutputContainer,
117 "lowmass_lowmass.root");
118
119 AliAnalysisDataContainer *cOutputHist3 =
120 mgr->CreateContainer("lowmass_lowmass_EventStat",
121 TList::Class(),
122 AliAnalysisManager::kOutputContainer,
123 "lowmass_lowmass.root");
124
125 mgr->ConnectInput(taskMB, 0, mgr->GetCommonInputContainer());
126 mgr->ConnectOutput(taskMB, 0, coutput1 );
127 mgr->ConnectOutput(taskMB, 1, cOutputHist1);
128 mgr->ConnectOutput(taskMB, 2, cOutputHist2);
129 mgr->ConnectOutput(taskMB, 3, cOutputHist3);
130 }
131if(RunHighMulttrigger){
132 //create output container (HighMult)
133 AliAnalysisDataContainer *coutputHighMult1 =
134 mgr->CreateContainer("tree_lowmassHighMult",
135 TTree::Class(),
136 AliAnalysisManager::kExchangeContainer,
137 "default");
138
139 AliAnalysisDataContainer *cOutputHistHighMult1 =
140 mgr->CreateContainer("Histos_diel_lowmassHighMult",
141 TList::Class(),
142 AliAnalysisManager::kOutputContainer,
143 "lowmass_lowmassHighMult.root");
144
145 AliAnalysisDataContainer *cOutputHistHighMult2 =
146 mgr->CreateContainer("CF_diel_lowmassHighMult",
147 TList::Class(),
148 AliAnalysisManager::kOutputContainer,
149 "lowmass_lowmassHighMult.root");
150
151 AliAnalysisDataContainer *cOutputHistHighMult3 =
152 mgr->CreateContainer("lowmass_lowmass_EventStatHighMult",
153 TList::Class(),
154 AliAnalysisManager::kOutputContainer,
155 "lowmass_lowmassHighMult.root");
156 }
157
158 if(RunEMCtrigger){
159
160 //create output container (EMC1)
161 AliAnalysisDataContainer *coutputEMC11 =
162 mgr->CreateContainer("tree_lowmassEMC1",
163 TTree::Class(),
164 AliAnalysisManager::kExchangeContainer,
165 "default");
166
167 AliAnalysisDataContainer *cOutputHistEMC11 =
168 mgr->CreateContainer("Histos_diel_lowmassEMC1",
169 TList::Class(),
170 AliAnalysisManager::kOutputContainer,
171 "lowmass_lowmassEMC1.root");
172
173 AliAnalysisDataContainer *cOutputHistEMC12 =
174 mgr->CreateContainer("CF_diel_lowmassEMC1",
175 TList::Class(),
176 AliAnalysisManager::kOutputContainer,
177 "lowmass_lowmassEMC1.root");
178
179 AliAnalysisDataContainer *cOutputHistEMC13 =
180 mgr->CreateContainer("lowmass_lowmass_EventStatEMC1",
181 TList::Class(),
182 AliAnalysisManager::kOutputContainer,
183 "lowmass_lowmassEMC1.root");
184}
185
186//questionable regarding variable visibility
187if(RunHighMulttrigger){
188 mgr->ConnectInput(taskHighMult, 0, mgr->GetCommonInputContainer());
189 mgr->ConnectOutput(taskHighMult, 0, coutputHighMult1 );
190 mgr->ConnectOutput(taskHighMult, 1, cOutputHistHighMult1);
191 mgr->ConnectOutput(taskHighMult, 2, cOutputHistHighMult2);
192 mgr->ConnectOutput(taskHighMult, 3, cOutputHistHighMult3);
193}
194 if(RunEMCtrigger){
195 mgr->ConnectInput(taskEMC1, 0, mgr->GetCommonInputContainer());
196 mgr->ConnectOutput(taskEMC1, 0, coutputEMC11 );
197 mgr->ConnectOutput(taskEMC1, 1, cOutputHistEMC11);
198 mgr->ConnectOutput(taskEMC1, 2, cOutputHistEMC12);
199 mgr->ConnectOutput(taskEMC1, 3, cOutputHistEMC13);
200}
201
202
203 return taskMB;
204
205}