ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
TauID
DiTauMassTools
DiTauMassTools
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// Asg wrapper around the MissingMassCalculator
6
// author Michael Huebner <michael.huebner@no.spam.cern.ch>
7
#ifndef DITAUMASSTOOLS_HELPERFUNCTIONS_H
8
#define DITAUMASSTOOLS_HELPERFUNCTIONS_H
9
10
// Framework includes
11
#include "Math/VectorUtil.h"
12
#include "Math/Vector2D.h"
13
14
#include <vector>
15
16
class
TF1;
17
class
TDirectory;
18
19
namespace
xAOD
{
20
class
IParticle
;
21
}
22
23
namespace
DiTauMassTools
{
24
using
ROOT::Math::XYVector;
25
using
ROOT::Math::VectorUtil::Phi_mpi_pi;
26
27
namespace
MaxHistStrategy
28
{
29
enum
e
{
MAXBIN
=0,
MAXBINWINDOW
,
SLIDINGWINDOW
,
FIT
,
MAXMAXHISTSTRATEGY
};
30
}
31
32
namespace
HistInfo
33
{
34
enum
e
{
PROB
=0,
INTEGRAL
,
CHI2
,
DISCRI
,
TANTHETA
,
TANTHETAW
,
FITLENGTH
,
RMS
,
RMSVSDISCRI
,
MEANBIN
,
MAXHISTINFO
};
35
}
36
37
namespace
MMCCalibrationSet
38
{
39
enum
e
{
MMC2015HIGHMASS
=0,
UPGRADE
,
LFVMMC2012
,
MMC2019
,
MMC2024
,
MAXMMCCALIBRATIONSET
};
40
const
std::string
name
[
MAXMMCCALIBRATIONSET
]={
"MMC2015HIGHMASS"
,
"UPGRADE"
,
"LFVMMC2012"
,
"MMC2019"
,
"MMC2024"
};
41
}
42
43
namespace
MMCFitMethod
44
{
45
enum
e
{
MAXW
=0,
MLM
,
MLNU3P
,
MAX
};
46
const
std::string
name
[
MAX
]={
"MAXW=MaximumWeight"
,
"MLM=MostLikelyMass"
,
"MLNU3P=MostLikelyNeUtrino3Momentum"
};
47
const
std::string
shortName
[
MAX
]={
"MAXW"
,
"MLM"
,
"MLNU3P"
};
48
}
49
50
namespace
TauTypes
51
{
52
enum
e
{
ll
=0,
lh
,
hh
};
53
}
54
55
// define ignore template to suppress warnings in MissingMassProb
56
// see source file of MissingMassProb for further reasoning
57
template
<
typename
T>
void
ignore
(T &&){}
58
59
template
<
typename
VectorType1,
typename
VectorType2>
60
double
Angle
(
const
VectorType1& vec1,
const
VectorType2& vec2) {
61
// Calculate the dot product and magnitudes (similar to but faster than ::Angle())
62
double
dotProduct = vec1.Px() * vec2.Px() + vec1.Py() * vec2.Py() + vec1.Pz() * vec2.Pz();
63
double
magnitude1 = vec1.P();
64
double
magnitude2 = vec2.P();
65
66
// Calculate and return the angle
67
return
acos(dotProduct / (magnitude1 * magnitude2));
68
}
69
70
template
<
typename
VectorType>
71
double
mT
(
const
VectorType &
vec
,
const
XYVector & met_vec) {
72
double
mt=0.0;
73
double
dphi=std::abs(
Phi_mpi_pi
(
vec
.Phi()-met_vec.Phi()));
74
double
cphi=1.0-cos(dphi);
75
if
(cphi>0.0) mt=sqrt(2.0*
vec
.Pt()*met_vec.R()*cphi);
76
return
mt;
77
}
78
79
//________________________________________________________________________
80
81
bool
updateDouble
(
const
double
in,
double
& out) ;
82
void
fastSinCos
(
const
double
&
phi
,
double
& sinPhi,
double
& cosPhi);
83
double
fixPhiRange
(
const
double
&
phi
);
84
double
MaxDelPhi
(
int
tau_type,
double
Pvis,
double
dRmax_tau);
85
int
getLFVMode
(
const
xAOD::IParticle
* p1,
const
xAOD::IParticle
* p2,
int
mmcType1,
int
mmcType2);
86
int
mmcType
(
const
xAOD::IParticle
* part);
// returns particle type as required by MMC
87
void
readInParams
(TDirectory* dir,
MMCCalibrationSet::e
aset, std::vector<TF1*>& lep_numass, std::vector<TF1*>& lep_angle, std::vector<TF1*>& lep_ratio, std::vector<TF1*>& had_angle, std::vector<TF1*>& had_ratio);
88
}
// namespace DiTauMassTools
89
90
#endif
// not DITAUMASSTOOLS_HELPERFUNCTIONS_H
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
vec
std::vector< size_t > vec
Definition
CombinationsGeneratorTest.cxx:9
Phi_mpi_pi
__HOSTDEV__ double Phi_mpi_pi(double)
Definition
GeoRegion.cxx:10
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition
Event/xAOD/xAODBase/xAODBase/IParticle.h:41
DiTauMassTools::HistInfo
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:33
DiTauMassTools::HistInfo::e
e
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::HistInfo::DISCRI
@ DISCRI
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::HistInfo::INTEGRAL
@ INTEGRAL
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::HistInfo::PROB
@ PROB
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::HistInfo::FITLENGTH
@ FITLENGTH
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::HistInfo::RMS
@ RMS
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::HistInfo::TANTHETAW
@ TANTHETAW
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::HistInfo::TANTHETA
@ TANTHETA
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::HistInfo::CHI2
@ CHI2
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::HistInfo::RMSVSDISCRI
@ RMSVSDISCRI
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::HistInfo::MAXHISTINFO
@ MAXHISTINFO
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::HistInfo::MEANBIN
@ MEANBIN
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:34
DiTauMassTools::MMCCalibrationSet
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:38
DiTauMassTools::MMCCalibrationSet::e
e
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:39
DiTauMassTools::MMCCalibrationSet::MMC2015HIGHMASS
@ MMC2015HIGHMASS
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:39
DiTauMassTools::MMCCalibrationSet::MAXMMCCALIBRATIONSET
@ MAXMMCCALIBRATIONSET
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:39
DiTauMassTools::MMCCalibrationSet::MMC2019
@ MMC2019
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:39
DiTauMassTools::MMCCalibrationSet::LFVMMC2012
@ LFVMMC2012
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:39
DiTauMassTools::MMCCalibrationSet::UPGRADE
@ UPGRADE
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:39
DiTauMassTools::MMCCalibrationSet::MMC2024
@ MMC2024
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:39
DiTauMassTools::MMCCalibrationSet::name
const std::string name[MAXMMCCALIBRATIONSET]
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools::MMCFitMethod
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:44
DiTauMassTools::MMCFitMethod::name
const std::string name[MAX]
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:46
DiTauMassTools::MMCFitMethod::e
e
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:45
DiTauMassTools::MMCFitMethod::MAXW
@ MAXW
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:45
DiTauMassTools::MMCFitMethod::MLM
@ MLM
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:45
DiTauMassTools::MMCFitMethod::MAX
@ MAX
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:45
DiTauMassTools::MMCFitMethod::MLNU3P
@ MLNU3P
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:45
DiTauMassTools::MMCFitMethod::shortName
const std::string shortName[MAX]
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:47
DiTauMassTools::MaxHistStrategy
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:28
DiTauMassTools::MaxHistStrategy::e
e
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:29
DiTauMassTools::MaxHistStrategy::FIT
@ FIT
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:29
DiTauMassTools::MaxHistStrategy::MAXBIN
@ MAXBIN
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:29
DiTauMassTools::MaxHistStrategy::MAXBINWINDOW
@ MAXBINWINDOW
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:29
DiTauMassTools::MaxHistStrategy::SLIDINGWINDOW
@ SLIDINGWINDOW
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:29
DiTauMassTools::MaxHistStrategy::MAXMAXHISTSTRATEGY
@ MAXMAXHISTSTRATEGY
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:29
DiTauMassTools::TauTypes
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:51
DiTauMassTools::TauTypes::e
e
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:52
DiTauMassTools::TauTypes::ll
@ ll
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:52
DiTauMassTools::TauTypes::lh
@ lh
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:52
DiTauMassTools::TauTypes::hh
@ hh
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:52
DiTauMassTools
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:23
DiTauMassTools::getLFVMode
int getLFVMode(const xAOD::IParticle *p1, const xAOD::IParticle *p2, int mmcType1, int mmcType2)
Definition
PhysicsAnalysis/TauID/DiTauMassTools/Root/HelperFunctions.cxx:92
DiTauMassTools::fixPhiRange
double fixPhiRange(const double &phi)
Definition
PhysicsAnalysis/TauID/DiTauMassTools/Root/HelperFunctions.cxx:30
DiTauMassTools::ignore
void ignore(T &&)
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:57
DiTauMassTools::MaxDelPhi
double MaxDelPhi(int tau_type, double Pvis, double dRmax_tau)
Definition
PhysicsAnalysis/TauID/DiTauMassTools/Root/HelperFunctions.cxx:24
DiTauMassTools::Angle
double Angle(const VectorType1 &vec1, const VectorType2 &vec2)
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:60
DiTauMassTools::mT
double mT(const VectorType &vec, const XYVector &met_vec)
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:71
DiTauMassTools::mmcType
int mmcType(const xAOD::IParticle *part)
Definition
PhysicsAnalysis/TauID/DiTauMassTools/Root/HelperFunctions.cxx:144
DiTauMassTools::updateDouble
bool updateDouble(const double in, double &out)
Definition
PhysicsAnalysis/TauID/DiTauMassTools/Root/HelperFunctions.cxx:84
DiTauMassTools::fastSinCos
void fastSinCos(const double &phi, double &sinPhi, double &cosPhi)
Definition
PhysicsAnalysis/TauID/DiTauMassTools/Root/HelperFunctions.cxx:51
DiTauMassTools::readInParams
void readInParams(TDirectory *dir, MMCCalibrationSet::e aset, std::vector< TF1 * > &lep_numass, std::vector< TF1 * > &lep_angle, std::vector< TF1 * > &lep_ratio, std::vector< TF1 * > &had_angle, std::vector< TF1 * > &had_ratio)
Definition
PhysicsAnalysis/TauID/DiTauMassTools/Root/HelperFunctions.cxx:181
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition
ICaloAffectedTool.h:24
Generated on
for ATLAS Offline Software by
1.17.0