SFS: sfs_atlas_conf_2019_040.cpp

File sfs_atlas_conf_2019_040.cpp, 32.3 KB (added by jackaraz, 4 years ago)
Line 
1#include "SampleAnalyzer/User/Analyzer/sfs_atlas_conf_2019_040.h"
2using namespace MA5;
3using namespace std;
4
5
6// Overlap Removal
7template<typename T1, typename T2> std::vector<const T1*>
8 Removal(std::vector<const T1*> &v1, std::vector<const T2*> &v2,
9 const double &drmin)
10{
11 // Determining with objects should be removed
12 std::vector<bool> mask(v1.size(),false);
13 for (unsigned int j=0;j<v1.size();j++)
14 for (unsigned int i=0;i<v2.size();i++)
15 if (v2[i]->dr(v1[j]) < drmin)
16 {
17 mask[j]=true;
18 break;
19 }
20
21 // Building the cleaned container
22 std::vector<const T1*> cleaned_v1;
23 for (unsigned int i=0;i<v1.size();i++)
24 if (!mask[i]) cleaned_v1.push_back(v1[i]);
25
26 return cleaned_v1;
27}
28
29
30
31// -----------------------------------------------------------------------------
32// Initialize
33// function called one time at the beginning of the analysis
34// -----------------------------------------------------------------------------
35bool sfs_atlas_conf_2019_040::Initialize(const MA5::Configuration& cfg, const std::map<std::string,std::string>& parameters)
36{
37 // Information on the analysis, authors, ...
38 // VERY IMPORTANT FOR DOCUMENTATION, TRACEABILITY, BUG REPORTS
39 INFO << " <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>" << endmsg;
40 INFO << " <> Analysis: atlas_conf_2019_040 <>" << endmsg;
41 INFO << " <> 0 lepton, 2-6 jets = 13 TeV, 139 fb^-1 luminosity <>" << endmsg;
42 INFO << " <> Recast by: F. Ambrogi <>" << endmsg;
43 INFO << " <> Contact: federico.ambrogi@univie.ac.at <>" << endmsg;
44 INFO << " <> Based on MadAnalysis 5 v1.5 and above <>" << endmsg;
45 INFO << " <> For more information, see <>" << endmsg;
46 INFO << " <> http://madanalysis.irmp.ucl.ac.be/wiki/PublicAnalysisDatabase <>" << endmsg;
47 INFO << " <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>" << endmsg;
48
49
50 // Initializing PhysicsService for MC
51 PHYSICS->mcConfig().Reset();
52
53
54 // definition of the multiparticle "hadronic"
55 PHYSICS->mcConfig().AddHadronicId(-20543);
56 PHYSICS->mcConfig().AddHadronicId(-20533);
57 PHYSICS->mcConfig().AddHadronicId(-20523);
58 PHYSICS->mcConfig().AddHadronicId(-20513);
59 PHYSICS->mcConfig().AddHadronicId(-20433);
60 PHYSICS->mcConfig().AddHadronicId(-20423);
61 PHYSICS->mcConfig().AddHadronicId(-20413);
62 PHYSICS->mcConfig().AddHadronicId(-20323);
63 PHYSICS->mcConfig().AddHadronicId(-20313);
64 PHYSICS->mcConfig().AddHadronicId(-20213);
65 PHYSICS->mcConfig().AddHadronicId(-10543);
66 PHYSICS->mcConfig().AddHadronicId(-10541);
67 PHYSICS->mcConfig().AddHadronicId(-10533);
68 PHYSICS->mcConfig().AddHadronicId(-10531);
69 PHYSICS->mcConfig().AddHadronicId(-10523);
70 PHYSICS->mcConfig().AddHadronicId(-10521);
71 PHYSICS->mcConfig().AddHadronicId(-10513);
72 PHYSICS->mcConfig().AddHadronicId(-10511);
73 PHYSICS->mcConfig().AddHadronicId(-10433);
74 PHYSICS->mcConfig().AddHadronicId(-10431);
75 PHYSICS->mcConfig().AddHadronicId(-10423);
76 PHYSICS->mcConfig().AddHadronicId(-10421);
77 PHYSICS->mcConfig().AddHadronicId(-10413);
78 PHYSICS->mcConfig().AddHadronicId(-10411);
79 PHYSICS->mcConfig().AddHadronicId(-10323);
80 PHYSICS->mcConfig().AddHadronicId(-10321);
81 PHYSICS->mcConfig().AddHadronicId(-10313);
82 PHYSICS->mcConfig().AddHadronicId(-10311);
83 PHYSICS->mcConfig().AddHadronicId(-10213);
84 PHYSICS->mcConfig().AddHadronicId(-10211);
85 PHYSICS->mcConfig().AddHadronicId(-5554);
86 PHYSICS->mcConfig().AddHadronicId(-5544);
87 PHYSICS->mcConfig().AddHadronicId(-5542);
88 PHYSICS->mcConfig().AddHadronicId(-5534);
89 PHYSICS->mcConfig().AddHadronicId(-5532);
90 PHYSICS->mcConfig().AddHadronicId(-5524);
91 PHYSICS->mcConfig().AddHadronicId(-5522);
92 PHYSICS->mcConfig().AddHadronicId(-5514);
93 PHYSICS->mcConfig().AddHadronicId(-5512);
94 PHYSICS->mcConfig().AddHadronicId(-5503);
95 PHYSICS->mcConfig().AddHadronicId(-5444);
96 PHYSICS->mcConfig().AddHadronicId(-5442);
97 PHYSICS->mcConfig().AddHadronicId(-5434);
98 PHYSICS->mcConfig().AddHadronicId(-5432);
99 PHYSICS->mcConfig().AddHadronicId(-5424);
100 PHYSICS->mcConfig().AddHadronicId(-5422);
101 PHYSICS->mcConfig().AddHadronicId(-5414);
102 PHYSICS->mcConfig().AddHadronicId(-5412);
103 PHYSICS->mcConfig().AddHadronicId(-5403);
104 PHYSICS->mcConfig().AddHadronicId(-5401);
105 PHYSICS->mcConfig().AddHadronicId(-5342);
106 PHYSICS->mcConfig().AddHadronicId(-5334);
107 PHYSICS->mcConfig().AddHadronicId(-5332);
108 PHYSICS->mcConfig().AddHadronicId(-5324);
109 PHYSICS->mcConfig().AddHadronicId(-5322);
110 PHYSICS->mcConfig().AddHadronicId(-5314);
111 PHYSICS->mcConfig().AddHadronicId(-5312);
112 PHYSICS->mcConfig().AddHadronicId(-5303);
113 PHYSICS->mcConfig().AddHadronicId(-5301);
114 PHYSICS->mcConfig().AddHadronicId(-5242);
115 PHYSICS->mcConfig().AddHadronicId(-5232);
116 PHYSICS->mcConfig().AddHadronicId(-5224);
117 PHYSICS->mcConfig().AddHadronicId(-5222);
118 PHYSICS->mcConfig().AddHadronicId(-5214);
119 PHYSICS->mcConfig().AddHadronicId(-5212);
120 PHYSICS->mcConfig().AddHadronicId(-5203);
121 PHYSICS->mcConfig().AddHadronicId(-5201);
122 PHYSICS->mcConfig().AddHadronicId(-5142);
123 PHYSICS->mcConfig().AddHadronicId(-5132);
124 PHYSICS->mcConfig().AddHadronicId(-5122);
125 PHYSICS->mcConfig().AddHadronicId(-5114);
126 PHYSICS->mcConfig().AddHadronicId(-5112);
127 PHYSICS->mcConfig().AddHadronicId(-5103);
128 PHYSICS->mcConfig().AddHadronicId(-5101);
129 PHYSICS->mcConfig().AddHadronicId(-4444);
130 PHYSICS->mcConfig().AddHadronicId(-4434);
131 PHYSICS->mcConfig().AddHadronicId(-4432);
132 PHYSICS->mcConfig().AddHadronicId(-4424);
133 PHYSICS->mcConfig().AddHadronicId(-4422);
134 PHYSICS->mcConfig().AddHadronicId(-4414);
135 PHYSICS->mcConfig().AddHadronicId(-4412);
136 PHYSICS->mcConfig().AddHadronicId(-4403);
137 PHYSICS->mcConfig().AddHadronicId(-4334);
138 PHYSICS->mcConfig().AddHadronicId(-4332);
139 PHYSICS->mcConfig().AddHadronicId(-4324);
140 PHYSICS->mcConfig().AddHadronicId(-4322);
141 PHYSICS->mcConfig().AddHadronicId(-4314);
142 PHYSICS->mcConfig().AddHadronicId(-4312);
143 PHYSICS->mcConfig().AddHadronicId(-4303);
144 PHYSICS->mcConfig().AddHadronicId(-4301);
145 PHYSICS->mcConfig().AddHadronicId(-4232);
146 PHYSICS->mcConfig().AddHadronicId(-4224);
147 PHYSICS->mcConfig().AddHadronicId(-4222);
148 PHYSICS->mcConfig().AddHadronicId(-4214);
149 PHYSICS->mcConfig().AddHadronicId(-4212);
150 PHYSICS->mcConfig().AddHadronicId(-4203);
151 PHYSICS->mcConfig().AddHadronicId(-4201);
152 PHYSICS->mcConfig().AddHadronicId(-4132);
153 PHYSICS->mcConfig().AddHadronicId(-4122);
154 PHYSICS->mcConfig().AddHadronicId(-4114);
155 PHYSICS->mcConfig().AddHadronicId(-4112);
156 PHYSICS->mcConfig().AddHadronicId(-4103);
157 PHYSICS->mcConfig().AddHadronicId(-4101);
158 PHYSICS->mcConfig().AddHadronicId(-3334);
159 PHYSICS->mcConfig().AddHadronicId(-3324);
160 PHYSICS->mcConfig().AddHadronicId(-3322);
161 PHYSICS->mcConfig().AddHadronicId(-3314);
162 PHYSICS->mcConfig().AddHadronicId(-3312);
163 PHYSICS->mcConfig().AddHadronicId(-3303);
164 PHYSICS->mcConfig().AddHadronicId(-3224);
165 PHYSICS->mcConfig().AddHadronicId(-3222);
166 PHYSICS->mcConfig().AddHadronicId(-3214);
167 PHYSICS->mcConfig().AddHadronicId(-3212);
168 PHYSICS->mcConfig().AddHadronicId(-3203);
169 PHYSICS->mcConfig().AddHadronicId(-3201);
170 PHYSICS->mcConfig().AddHadronicId(-3122);
171 PHYSICS->mcConfig().AddHadronicId(-3114);
172 PHYSICS->mcConfig().AddHadronicId(-3112);
173 PHYSICS->mcConfig().AddHadronicId(-3103);
174 PHYSICS->mcConfig().AddHadronicId(-3101);
175 PHYSICS->mcConfig().AddHadronicId(-2224);
176 PHYSICS->mcConfig().AddHadronicId(-2214);
177 PHYSICS->mcConfig().AddHadronicId(-2212);
178 PHYSICS->mcConfig().AddHadronicId(-2203);
179 PHYSICS->mcConfig().AddHadronicId(-2114);
180 PHYSICS->mcConfig().AddHadronicId(-2112);
181 PHYSICS->mcConfig().AddHadronicId(-2103);
182 PHYSICS->mcConfig().AddHadronicId(-2101);
183 PHYSICS->mcConfig().AddHadronicId(-1114);
184 PHYSICS->mcConfig().AddHadronicId(-1103);
185 PHYSICS->mcConfig().AddHadronicId(-545);
186 PHYSICS->mcConfig().AddHadronicId(-543);
187 PHYSICS->mcConfig().AddHadronicId(-541);
188 PHYSICS->mcConfig().AddHadronicId(-535);
189 PHYSICS->mcConfig().AddHadronicId(-533);
190 PHYSICS->mcConfig().AddHadronicId(-531);
191 PHYSICS->mcConfig().AddHadronicId(-525);
192 PHYSICS->mcConfig().AddHadronicId(-523);
193 PHYSICS->mcConfig().AddHadronicId(-521);
194 PHYSICS->mcConfig().AddHadronicId(-515);
195 PHYSICS->mcConfig().AddHadronicId(-513);
196 PHYSICS->mcConfig().AddHadronicId(-511);
197 PHYSICS->mcConfig().AddHadronicId(-435);
198 PHYSICS->mcConfig().AddHadronicId(-433);
199 PHYSICS->mcConfig().AddHadronicId(-431);
200 PHYSICS->mcConfig().AddHadronicId(-425);
201 PHYSICS->mcConfig().AddHadronicId(-423);
202 PHYSICS->mcConfig().AddHadronicId(-421);
203 PHYSICS->mcConfig().AddHadronicId(-415);
204 PHYSICS->mcConfig().AddHadronicId(-413);
205 PHYSICS->mcConfig().AddHadronicId(-411);
206 PHYSICS->mcConfig().AddHadronicId(-325);
207 PHYSICS->mcConfig().AddHadronicId(-323);
208 PHYSICS->mcConfig().AddHadronicId(-321);
209 PHYSICS->mcConfig().AddHadronicId(-315);
210 PHYSICS->mcConfig().AddHadronicId(-313);
211 PHYSICS->mcConfig().AddHadronicId(-311);
212 PHYSICS->mcConfig().AddHadronicId(-215);
213 PHYSICS->mcConfig().AddHadronicId(-213);
214 PHYSICS->mcConfig().AddHadronicId(-211);
215 PHYSICS->mcConfig().AddHadronicId(111);
216 PHYSICS->mcConfig().AddHadronicId(113);
217 PHYSICS->mcConfig().AddHadronicId(115);
218 PHYSICS->mcConfig().AddHadronicId(130);
219 PHYSICS->mcConfig().AddHadronicId(211);
220 PHYSICS->mcConfig().AddHadronicId(213);
221 PHYSICS->mcConfig().AddHadronicId(215);
222 PHYSICS->mcConfig().AddHadronicId(221);
223 PHYSICS->mcConfig().AddHadronicId(223);
224 PHYSICS->mcConfig().AddHadronicId(225);
225 PHYSICS->mcConfig().AddHadronicId(310);
226 PHYSICS->mcConfig().AddHadronicId(311);
227 PHYSICS->mcConfig().AddHadronicId(313);
228 PHYSICS->mcConfig().AddHadronicId(315);
229 PHYSICS->mcConfig().AddHadronicId(321);
230 PHYSICS->mcConfig().AddHadronicId(323);
231 PHYSICS->mcConfig().AddHadronicId(325);
232 PHYSICS->mcConfig().AddHadronicId(331);
233 PHYSICS->mcConfig().AddHadronicId(333);
234 PHYSICS->mcConfig().AddHadronicId(335);
235 PHYSICS->mcConfig().AddHadronicId(411);
236 PHYSICS->mcConfig().AddHadronicId(413);
237 PHYSICS->mcConfig().AddHadronicId(415);
238 PHYSICS->mcConfig().AddHadronicId(421);
239 PHYSICS->mcConfig().AddHadronicId(423);
240 PHYSICS->mcConfig().AddHadronicId(425);
241 PHYSICS->mcConfig().AddHadronicId(431);
242 PHYSICS->mcConfig().AddHadronicId(433);
243 PHYSICS->mcConfig().AddHadronicId(435);
244 PHYSICS->mcConfig().AddHadronicId(441);
245 PHYSICS->mcConfig().AddHadronicId(443);
246 PHYSICS->mcConfig().AddHadronicId(445);
247 PHYSICS->mcConfig().AddHadronicId(511);
248 PHYSICS->mcConfig().AddHadronicId(513);
249 PHYSICS->mcConfig().AddHadronicId(515);
250 PHYSICS->mcConfig().AddHadronicId(521);
251 PHYSICS->mcConfig().AddHadronicId(523);
252 PHYSICS->mcConfig().AddHadronicId(525);
253 PHYSICS->mcConfig().AddHadronicId(531);
254 PHYSICS->mcConfig().AddHadronicId(533);
255 PHYSICS->mcConfig().AddHadronicId(535);
256 PHYSICS->mcConfig().AddHadronicId(541);
257 PHYSICS->mcConfig().AddHadronicId(543);
258 PHYSICS->mcConfig().AddHadronicId(545);
259 PHYSICS->mcConfig().AddHadronicId(551);
260 PHYSICS->mcConfig().AddHadronicId(553);
261 PHYSICS->mcConfig().AddHadronicId(555);
262 PHYSICS->mcConfig().AddHadronicId(1103);
263 PHYSICS->mcConfig().AddHadronicId(1114);
264 PHYSICS->mcConfig().AddHadronicId(2101);
265 PHYSICS->mcConfig().AddHadronicId(2103);
266 PHYSICS->mcConfig().AddHadronicId(2112);
267 PHYSICS->mcConfig().AddHadronicId(2114);
268 PHYSICS->mcConfig().AddHadronicId(2203);
269 PHYSICS->mcConfig().AddHadronicId(2212);
270 PHYSICS->mcConfig().AddHadronicId(2214);
271 PHYSICS->mcConfig().AddHadronicId(2224);
272 PHYSICS->mcConfig().AddHadronicId(3101);
273 PHYSICS->mcConfig().AddHadronicId(3103);
274 PHYSICS->mcConfig().AddHadronicId(3112);
275 PHYSICS->mcConfig().AddHadronicId(3114);
276 PHYSICS->mcConfig().AddHadronicId(3122);
277 PHYSICS->mcConfig().AddHadronicId(3201);
278 PHYSICS->mcConfig().AddHadronicId(3203);
279 PHYSICS->mcConfig().AddHadronicId(3212);
280 PHYSICS->mcConfig().AddHadronicId(3214);
281 PHYSICS->mcConfig().AddHadronicId(3222);
282 PHYSICS->mcConfig().AddHadronicId(3224);
283 PHYSICS->mcConfig().AddHadronicId(3303);
284 PHYSICS->mcConfig().AddHadronicId(3312);
285 PHYSICS->mcConfig().AddHadronicId(3314);
286 PHYSICS->mcConfig().AddHadronicId(3322);
287 PHYSICS->mcConfig().AddHadronicId(3324);
288 PHYSICS->mcConfig().AddHadronicId(3334);
289 PHYSICS->mcConfig().AddHadronicId(4101);
290 PHYSICS->mcConfig().AddHadronicId(4103);
291 PHYSICS->mcConfig().AddHadronicId(4112);
292 PHYSICS->mcConfig().AddHadronicId(4114);
293 PHYSICS->mcConfig().AddHadronicId(4122);
294 PHYSICS->mcConfig().AddHadronicId(4132);
295 PHYSICS->mcConfig().AddHadronicId(4201);
296 PHYSICS->mcConfig().AddHadronicId(4203);
297 PHYSICS->mcConfig().AddHadronicId(4212);
298 PHYSICS->mcConfig().AddHadronicId(4214);
299 PHYSICS->mcConfig().AddHadronicId(4222);
300 PHYSICS->mcConfig().AddHadronicId(4224);
301 PHYSICS->mcConfig().AddHadronicId(4232);
302 PHYSICS->mcConfig().AddHadronicId(4301);
303 PHYSICS->mcConfig().AddHadronicId(4303);
304 PHYSICS->mcConfig().AddHadronicId(4312);
305 PHYSICS->mcConfig().AddHadronicId(4314);
306 PHYSICS->mcConfig().AddHadronicId(4322);
307 PHYSICS->mcConfig().AddHadronicId(4324);
308 PHYSICS->mcConfig().AddHadronicId(4332);
309 PHYSICS->mcConfig().AddHadronicId(4334);
310 PHYSICS->mcConfig().AddHadronicId(4403);
311 PHYSICS->mcConfig().AddHadronicId(4412);
312 PHYSICS->mcConfig().AddHadronicId(4414);
313 PHYSICS->mcConfig().AddHadronicId(4422);
314 PHYSICS->mcConfig().AddHadronicId(4424);
315 PHYSICS->mcConfig().AddHadronicId(4432);
316 PHYSICS->mcConfig().AddHadronicId(4434);
317 PHYSICS->mcConfig().AddHadronicId(4444);
318 PHYSICS->mcConfig().AddHadronicId(5101);
319 PHYSICS->mcConfig().AddHadronicId(5103);
320 PHYSICS->mcConfig().AddHadronicId(5112);
321 PHYSICS->mcConfig().AddHadronicId(5114);
322 PHYSICS->mcConfig().AddHadronicId(5122);
323 PHYSICS->mcConfig().AddHadronicId(5132);
324 PHYSICS->mcConfig().AddHadronicId(5142);
325 PHYSICS->mcConfig().AddHadronicId(5201);
326 PHYSICS->mcConfig().AddHadronicId(5203);
327 PHYSICS->mcConfig().AddHadronicId(5212);
328 PHYSICS->mcConfig().AddHadronicId(5214);
329 PHYSICS->mcConfig().AddHadronicId(5222);
330 PHYSICS->mcConfig().AddHadronicId(5224);
331 PHYSICS->mcConfig().AddHadronicId(5232);
332 PHYSICS->mcConfig().AddHadronicId(5242);
333 PHYSICS->mcConfig().AddHadronicId(5301);
334 PHYSICS->mcConfig().AddHadronicId(5303);
335 PHYSICS->mcConfig().AddHadronicId(5312);
336 PHYSICS->mcConfig().AddHadronicId(5314);
337 PHYSICS->mcConfig().AddHadronicId(5322);
338 PHYSICS->mcConfig().AddHadronicId(5324);
339 PHYSICS->mcConfig().AddHadronicId(5332);
340 PHYSICS->mcConfig().AddHadronicId(5334);
341 PHYSICS->mcConfig().AddHadronicId(5342);
342 PHYSICS->mcConfig().AddHadronicId(5401);
343 PHYSICS->mcConfig().AddHadronicId(5403);
344 PHYSICS->mcConfig().AddHadronicId(5412);
345 PHYSICS->mcConfig().AddHadronicId(5414);
346 PHYSICS->mcConfig().AddHadronicId(5422);
347 PHYSICS->mcConfig().AddHadronicId(5424);
348 PHYSICS->mcConfig().AddHadronicId(5432);
349 PHYSICS->mcConfig().AddHadronicId(5434);
350 PHYSICS->mcConfig().AddHadronicId(5442);
351 PHYSICS->mcConfig().AddHadronicId(5444);
352 PHYSICS->mcConfig().AddHadronicId(5503);
353 PHYSICS->mcConfig().AddHadronicId(5512);
354 PHYSICS->mcConfig().AddHadronicId(5514);
355 PHYSICS->mcConfig().AddHadronicId(5522);
356 PHYSICS->mcConfig().AddHadronicId(5524);
357 PHYSICS->mcConfig().AddHadronicId(5532);
358 PHYSICS->mcConfig().AddHadronicId(5534);
359 PHYSICS->mcConfig().AddHadronicId(5542);
360 PHYSICS->mcConfig().AddHadronicId(5544);
361 PHYSICS->mcConfig().AddHadronicId(5554);
362 PHYSICS->mcConfig().AddHadronicId(10111);
363 PHYSICS->mcConfig().AddHadronicId(10113);
364 PHYSICS->mcConfig().AddHadronicId(10211);
365 PHYSICS->mcConfig().AddHadronicId(10213);
366 PHYSICS->mcConfig().AddHadronicId(10221);
367 PHYSICS->mcConfig().AddHadronicId(10223);
368 PHYSICS->mcConfig().AddHadronicId(10311);
369 PHYSICS->mcConfig().AddHadronicId(10313);
370 PHYSICS->mcConfig().AddHadronicId(10321);
371 PHYSICS->mcConfig().AddHadronicId(10323);
372 PHYSICS->mcConfig().AddHadronicId(10331);
373 PHYSICS->mcConfig().AddHadronicId(10333);
374 PHYSICS->mcConfig().AddHadronicId(10411);
375 PHYSICS->mcConfig().AddHadronicId(10413);
376 PHYSICS->mcConfig().AddHadronicId(10421);
377 PHYSICS->mcConfig().AddHadronicId(10423);
378 PHYSICS->mcConfig().AddHadronicId(10431);
379 PHYSICS->mcConfig().AddHadronicId(10433);
380 PHYSICS->mcConfig().AddHadronicId(10441);
381 PHYSICS->mcConfig().AddHadronicId(10443);
382 PHYSICS->mcConfig().AddHadronicId(10511);
383 PHYSICS->mcConfig().AddHadronicId(10513);
384 PHYSICS->mcConfig().AddHadronicId(10521);
385 PHYSICS->mcConfig().AddHadronicId(10523);
386 PHYSICS->mcConfig().AddHadronicId(10531);
387 PHYSICS->mcConfig().AddHadronicId(10533);
388 PHYSICS->mcConfig().AddHadronicId(10541);
389 PHYSICS->mcConfig().AddHadronicId(10543);
390 PHYSICS->mcConfig().AddHadronicId(10551);
391 PHYSICS->mcConfig().AddHadronicId(10553);
392 PHYSICS->mcConfig().AddHadronicId(20113);
393 PHYSICS->mcConfig().AddHadronicId(20213);
394 PHYSICS->mcConfig().AddHadronicId(20223);
395 PHYSICS->mcConfig().AddHadronicId(20313);
396 PHYSICS->mcConfig().AddHadronicId(20323);
397 PHYSICS->mcConfig().AddHadronicId(20333);
398 PHYSICS->mcConfig().AddHadronicId(20413);
399 PHYSICS->mcConfig().AddHadronicId(20423);
400 PHYSICS->mcConfig().AddHadronicId(20433);
401 PHYSICS->mcConfig().AddHadronicId(20443);
402 PHYSICS->mcConfig().AddHadronicId(20513);
403 PHYSICS->mcConfig().AddHadronicId(20523);
404 PHYSICS->mcConfig().AddHadronicId(20533);
405 PHYSICS->mcConfig().AddHadronicId(20543);
406 PHYSICS->mcConfig().AddHadronicId(20553);
407 PHYSICS->mcConfig().AddHadronicId(100443);
408 PHYSICS->mcConfig().AddHadronicId(100553);
409 PHYSICS->mcConfig().AddHadronicId(9900440);
410 PHYSICS->mcConfig().AddHadronicId(9900441);
411 PHYSICS->mcConfig().AddHadronicId(9900443);
412 PHYSICS->mcConfig().AddHadronicId(9900551);
413 PHYSICS->mcConfig().AddHadronicId(9900553);
414 PHYSICS->mcConfig().AddHadronicId(9910441);
415 PHYSICS->mcConfig().AddHadronicId(9910551);
416
417 // definition of the multiparticle "invisible"
418 PHYSICS->mcConfig().AddInvisibleId(-16);
419 PHYSICS->mcConfig().AddInvisibleId(-14);
420 PHYSICS->mcConfig().AddInvisibleId(-12);
421 PHYSICS->mcConfig().AddInvisibleId(12);
422 PHYSICS->mcConfig().AddInvisibleId(14);
423 PHYSICS->mcConfig().AddInvisibleId(16);
424 PHYSICS->mcConfig().AddInvisibleId(1000022);
425 PHYSICS->mcConfig().AddInvisibleId(1000039);
426
427 // Initializing PhysicsService for RECO
428 PHYSICS->recConfig().Reset();
429
430
431 // Definition of the Signal Regions (SRs) of the analysis
432
433 Manager()->AddRegionSelection("SR2j_1600");
434 Manager()->AddRegionSelection("SR2j_2200");
435 Manager()->AddRegionSelection("SR2j_2800");
436
437 Manager()->AddRegionSelection("SR4j_1000");
438 Manager()->AddRegionSelection("SR4j_2200");
439 Manager()->AddRegionSelection("SR4j_3400");
440
441 Manager()->AddRegionSelection("SR5j_1600");
442
443 Manager()->AddRegionSelection("SR6j_1000");
444 Manager()->AddRegionSelection("SR6j_2200");
445 Manager()->AddRegionSelection("SR6j_3400");
446
447
448 // *** Definition of the prelesection cuts, common to all SRs
449 Manager()->AddCut("Preselection");
450 Manager()->AddCut("njets>=2");
451
452 // *** Jets multiplicity
453 std::string njets04[] = {"SR4j_1000","SR4j_2200","SR4j_3400"};
454 Manager()->AddCut("njets>=4" , njets04);
455
456 std::string njets05[] = {"SR5j_1600"};
457 Manager()->AddCut("njets>=5" , njets05);
458
459 std::string njets06[] = {"SR6j_1000","SR6j_2200","SR6j_3400" };
460 Manager()->AddCut("njets>=6" , njets06);
461
462
463 // Definition of the SR specific cuts
464
465 // *** Delta phi of the first 3 leading jets
466 std::string DPhi3jets04[] = {"SR2j_2200", "SR4j_1000","SR4j_2200","SR4j_3400" , "SR5j_1600" , "SR6j_1000", "SR6j_2200", "SR6j_3400"};
467 Manager()->AddCut("DPhi(jet1,2,(3),ptmiss)>04", DPhi3jets04 );
468
469 std::string DPhi3jets08[] = {"SR2j_1600","SR2j_2800"};
470 Manager()->AddCut("DPhi(jet1,2,(3),ptmiss)>08", DPhi3jets08);
471
472
473 // *** Delta phi of the remaining jets
474 std::string DPhirest02[] = {"SR2j_2200","SR4j_1000","SR4j_2200","SR4j_3400", "SR5j_1600","SR6j_1000","SR6j_2200","SR6j_3400"};
475 Manager()->AddCut("Dphi(ptmiss,j>3)>02" , DPhirest02);
476
477 std::string DPhirest04[] = {"SR2j_1600", "SR2j_2800" };
478 Manager()->AddCut("Dphi(ptmiss,j>3)>04", DPhirest04);
479
480
481 // *** pt of a specific jet
482 std::string jet1pt600[] = {"SR2j_2200","SR5j_1600"};
483 Manager()->AddCut("jet1pt>600" , jet1pt600);
484
485 std::string jet2pt250[] = {"SR2j_1600" , "SR2j_2800"};
486 Manager()->AddCut("jet2pt>250" , jet2pt250);
487
488 std::string jet4pt100[] = {"SR4j_1000","SR4j_2200","SR4j_3400"};
489 Manager()->AddCut("jet4pt>100" , jet4pt100);
490
491 std::string jet6pt75[] = {"SR6j_1000","SR6j_2200","SR6j_3400"};
492 Manager()->AddCut("jet6pt>75" , jet6pt75);
493
494
495 // *** Eta of the jets
496 Manager()->AddCut("j2eta<12" , "SR2j_2800");
497 Manager()->AddCut("j2eta<20" , "SR2j_1600");
498 Manager()->AddCut("j2eta<28" , "SR2j_2200");
499
500 std::string jet4eta20[] = {"SR4j_1000","SR4j_2200","SR4j_3400"};
501 Manager()->AddCut("j4eta<20" , jet4eta20);
502
503 Manager()->AddCut("j5eta<28" , "SR5j_1600");
504
505 std::string jet6eta20[] = {"SR6j_1000","SR6j_2200","SR6j_3400"};
506 Manager()->AddCut("j6eta<20" , jet6eta20);
507
508
509 // *** Aplanarity
510 std::string Aplanarity004[] = {"SR4j_1000","SR4j_2200","SR4j_3400"};
511 Manager()->AddCut("Aplanarity>004", Aplanarity004);
512
513 std::string Aplanarity008[] = {"SR6j_1000", "SR6j_2200","SR6j_3400"};
514 Manager()->AddCut("Aplanarity>008", Aplanarity008);
515
516
517 // specific cuts on MET over sqrt(HT)
518 std::string MET_HT_16[] = {"SR2j_2200", "SR2j_1600","SR2j_2800", "SR4j_1000","SR4j_2200", "SR6j_1000", "SR6j_2200", "SR5j_1600"};
519 Manager()->AddCut("MET_HT>16" , MET_HT_16 );
520
521 std::string MET_HT_10[] = {"SR4j_3400" , "SR6j_3400"};
522 Manager()->AddCut("MET_HT>10" , MET_HT_10);
523
524
525
526
527
528 // specific cuts on Meff
529 std::string Meff_1000[] = {"SR4j_1000" , "SR6j_1000"};
530 Manager()->AddCut("Meff>1000", Meff_1000);
531
532 std::string Meff_1600[] = {"SR2j_1600" , "SR5j_1600"};
533 Manager()->AddCut("Meff>1600", Meff_1600);
534
535 std::string Meff_2200[] = {"SR2j_2200" , "SR4j_2200", "SR6j_2200" };
536 Manager()->AddCut("Meff>2200", Meff_2200);
537
538 std::string Meff_2800[] = {"SR2j_2800"};
539 Manager()->AddCut("Meff>2800", Meff_2800);
540
541 std::string Meff_3400[] = {"SR4j_3400", "SR6j_3400"};
542 Manager()->AddCut("Meff>3400", Meff_3400);
543
544 return true;
545
546}
547
548
549
550// -----------------------------------------------------------------------------
551// Finalize
552// function called one time at the end of the analysis
553// -----------------------------------------------------------------------------
554void sfs_atlas_conf_2019_040::Finalize(const SampleFormat& summary, const std::vector<SampleFormat>& files)
555{}
556
557// -----------------------------------------------------------------------------
558// Execute
559// function called each time one event is read
560// -----------------------------------------------------------------------------
561bool sfs_atlas_conf_2019_040::Execute(SampleFormat& sample, const EventFormat& event)
562{
563
564 if (event.rec()!=0)
565 {
566
567
568 double myEventWeight;
569 if(Configuration().IsNoEventWeight()) myEventWeight=1.;
570 else if(event.mc()->weight()!=0.) myEventWeight=event.mc()->weight();
571 else
572 { //WARNING << "Found one event with a zero weight. Skipping..." << endmsg;
573 return false; }
574
575 Manager()->InitializeForNewEvent(myEventWeight);
576 vector<const RecLeptonFormat*> electrons, muons ; // isolated electrons and muons (probably non isolated are not necessary...)
577 vector<const RecJetFormat*> signalJets ; // jets
578
579 // Selecting Jets
580 double jetpt = 50;
581 double jeteta = 2.8 ;
582
583 for(unsigned int i=0; i<event.rec()->jets().size(); i++)
584 { const RecJetFormat *thisJet= &(event.rec()->jets()[i]);
585 double pT = thisJet->momentum().Pt() , eta = thisJet->eta() ;
586 if (pT > jetpt and fabs(eta) < jeteta )
587 { signalJets.push_back(thisJet); }
588 }
589
590
591 SORTER->sort(signalJets);
592
593
594 // Selecting leptons (veto on leptons, with different eta requirements for muons and electrons)
595 double muonpt = 6.0;
596 double muoneta = 2.8;
597 double electronpt = 7.0;
598 double electroneta = 2.47 ;
599
600 // Muons
601 for(unsigned int i=0; i<event.rec()->muons().size(); i++)
602 { const RecLeptonFormat *thisMuon = &(event.rec()->muons()[i]);
603 double pt = thisMuon->pt() , eta = thisMuon->momentum().Eta() ;
604 if ( pt > muonpt and fabs(eta) < muoneta) {
605 muons.push_back(thisMuon); }
606 }
607
608 // Electrons
609 for(unsigned int i=0; i<event.rec()->electrons().size(); i++)
610 { const RecLeptonFormat *thisElectron = &(event.rec()->electrons()[i]);
611 double pt = thisElectron->pt() , eta = thisElectron->momentum().Eta() ;
612 if (pt> electronpt and fabs(eta) < electroneta ) {
613 electrons.push_back(thisElectron); }
614 }
615
616 // Overlap removal
617 signalJets = Removal(signalJets, electrons, 0.2);
618 electrons = Removal(electrons, signalJets, 0.4);
619 muons = Removal(muons, signalJets, 0.4);
620
621
622 // Definition of HT
623 double HT = 0;
624 for(unsigned int j = 0; j < signalJets.size(); j++)
625 { HT += signalJets[j]->momentum().Pt(); }
626
627 // Definition of MET
628 MALorentzVector pTmiss = event.rec()->MET().momentum();
629 double MET = pTmiss.Pt();
630
631 // Definition of Meff
632 double Meff = MET + HT ;
633
634 // MET over sqrt(HT)
635 double MET_HT = MET/sqrt(HT);
636
637 //cout << Meff << "_" << MET_HT << "_" << MET << "_" << HT << endl;
638 // Checking the preselection requirements
639 // a. leading jet pt > 200 and 2nd jet pt > 50 GeV
640
641 bool j1_pt=false;
642 bool j2_pt=false;
643 if (signalJets.size()>0)
644 { j1_pt = signalJets[0]->pt()>200.0;
645 }
646 if (signalJets.size()>1)
647 { j2_pt = signalJets[1]->pt()>50.0; }
648
649 // b. lepton veto
650 bool leptonVeto = ((electrons.size()+muons.size())==0);
651
652 // c. Meff > 800 GeV
653 bool Meff_pre = (Meff > 800.0);
654 // d. MET > 300 GeV
655 bool MET_pre = (MET > 300.0);
656
657
658 if(!Manager()->ApplyCut(j1_pt && j2_pt && Meff_pre && leptonVeto && MET_pre, "Preselection")) return true;
659
660 //cout << "jets pt=" << j1_pt << "," << j2_pt << "---" << "meff=" << " " << Meff_pre << " MET=" << MET_pre << " bool Deltaphi" << Dphi_3jets_MET << endl;
661 if(!Manager()->ApplyCut( signalJets.size()>=2 , "njets>=2")) return true;
662
663 // SR dependent cuts
664 // Njets >= 4
665 if(!Manager()->ApplyCut( signalJets.size()>=4, "njets>=4")) return true;
666 // Njets >= 5
667 if(!Manager()->ApplyCut( signalJets.size()>=5, "njets>=5")) return true;
668 // Njets >= 6
669 if(!Manager()->ApplyCut( signalJets.size()>=6, "njets>=6")) return true;
670
671 // DPhi of the 3 leading pt jets
672
673 bool Dphi_3jets_MET_04 = true;
674 //if (signalJets.size()==1) { Dphi_3jets_MET_04 = ( signalJets[0]->dphi_0_pi(pTmiss) > 0.4 ); }
675 if (signalJets.size()==2) { Dphi_3jets_MET_04 = ( signalJets[0]->dphi_0_pi(pTmiss) > 0.4 && signalJets[1]->dphi_0_pi(pTmiss) > 0.4 ); }
676 if (signalJets.size()>=3) { Dphi_3jets_MET_04 = ( signalJets[0]->dphi_0_pi(pTmiss) > 0.4 && signalJets[1]->dphi_0_pi(pTmiss) > 0.4 && signalJets[2]->dphi_0_pi(pTmiss) > 0.4); }
677
678
679 if(!Manager()->ApplyCut( Dphi_3jets_MET_04, "DPhi(jet1,2,(3),ptmiss)>04")) return true;
680
681 bool Dphi_3jets_MET_08 = true;
682 //if (signalJets.size()==1) { Dphi_3jets_MET_08 = ( signalJets[0]->dphi_0_pi(pTmiss) > 0.8 ); }
683 if (signalJets.size()==2) { Dphi_3jets_MET_08 = ( signalJets[0]->dphi_0_pi(pTmiss) > 0.8 && signalJets[1]->dphi_0_pi(pTmiss) > 0.8 ); }
684 if (signalJets.size()>=3) { Dphi_3jets_MET_08 = ( signalJets[0]->dphi_0_pi(pTmiss) > 0.8 && signalJets[1]->dphi_0_pi(pTmiss) > 0.8 && signalJets[2]->dphi_0_pi(pTmiss) > 0.8); }
685
686 if(!Manager()->ApplyCut( Dphi_3jets_MET_08, "DPhi(jet1,2,(3),ptmiss)>08")) return true;
687
688 // DPhi of the rest of the jets (from the 4th on)
689 bool DPhiRest02 = true;
690 bool DPhiRest04 = true;
691
692 for(unsigned int j = 0; j < signalJets.size(); j++) {
693 if (j > 2) {
694 if (signalJets[j]->dphi_0_pi(pTmiss) < 0.2) {
695 DPhiRest02 = false;
696 }
697 if (signalJets[j]->dphi_0_pi(pTmiss) < 0.4) {
698 DPhiRest04 = false;
699 }
700 }
701 }
702
703 if(!Manager()->ApplyCut( DPhiRest02, "Dphi(ptmiss,j>3)>02")) return true;
704 if(!Manager()->ApplyCut( DPhiRest04, "Dphi(ptmiss,j>3)>04")) return true;
705
706 // Cut on specific jet pt
707 bool jet1pt_600 = (signalJets[0]->pt() > 600.0);
708 bool jet2pt_250 = (signalJets[1]->pt() > 250.0);
709 bool jet4pt_100 = true;
710 if (signalJets.size() >3) { jet4pt_100 = (signalJets[3]->pt() > 100.0);}
711 bool jet6pt_75 = true;
712 if (signalJets.size() >5) { jet6pt_75 = (signalJets[5]->pt() > 75.0);}
713
714 if(!Manager()->ApplyCut( jet1pt_600, "jet1pt>600")) return true;
715 if(!Manager()->ApplyCut( jet2pt_250, "jet2pt>250")) return true;
716 if(!Manager()->ApplyCut( jet4pt_100, "jet4pt>100")) return true;
717 if(!Manager()->ApplyCut( jet6pt_75, "jet6pt>75")) return true;
718
719 // |eta| for the first n signal jets
720 bool j2eta_20 = fabs(signalJets[0]->eta())<2.0 && fabs(signalJets[1]->eta())<2.0 ;
721 bool j2eta_12 = fabs(signalJets[0]->eta())<1.2 && fabs(signalJets[1]->eta())<1.2 ;
722 bool j2eta_28 = fabs(signalJets[0]->eta())<2.8 && fabs(signalJets[1]->eta())<2.8 ;
723 bool j4eta = true;
724 bool j5eta = true;
725 bool j6eta = true;
726
727 // jeta eta for SR4
728 if ( signalJets.size() > 3 ) { j4eta = fabs(signalJets[0]->eta())<2.0 &&
729 fabs(signalJets[1]->eta())<2.0 &&
730 fabs(signalJets[2]->eta())<2.0 &&
731 fabs(signalJets[3]->eta())<2.0 ; }
732 // jeta eta for SR5
733 if ( signalJets.size() > 4 ) { j5eta = fabs(signalJets[0]->eta())<2.8 &&
734 fabs(signalJets[1]->eta())<2.8 &&
735 fabs(signalJets[2]->eta())<2.8 &&
736 fabs(signalJets[3]->eta())<2.8 &&
737 fabs(signalJets[4]->eta())<2.8 ; }
738 // jeta eta for SR6
739 if ( signalJets.size() > 5 ) { j6eta = fabs(signalJets[0]->eta())<2.0 &&
740 fabs(signalJets[1]->eta())<2.0 &&
741 fabs(signalJets[2]->eta())<2.0 &&
742 fabs(signalJets[3]->eta())<2.0 &&
743 fabs(signalJets[4]->eta())<2.0 &&
744 fabs(signalJets[5]->eta())<2.0 ; }
745
746 if(!Manager()->ApplyCut( j2eta_12, "j2eta<12" )) return true;
747 if(!Manager()->ApplyCut( j2eta_20, "j2eta<20" )) return true;
748 if(!Manager()->ApplyCut( j2eta_28, "j2eta<28" )) return true;
749 if(!Manager()->ApplyCut( j4eta, "j4eta<20" )) return true;
750 if(!Manager()->ApplyCut( j5eta, "j5eta<28" )) return true;
751 if(!Manager()->ApplyCut( j6eta, "j6eta<20" )) return true;
752
753 // APLANARITY
754 // Construction of the sphericity tensor, calculation of the aplanarity
755 // using the Cardano algorithm
756 // see http://inspirehep.net/record/1510490/files/atlas_1605_03814.cpp?version=1
757 double S12=0., S31=0., S23=0., S11=0., S22=0., S33=0., Stot=0.;
758 for (unsigned int i=0; i<signalJets.size(); i++)
759 {
760 S11+=signalJets[i]->px()*signalJets[i]->px();
761 S12+=signalJets[i]->px()*signalJets[i]->py();
762 S22+=signalJets[i]->py()*signalJets[i]->py();
763 S23+=signalJets[i]->py()*signalJets[i]->pz();
764 S31+=signalJets[i]->pz()*signalJets[i]->px();
765 S33+=signalJets[i]->pz()*signalJets[i]->pz();
766 Stot+=signalJets[i]->p()*signalJets[i]->p();
767 }
768 S11=S11/Stot; S12=S12/Stot; S22=S22/Stot; S23=S23/Stot; S31=S31/Stot; S33=S33/Stot;
769 double Sii = S11+S22+S33;
770 double C0 = S11*S23*S23 + S22*S31*S31 + S33*S12*S12 - S11*S22*S33 - 2.*S31*S12*S23;
771 double C1 = S11*S22 + S22*S33 + S11*S33 - S12*S12 - S23*S23 - S31*S31;
772 double P = Sii*Sii - 3.*C1;
773 double Q = Sii*(P-1.5*C1) - 13.5*C0;
774 double phi = atan2(sqrt(fabs(27.*(C1*C1/4.*(P-C1) + C0*(Q+6.75*C0)))),Q)/3.;
775 double cth = sqrt(fabs(P))*cos(phi);
776 double sth = sqrt(fabs(P))*sin(phi)/sqrt(3.);
777 double a1 = (Sii-cth)/3.+sth;
778 double a2 = (Sii-cth)/3.-sth;
779 double a3 = (Sii-cth)/3.+cth;
780 double lam3 = 1.5*std::min(std::min(a1,a2),a3);
781
782
783 // Aplanarity cut
784 if(!Manager()->ApplyCut(lam3>0.04,"Aplanarity>004")) return true;
785 if(!Manager()->ApplyCut(lam3>0.08,"Aplanarity>008")) return true;
786
787
788 // MET over sqrt(HT)
789 if(!Manager()->ApplyCut(MET_HT>16,"MET_HT>16")) return true;
790 if(!Manager()->ApplyCut(MET_HT>10,"MET_HT>10")) return true;
791
792 // cout << Meff << "_" << MET_HT << "_" << MET << "_" << HT << endl;
793
794 if(!Manager()->ApplyCut(Meff > 1000.0, "Meff>1000")) return true;
795 if(!Manager()->ApplyCut(Meff > 1600.0, "Meff>1600")) return true;
796 if(!Manager()->ApplyCut(Meff > 2200.0, "Meff>2200")) return true;
797 if(!Manager()->ApplyCut(Meff > 2800.0, "Meff>2800")) return true;
798 if(!Manager()->ApplyCut(Meff > 3400.0, "Meff>3400")) return true;
799
800
801
802 return true;
803
804 }
805return true;
806}
807
808
809