ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
TauID
DiTauMassTools
Root
MissingMassTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// vim: ts=2 sw=2
6
// Local include(s)
7
#include "
DiTauMassTools/MissingMassTool.h
"
8
9
// EDM include(s):
10
#include "
xAODTau/TauJet.h
"
11
12
using namespace
DiTauMassTools
;
13
using
ROOT::Math::PtEtaPhiMVector;
14
15
// Default constructor
16
MissingMassTool::MissingMassTool
(
const
std::string& name) :
asg
::
AsgTool
(name)
17
{
18
}
19
20
// Copy constructor
21
MissingMassTool::MissingMassTool
(
const
MissingMassTool
& other):
asg
::
AsgTool
(other.name() +
"_copy"
) {}
22
23
24
StatusCode
MissingMassTool::initialize
()
25
26
{
27
ATH_MSG_INFO
(
"Initialize MissingMassTool"
);
28
29
MMCCalibrationSet::e
aset;
30
31
if
(
m_calib_set
==
"2015HIGHMASS"
) {
32
aset =
MMCCalibrationSet::MMC2015HIGHMASS
;
33
}
else
if
(
m_calib_set
==
"UPGRADE"
) {
34
aset =
MMCCalibrationSet::UPGRADE
;
35
}
else
if
(
m_calib_set
==
"LFV"
) {
36
aset =
MMCCalibrationSet::LFVMMC2012
;
37
}
else
if
(
m_calib_set
==
"2019"
) {
38
aset =
MMCCalibrationSet::MMC2019
;
39
}
else
if
(
m_calib_set
==
"2024"
) {
40
aset =
MMCCalibrationSet::MMC2024
;
41
}
else
{
42
return
StatusCode::FAILURE;
43
}
44
45
46
if
(aset ==
MMCCalibrationSet::MMC2019
&&
m_param_file_path
.value().find(
"v051224"
) != std::string::npos){
47
ATH_MSG_WARNING
(
m_param_file_path
<<
" param file not suitable for 2019 calibration set; please use MMC_params_v1_fixed.root"
);
48
}
49
50
if
(aset ==
MMCCalibrationSet::MMC2024
&&
m_param_file_path
.value().find(
"MMC_params_v1"
) != std::string::npos){
51
ATH_MSG_WARNING
(
m_param_file_path
<<
" param file not suitable for 2024 calibration set; please use MMC_params_v051224_angle_likelihoodFit.root or MMC_params_v051224_angle_noLikelihoodFit.root"
);
52
}
53
54
m_MMC
=
new
MissingMassCalculator
(aset,
m_param_file_path
);
55
m_MMC
->SetUseFloatStopping(
m_float_stop
);
56
m_MMC
->SetFloatStoppingMinIter(
m_float_stop_miniter
);
57
m_MMC
->SetFloatStoppingCheckFreq(
m_float_stop_checkfreq
);
58
m_MMC
->SetFloatStoppingComp(
m_float_stop_comp
);
59
// set properties if non negative
60
if
(
m_n_sigma_met
>=0)
m_MMC
->SetNsigmaMETscan(
m_n_sigma_met
);
61
if
(
m_tail_cleanup
>=0)
m_MMC
->preparedInput.SetUseTailCleanup(
m_tail_cleanup
);
62
if
(
m_use_verbose
>=0)
m_MMC
->preparedInput.SetUseVerbose(
m_use_verbose
);
63
if
(
m_niter_fit_2
>=0)
m_MMC
->SetNiterFit2(
m_niter_fit_2
);
64
if
(
m_niter_fit_3
>=0)
m_MMC
->SetNiterFit3(
m_niter_fit_3
);
65
if
(
m_use_tau_probability
>=0)
m_MMC
->Prob->SetUseTauProbability(
m_use_tau_probability
);
66
if
(
m_use_defaults
>=0)
m_MMC
->preparedInput.SetUseDefaults(
m_use_defaults
);
67
if
(
m_use_efficiency_recovery
>=0)
m_MMC
->SetUseEfficiencyRecovery(
m_use_efficiency_recovery
);
68
if
(
m_use_met_param_dphiLL
)
m_MMC
->Prob->SetUseDphiLL(
m_use_met_param_dphiLL
);
69
if
(
m_use_mnu_probability
)
m_MMC
->Prob->SetUseMnuProbability(
m_use_mnu_probability
);
70
if
(
m_beam_energy
)
m_MMC
->SetBeamEnergy(
m_beam_energy
);
71
if
(!
m_lfv_leplep_refit
)
m_MMC
->SetLFVLeplepRefit(
false
);
72
m_MMC
->SaveLlhHisto(
m_save_llh_histo
);
73
74
// could be made a property but maybe not with the enum
75
// What about a string argument ?
76
77
return
StatusCode::SUCCESS;
78
}
79
80
StatusCode
MissingMassTool::finalize
()
81
82
{
83
ATH_MSG_INFO
(
"Finalize MissingMassTool"
);
84
delete
m_MMC
;
85
//delete Output;
86
87
return
StatusCode::SUCCESS;
88
}
89
90
91
// generic method
92
CP::CorrectionCode
MissingMassTool::apply
(
const
xAOD::EventInfo
& ei,
93
const
xAOD::IParticle
*
part1
,
94
const
xAOD::IParticle
*
part2
,
95
const
xAOD::MissingET
*
met
,
96
const
int
& njets)
97
{
98
// This is actually where the work is done
99
m_MMC
->SetEventNumber(ei.
eventNumber
());
100
m_MMC
->RunMissingMassCalculator(
part1
,
part2
,
met
, njets);
101
102
return
CP::CorrectionCode::Ok
;
103
}
104
105
CP::CorrectionCode
MissingMassTool::doCollinearApprox
(
106
const
xAOD::IParticle
*
part1
,
107
const
xAOD::IParticle
*
part2
,
108
const
xAOD::MissingET
*
met
,
109
const
bool
kMMCsynchronize,
110
double
&mass,
double
&xp1,
double
&xp2)
111
{
112
m_MMC
->MassCollinear(
part1
,
part2
,
met
,kMMCsynchronize,mass,xp1,xp2);
113
return
CP::CorrectionCode::Ok
;
114
}
115
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
MissingMassTool.h
TauJet.h
CP::CorrectionCode
Return value from object correction CP tools.
Definition
CorrectionCode.h:31
CP::CorrectionCode::Ok
@ Ok
The correction was done successfully.
Definition
CorrectionCode.h:38
DiTauMassTools::MissingMassCalculator
Definition
MissingMassCalculator.h:47
DiTauMassTools::MissingMassTool::m_n_sigma_met
Gaudi::Property< double > m_n_sigma_met
Definition
MissingMassTool.h:85
DiTauMassTools::MissingMassTool::apply
virtual CP::CorrectionCode apply(const xAOD::EventInfo &ei, const xAOD::IParticle *part1, const xAOD::IParticle *part2, const xAOD::MissingET *met, const int &njets)
Definition
MissingMassTool.cxx:92
DiTauMassTools::MissingMassTool::m_use_verbose
Gaudi::Property< int > m_use_verbose
Definition
MissingMassTool.h:87
DiTauMassTools::MissingMassTool::m_MMC
MissingMassCalculator * m_MMC
Definition
MissingMassTool.h:76
DiTauMassTools::MissingMassTool::m_use_mnu_probability
Gaudi::Property< bool > m_use_mnu_probability
Definition
MissingMassTool.h:91
DiTauMassTools::MissingMassTool::m_tail_cleanup
Gaudi::Property< int > m_tail_cleanup
Definition
MissingMassTool.h:86
DiTauMassTools::MissingMassTool::m_float_stop_miniter
Gaudi::Property< int > m_float_stop_miniter
Definition
MissingMassTool.h:79
DiTauMassTools::MissingMassTool::m_float_stop_comp
Gaudi::Property< double > m_float_stop_comp
Definition
MissingMassTool.h:81
DiTauMassTools::MissingMassTool::m_niter_fit_2
Gaudi::Property< int > m_niter_fit_2
Definition
MissingMassTool.h:88
DiTauMassTools::MissingMassTool::finalize
virtual StatusCode finalize()
Initialize the tool.
Definition
MissingMassTool.cxx:80
DiTauMassTools::MissingMassTool::m_float_stop
Gaudi::Property< bool > m_float_stop
Definition
MissingMassTool.h:78
DiTauMassTools::MissingMassTool::initialize
virtual StatusCode initialize()
Initialize the tool.
Definition
MissingMassTool.cxx:24
DiTauMassTools::MissingMassTool::m_lfv_leplep_refit
Gaudi::Property< bool > m_lfv_leplep_refit
Definition
MissingMassTool.h:97
DiTauMassTools::MissingMassTool::m_use_efficiency_recovery
Gaudi::Property< int > m_use_efficiency_recovery
Definition
MissingMassTool.h:93
DiTauMassTools::MissingMassTool::m_beam_energy
Gaudi::Property< double > m_beam_energy
Definition
MissingMassTool.h:96
DiTauMassTools::MissingMassTool::MissingMassTool
MissingMassTool(const std::string &name)
Proper constructor for Athena.
Definition
MissingMassTool.cxx:16
DiTauMassTools::MissingMassTool::m_use_tau_probability
Gaudi::Property< int > m_use_tau_probability
Definition
MissingMassTool.h:90
DiTauMassTools::MissingMassTool::m_save_llh_histo
Gaudi::Property< bool > m_save_llh_histo
Definition
MissingMassTool.h:98
DiTauMassTools::MissingMassTool::m_param_file_path
Gaudi::Property< std::string > m_param_file_path
Definition
MissingMassTool.h:95
DiTauMassTools::MissingMassTool::m_use_met_param_dphiLL
Gaudi::Property< bool > m_use_met_param_dphiLL
Definition
MissingMassTool.h:94
DiTauMassTools::MissingMassTool::m_float_stop_checkfreq
Gaudi::Property< int > m_float_stop_checkfreq
Definition
MissingMassTool.h:80
DiTauMassTools::MissingMassTool::m_use_defaults
Gaudi::Property< int > m_use_defaults
Definition
MissingMassTool.h:92
DiTauMassTools::MissingMassTool::m_calib_set
Gaudi::Property< std::string > m_calib_set
Definition
MissingMassTool.h:82
DiTauMassTools::MissingMassTool::m_niter_fit_3
Gaudi::Property< int > m_niter_fit_3
Definition
MissingMassTool.h:89
DiTauMassTools::MissingMassTool::doCollinearApprox
virtual CP::CorrectionCode doCollinearApprox(const xAOD::IParticle *part1, const xAOD::IParticle *part2, const xAOD::MissingET *met, const bool kMMCsynchronize, double &mass, double &xp1, double &xp2)
Definition
MissingMassTool.cxx:105
asg::AsgTool::AsgTool
AsgTool(const std::string &name)
Constructor specifying the tool instance's name.
Definition
AsgTool.cxx:58
xAOD::EventInfo_v1::eventNumber
uint64_t eventNumber() const
The current event's event number.
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition
Event/xAOD/xAODBase/xAODBase/IParticle.h:41
DiTauMassTools::MMCCalibrationSet::e
e
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools::MMCCalibrationSet::MMC2015HIGHMASS
@ MMC2015HIGHMASS
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools::MMCCalibrationSet::MMC2019
@ MMC2019
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools::MMCCalibrationSet::LFVMMC2012
@ LFVMMC2012
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools::MMCCalibrationSet::UPGRADE
@ UPGRADE
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools::MMCCalibrationSet::MMC2024
@ MMC2024
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools
Definition
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:24
asg
Definition
DataHandleTestTool.h:28
met
Definition
IMETSignificance.h:24
part1
Definition
part1.py:1
part2
Definition
part2.py:1
xAOD::EventInfo
EventInfo_v1 EventInfo
Definition of the latest event info version.
Definition
IEventInfoCnvTool.h:16
xAOD::MissingET
MissingET_v1 MissingET
Version control by type defintion.
Definition
Event/xAOD/xAODMissingET/xAODMissingET/MissingET.h:15
Generated on
for ATLAS Offline Software by
1.17.0