ATLAS Offline Software
Loading...
Searching...
No Matches
UncertaintyEnum.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5
7
8#include <math.h>
9
10namespace jet
11{
12
14// //
15// Component category enumeration methods //
16// //
18
19namespace CompCategory
20{
21 TString enumToString(const TypeEnum type)
22 {
23 switch (type)
24 {
25 case Statistical: return "Statistical";
26 case Detector: return "Detector";
27 case Modelling: return "Modelling";
28 case Mixed: return "Mixed";
29 case Effective: return "Effective";
30 case Other: return "Other";
31 default: return "UNKNOWN";
32 }
33 }
34
35 TypeEnum stringToEnum(const TString& type)
36 {
37 if (!type.CompareTo("Statistical"))
38 return Statistical;
39 if (!type.CompareTo("Detector"))
40 return Detector;
41 if (!type.CompareTo("Modelling"))
42 return Modelling;
43 if (!type.CompareTo("Mixed"))
44 return Mixed;
45 if (!type.CompareTo("Effective"))
46 return Effective;
47 if (!type.CompareTo("Other"))
48 return Other;
49 return UNKNOWN;
50 }
51} // end CompCategory namespace
52
53
55// //
56// Component correlation enumeration methods //
57// //
59
60namespace CompCorrelation
61{
62 TString enumToString(const TypeEnum type)
63 {
64 switch (type)
65 {
66 case Uncorrelated: return "Uncorrelated";
67 case Correlated: return "Correlated";
68 default: return "UNKNOWN";
69 }
70 }
71
72 TypeEnum stringToEnum(const TString& type)
73 {
74 if (!type.CompareTo("Uncorrelated"))
75 return Uncorrelated;
76 if (!type.CompareTo("Correlated"))
77 return Correlated;
78 return UNKNOWN;
79 }
80} // end CompCorrelation namespace
81
82
84// //
85// Component parametrization type enum methods //
86// //
88
89namespace CompParametrization
90{
91 TString enumToString(const TypeEnum type)
92 {
93 switch(type)
94 {
95 case Pt: return "Pt";
96 case PtEta: return "PtEta";
97 case PtAbsEta: return "PtAbsEta";
98 case PtAbsMass: return "PtAbsMass";
99 case PtMass: return "PtMass";
100 case PtMassEta: return "PtMassEta";
101 case PtMassAbsEta: return "PtMassAbsEta";
102 case PtAbsMassEta: return "PtAbsMassEta";
103 case PtAbsMassAbsEta: return "PtAbsMassAbsEta";
104 case eLOGmOe: return "eLOGmOe";
105 case eLOGmOeEta: return "eLOGmOeEta";
106 case eLOGmOeAbsEta: return "eLOGmOeAbsEta";
107 case PtLOGPtMassForTagSF: return "PtLOGPtMassForTagSF";
108 default: return "UNKNOWN";
109 }
110 }
111
112 TypeEnum stringToEnum(const TString& type)
113 {
114 if (!type.CompareTo("Pt",TString::kIgnoreCase))
115 return Pt;
116 if (!type.CompareTo("PtEta",TString::kIgnoreCase))
117 return PtEta;
118 if (!type.CompareTo("PtAbsEta",TString::kIgnoreCase))
119 return PtAbsEta;
120 if (!type.CompareTo("PtAbsMass",TString::kIgnoreCase))
121 return PtAbsMass;
122 if (!type.CompareTo("PtMass",TString::kIgnoreCase))
123 return PtMass;
124 if (!type.CompareTo("PtMassEta",TString::kIgnoreCase))
125 return PtMassEta;
126 if (!type.CompareTo("PtMassAbsEta",TString::kIgnoreCase))
127 return PtMassAbsEta;
128 if (!type.CompareTo("PtAbsMassEta",TString::kIgnoreCase))
129 return PtAbsMassEta;
130 if (!type.CompareTo("PtAbsMassAbsEta",TString::kIgnoreCase))
131 return PtAbsMassAbsEta;
132 if (!type.CompareTo("eLOGmOe",TString::kIgnoreCase))
133 return eLOGmOe;
134 if (!type.CompareTo("eLOGmOeEta",TString::kIgnoreCase))
135 return eLOGmOeEta;
136 if (!type.CompareTo("eLOGmOeAbsEta",TString::kIgnoreCase))
137 return eLOGmOeAbsEta;
138 if (!type.CompareTo("PtLOGPtMassForTagSF",TString::kIgnoreCase))
139 return PtLOGPtMassForTagSF;
140 return UNKNOWN;
141 }
142
144 {
145 switch(type)
146 {
147 case PtAbsEta:
148 case PtMassAbsEta:
149 case PtAbsMassAbsEta:
150 case eLOGmOeAbsEta: return true;
151
152 default: return false;
153 }
154 }
155
157 {
158 switch(type)
159 {
160 case PtAbsMass:
161 case PtMass:
163 case PtMassEta:
164 case PtMassAbsEta:
165 case PtAbsMassEta:
166 case PtAbsMassAbsEta:
167 case eLOGmOe:
168 case eLOGmOeEta:
169 case eLOGmOeAbsEta:
170 return true;
171
172 default:
173 return false;
174 }
175 }
176
177} // end CompParametrization namespace
178
179
181// //
182// Component parametrization type enum methods //
183// //
185
186namespace CompMassDef
187{
189 {
190 switch(type)
191 {
192 case FourVecMass: return "FourVec";
193 case CaloMass: return "Calo";
194 case TAMass: return "TA";
195 case CombMassQCD: return "CombQCD";
196 case CombMassWZ: return "CombWZ";
197 case CombMassHbb: return "CombHbb";
198 case CombMassTop: return "CombTop";
199 default: return "UNKNOWN";
200 }
201 }
202
203 TypeEnum stringToEnum(const TString& type)
204 {
205 if (!type.CompareTo("FourVec",TString::kIgnoreCase) || !type.CompareTo("FourVector",TString::kIgnoreCase))
206 return FourVecMass;
207 if (!type.CompareTo("Calo",TString::kIgnoreCase) || !type.CompareTo("Calorimeter",TString::kIgnoreCase))
208 return CaloMass;
209 if (!type.CompareTo("TA",TString::kIgnoreCase) || !type.CompareTo("TrackAssisted",TString::kIgnoreCase))
210 return TAMass;
211 if (type.BeginsWith("Comb",TString::kIgnoreCase) || type.BeginsWith("Combined",TString::kIgnoreCase))
212 {
213 if (type.EndsWith("QCD",TString::kIgnoreCase))
214 return CombMassQCD;
215 if (type.EndsWith("WZ",TString::kIgnoreCase))
216 return CombMassWZ;
217 if (type.EndsWith("Hbb",TString::kIgnoreCase))
218 return CombMassHbb;
219 if (type.EndsWith("Top",TString::kIgnoreCase))
220 return CombMassTop;
221 }
222 return UNKNOWN;
223 }
224
226 {
227 switch(type)
228 {
229 case CaloMass: return "JetJMSScaleMomentumCalo";
230 case TAMass: return "JetJMSScaleMomentumTA";
231 case CombMassQCD: return "JetJMSScaleMomentumCombQCD";
232 case CombMassWZ: return "JetJMSScaleMomentumCombWZ";
233 case CombMassHbb: return "JetJMSScaleMomentumCombHbb";
234 case CombMassTop: return "JetJMSScaleMomentumCombTop";
235 default: return "UNKNOWN_JET_MASS_SCALE";
236
237 }
238 }
239
240} // end CompMassDef namespace
241
243// //
244// Component parametrization type enum methods //
245// //
247
248namespace CompScaleVar
249{
251 {
252 switch(type)
253 {
254 case FourVec: return "FourVec";
255 case Pt: return "Pt";
256 case Mass: return "Mass";
257 case D12: return "Split12";
258 case D23: return "Split23";
259 case Tau21: return "Tau21";
260 case Tau32: return "Tau32";
261 case Tau21WTA: return "Tau21WTA";
262 case Tau32WTA: return "Tau32WTA";
263 case D2Beta1: return "D2Beta1";
264 case C2Beta1: return "C2Beta1";
265 case Qw: return "Qw";
266 case MassRes: return "MassRes";
267 case MassResAbs: return "MassResAbs";
268 case PtRes: return "PtRes";
269 case PtResAbs: return "PtResAbs";
270 case FourVecRes: return "FourVecRes";
271 case FourVecResAbs: return "FourVecResAbs";
272 case TagScaleFactor:return "TagScaleFactor";
273 case TagEfficiency: return "TagEfficiency";
274 default: return "UNKNOWN";
275 }
276 }
277
278 TypeEnum stringToEnum(const TString& type)
279 {
280 if (!type.CompareTo("FourVec",TString::kIgnoreCase) || !type.CompareTo("4Vec",TString::kIgnoreCase) || !type.CompareTo("FourVector",TString::kIgnoreCase))
281 return FourVec;
282 if (!type.CompareTo("Pt",TString::kIgnoreCase))
283 return Pt;
284 if (!type.CompareTo("Mass",TString::kIgnoreCase))
285 return Mass;
286 if (!type.CompareTo("D12",TString::kIgnoreCase) || !type.CompareTo("Split12",TString::kIgnoreCase))
287 return D12;
288 if (!type.CompareTo("D23",TString::kIgnoreCase) || !type.CompareTo("Split23",TString::kIgnoreCase))
289 return D23;
290 if (!type.CompareTo("Tau21",TString::kIgnoreCase))
291 return Tau21;
292 if (!type.CompareTo("Tau32",TString::kIgnoreCase))
293 return Tau32;
294 if (!type.CompareTo("Tau21WTA",TString::kIgnoreCase))
295 return Tau21WTA;
296 if (!type.CompareTo("Tau32WTA",TString::kIgnoreCase))
297 return Tau32WTA;
298 if (!type.CompareTo("D2Beta1",TString::kIgnoreCase))
299 return D2Beta1;
300 if (!type.CompareTo("C2Beta1",TString::kIgnoreCase))
301 return C2Beta1;
302 if (!type.CompareTo("Qw",TString::kIgnoreCase))
303 return Qw;
304 if (!type.CompareTo("MassRes",TString::kIgnoreCase))
305 return MassRes;
306 if (!type.CompareTo("MassResAbs",TString::kIgnoreCase))
307 return MassResAbs;
308 if (!type.CompareTo("PtRes",TString::kIgnoreCase))
309 return PtRes;
310 if (!type.CompareTo("PtResAbs",TString::kIgnoreCase))
311 return PtResAbs;
312 if (!type.CompareTo("FourVecRes",TString::kIgnoreCase))
313 return FourVecRes;
314 if (!type.CompareTo("FourVecResAbs",TString::kIgnoreCase))
315 return FourVecResAbs;
316 if (!type.CompareTo("TagScaleFactor",TString::kIgnoreCase))
317 return TagScaleFactor;
318 if (!type.CompareTo("TagEfficiency",TString::kIgnoreCase))
319 return TagEfficiency;
320 return UNKNOWN;
321 }
322
324 {
325 switch (type)
326 {
327 case FourVec:
328 case Pt:
329 case Mass:
330 case D12:
331 case D23:
332 case Tau21:
333 case Tau32:
334 case Tau21WTA:
335 case Tau32WTA:
336 case D2Beta1:
337 case C2Beta1:
338 case Qw:
339 case TagScaleFactor:
340 case TagEfficiency:
341 return true;
342
343 default:
344 return false;
345 }
346 }
347
349 {
350 switch (type)
351 {
352 case MassRes:
353 case MassResAbs:
354 case PtRes:
355 case PtResAbs:
356 case FourVecRes:
357 case FourVecResAbs:
358 return true;
359
360 default:
361 return false;
362 }
363 }
364
366 {
367 switch (type)
368 {
369 case MassResAbs:
370 case PtResAbs:
371 case FourVecResAbs:
372 return true;
373
374 default:
375 return false;
376 }
377 }
378
380 {
381 switch (type)
382 {
383 case MassRes:
384 case PtRes:
385 case FourVecRes:
386 return true;
387
388 default:
389 return false;
390 }
391 }
392}
393
394
396// //
397// Component parametrization type enum methods //
398// //
400
401namespace CompFlavorLabelVar
402{
404 {
405 switch (type)
406 {
407 case t_qqb: return "t_qqb";
408 case t: return "t";
409 case V_qq: return "V_qq";
410 case W_qq: return "W_qq";
411 case Z_qq: return "Z_qq";
412 case W_qq_From_t: return "W_qq_From_t";
413 case t_other: return "t_other";
414 case q: return "q";
415 default: return "UNKNOWN";
416 }
417 }
418
419 TypeEnum stringToEnum(const TString& type)
420 {
421 if (type=="t_qqb")
422 return t_qqb;
423 if (type=="t")
424 return t;
425 if (type=="V_qq")
426 return V_qq;
427 if (type=="W_qq")
428 return W_qq;
429 if (type=="Z_qq")
430 return Z_qq;
431 if (type=="W_qq_From_t")
432 return W_qq_From_t;
433 if (type=="t_other")
434 return t_other;
435 if (type=="q")
436 return q;
437 return UNKNOWN;
438 }
439}
440
441
443// //
444// Component parametrization type enum methods //
445// //
447
448namespace CompTaggerRegionVar
449{
451 {
452 switch (type)
453 {
454 case passMpassD2_2Var: return "2Var_passMpassD2";
455 case passMfailD2_2Var: return "2Var_passMfailD2";
456 case failMpassD2_2Var: return "2Var_failMpassD2";
457 case failMfailD2_2Var: return "2Var_failMfailD2";
458 default: return "UNKNOWN";
459 }
460 }
461
462 TypeEnum stringToEnum(const TString& type)
463 {
464 if (type.Contains("2Var",TString::kIgnoreCase))
465 {
466 if (type.Contains("passMpassD2",TString::kIgnoreCase))
467 return passMpassD2_2Var;
468 if (type.Contains("passMfailD2",TString::kIgnoreCase))
469 return passMfailD2_2Var;
470 if (type.Contains("failMpassD2",TString::kIgnoreCase))
471 return failMpassD2_2Var;
472 if (type.Contains("failMfailD2",TString::kIgnoreCase))
473 return failMfailD2_2Var;
474 }
475 return UNKNOWN;
476 }
477}
478
479
481// //
482// Pileup component enumeration methods //
483// //
485
486namespace PileupComp
487{
489 {
490 switch (type)
491 {
492 case OffsetNPV: return "Pileup_OffsetNPV";
493 case OffsetMu: return "Pileup_OffsetMu";
494 case PtTerm: return "Pileup_PtTerm";
495 case RhoTopology: return "Pileup_RhoTopology";
496 default: return "UNKNOWN";
497 }
498 }
499
500 TypeEnum stringToEnum(const TString& type)
501 {
502 if (type.Contains("Pileup",TString::kIgnoreCase))
503 {
504 if (type.Contains("OffsetNPV",TString::kIgnoreCase))
505 return OffsetNPV;
506 if (type.Contains("OffsetMu",TString::kIgnoreCase))
507 return OffsetMu;
508 if (type.Contains("PtTerm",TString::kIgnoreCase))
509 return PtTerm;
510 if (type.Contains("RhoTopology",TString::kIgnoreCase))
511 return RhoTopology;
512 }
513 return UNKNOWN;
514 }
515}
516
517
519// //
520// Flavour component enumeration methods //
521// //
523
524namespace FlavourComp
525{
527 {
528 switch (type)
529 {
530 case Response: return "FlavourResponse";
531 case Composition: return "FlavourComposition";
532 case bJES: return "bJES";
533 case PerJetResponse: return "PerJetFlavourResponse";
534 case PerJetResponse_Gluon: return "PerJetFlavourResponse_Gluon";
535 case PerJetResponse_LQ: return "PerJetFlavourResponse_LQ";
536 case PerJetResponse_B: return "PerJetFlavourResponse_B";
537 case PerJetResponse_C: return "PerJetFlavourResponse_C";
538 default: return "UNKNOWN";
539 }
540 }
541
542 TypeEnum stringToEnum(const TString& type)
543 {
544 if (type.Contains("Flavour",TString::kIgnoreCase) || type.Contains("Flavor",TString::kIgnoreCase))
545 {
546 if (type.Contains("Response",TString::kIgnoreCase))
547 {
548 if (type.Contains("PerJet",TString::kIgnoreCase)){
549 if(type.Contains("Response_Gluon",TString::kIgnoreCase)) return PerJetResponse_Gluon;
550 else if(type.Contains("Response_LQ",TString::kIgnoreCase)) return PerJetResponse_LQ;
551 else if(type.Contains("Response_B",TString::kIgnoreCase)) return PerJetResponse_B;
552 else if(type.Contains("Response_C",TString::kIgnoreCase)) return PerJetResponse_C;
553 else return PerJetResponse;
554 }
555 else{
556 return Response;
557 }
558 }
559 if (type.Contains("Composition",TString::kIgnoreCase))
560 return Composition;
561 }
562 if (type.Contains("bJES",TString::kIgnoreCase))
563 return bJES;
564 return UNKNOWN;
565 }
566}
567
568
570// //
571// Combined mass component enumeration methods //
572// //
574
575namespace CombMassComp
576{
578 {
579 switch(type)
580 {
581 case Calo: return "Calo";
582 case TA: return "TA";
583 case Both: return "Both";
584 default: return "UNKNOWN";
585 }
586 }
587
588 TypeEnum stringToEnum(const TString& type)
589 {
590 if (type.Contains("Calo",TString::kIgnoreCase))
591 return Calo;
592 if (type.Contains("TA",TString::kIgnoreCase))
593 return TA;
594 if (type.Contains("Both",TString::kIgnoreCase))
595 return Both;
596 return UNKNOWN;
597 }
598}
599
600
602// //
603// Jet topology enumeration methods //
604// //
606
607namespace JetTopology
608{
610 {
611 switch(type)
612 {
613 case QCD: return "QCD";
614 case WZ: return "WZ";
615 case Hbb: return "Hbb";
616 case Top: return "Top";
617 case MIXED: return "MIXED";
618 default: return "UNKNOWN";
619 }
620 }
621
622 TypeEnum stringToEnum(const TString& type)
623 {
624 if (!type.CompareTo("QCD",TString::kIgnoreCase))
625 return QCD;
626 if (!type.CompareTo("WZ",TString::kIgnoreCase))
627 return WZ;
628 if (!type.CompareTo("Hbb",TString::kIgnoreCase))
629 return Hbb;
630 if (!type.CompareTo("Top",TString::kIgnoreCase))
631 return Top;
632 return UNKNOWN;
633 }
634}
635
636
638// //
639// Histogram interpolation enumeration methods //
640// //
642
643namespace Interpolate
644{
646 {
647 switch(type)
648 {
649 case None: return "None";
650 case Full: return "Full";
651 case OnlyX: return "X";
652 case OnlyY: return "Y";
653 default: return "UNKNOWN";
654 }
655 }
656
657 TypeEnum stringToEnum(const TString& type)
658 {
659 if (!type.CompareTo("None",TString::kIgnoreCase) || !type.CompareTo("false",TString::kIgnoreCase))
660 return None;
661 if (!type.CompareTo("Full",TString::kIgnoreCase) || !type.CompareTo("true",TString::kIgnoreCase))
662 return Full;
663 if (!type.CompareTo("OnlyX",TString::kIgnoreCase))
664 return OnlyX;
665 if (!type.CompareTo("OnlyY",TString::kIgnoreCase))
666 return OnlyY;
667 return UNKNOWN;
668 }
669}
670
671} // end jet namespace
672
TString enumToString(const TypeEnum type)
TypeEnum stringToEnum(const TString &type)
TypeEnum stringToEnum(const TString &type)
TString enumToString(const TypeEnum type)
TString enumToString(const TypeEnum type)
TypeEnum stringToEnum(const TString &type)
TString enumToString(const TypeEnum type)
TypeEnum stringToEnum(const TString &type)
TypeEnum stringToEnum(const TString &type)
TString getJetScaleString(const TypeEnum type)
TString enumToString(const TypeEnum type)
TypeEnum stringToEnum(const TString &type)
bool includesMass(const TypeEnum type)
TString enumToString(const TypeEnum type)
bool isAbsEta(const TypeEnum type)
TypeEnum stringToEnum(const TString &type)
bool isRelResolutionType(const TypeEnum type)
bool isScaleType(const TypeEnum type)
bool isResolutionType(const TypeEnum type)
bool isAbsResolutionType(const TypeEnum type)
TString enumToString(const TypeEnum type)
TString enumToString(const TypeEnum type)
TypeEnum stringToEnum(const TString &type)
TString enumToString(const TypeEnum type)
TypeEnum stringToEnum(const TString &type)
TypeEnum stringToEnum(const TString &type)
TString enumToString(const TypeEnum type)
TypeEnum stringToEnum(const TString &type)
TString enumToString(const TypeEnum type)
TypeEnum stringToEnum(const TString &type)
TString enumToString(const TypeEnum type)