ATLAS Offline Software
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)
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
22 
23 
25 
26 {
27  ATH_MSG_INFO("Initialize MissingMassTool");
28 
30 
31  if (m_calib_set == "2015HIGHMASS") {
33  } else if (m_calib_set == "UPGRADE") {
35  } else if (m_calib_set == "LFV") {
37  } else if (m_calib_set == "2016MC15C") {
39  } else if (m_calib_set == "2019") {
41  } else if (m_calib_set == "2024") {
43  } else {
44  return StatusCode::FAILURE;
45  }
46 
47 
48  if(aset == MMCCalibrationSet::MMC2019 && m_param_file_path.value().find("v051224") != std::string::npos){
49  ATH_MSG_WARNING( m_param_file_path << " param file not suitable for 2019 calibration set; please use MMC_params_v1_fixed.root");
50  }
51 
52  if(aset == MMCCalibrationSet::MMC2024 && m_param_file_path.value().find("MMC_params_v1") != std::string::npos){
53  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");
54  }
55 
61  // set properties if non negative
75 
76  // could be made a property but maybe not with the enum
77  // What about a string argument ?
78 
79  return StatusCode::SUCCESS;
80 }
81 
83 
84 {
85  ATH_MSG_INFO("Finalize MissingMassTool");
86  delete m_MMC;
87  //delete Output;
88 
89  return StatusCode::SUCCESS;
90 }
91 
92 
93 // generic method
95  const xAOD::IParticle* part1,
96  const xAOD::IParticle* part2,
97  const xAOD::MissingET* met,
98  const int & njets)
99 {
100  // This is actually where the work is done
103 
104  // Very dry decoration - MET and resonance vectors are retrieved
105  // in dedicated method (see MissingMassTool.h)
106 
107  if (m_decorate) {
108  int aFitStatus = m_MMC->OutputInfo.GetFitStatus();
109  static const SG::Decorator<int> dec_mmc_fit_status ("mmc_fit_status");
110  static const SG::Decorator<double> dec_mmc_maxw_mass ("mmc_maxw_mass");
111  static const SG::Decorator<double> dec_mmc_mlm_mass ("mmc_mlm_mass");
112  static const SG::Decorator<double> dec_mmc_mlnu3p_mass ("mmc_mlnu3p_mass");
113  static const SG::Decorator<PtEtaPhiMVector> dec_mmc_mlnu3p_4vect ("mmc_mlnu3p_4vect");
114  dec_mmc_fit_status(ei) = aFitStatus;
115  dec_mmc_maxw_mass(ei) = aFitStatus==1 ? m_MMC->OutputInfo.GetFittedMass(MMCFitMethod::MAXW) : -1;
116  dec_mmc_mlm_mass(ei) = aFitStatus==1 ? m_MMC->OutputInfo.GetFittedMass(MMCFitMethod::MLM) : -1;
117  dec_mmc_mlnu3p_mass(ei) = aFitStatus==1 ? m_MMC->OutputInfo.GetFittedMass(MMCFitMethod::MLNU3P) : -1;
118  PtEtaPhiMVector null4V(0.,0.,0.,0.);
119  dec_mmc_mlnu3p_4vect(ei) = aFitStatus==1 ? m_MMC->OutputInfo.GetResonanceVec(MMCFitMethod::MLNU3P) : null4V;
120  }
121 
122  return CP::CorrectionCode::Ok;
123 }
DiTauMassTools::MMCCalibrationSet::MMC2024
@ MMC2024
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools::MissingMassTool::m_tail_cleanup
Gaudi::Property< int > m_tail_cleanup
Definition: MissingMassTool.h:92
DiTauMassTools::MissingMassProb::SetUseDphiLL
void SetUseDphiLL(bool val)
Definition: MissingMassProb.h:57
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:94
DiTauMassTools::MissingMassCalculator::SaveLlhHisto
void SaveLlhHisto(const bool val)
Definition: MissingMassCalculator.cxx:3097
DiTauMassTools::MissingMassCalculator::SetNsigmaMETscan
void SetNsigmaMETscan(const double val)
Definition: MissingMassCalculator.h:393
DiTauMassTools::MMCCalibrationSet::MMC2015HIGHMASS
@ MMC2015HIGHMASS
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::EventInfo_v1::eventNumber
uint64_t eventNumber() const
The current event's event number.
DiTauMassTools::MissingMassCalculator::SetNiterFit2
void SetNiterFit2(const int val)
Definition: MissingMassCalculator.h:349
DiTauMassTools::MissingMassTool::m_float_stop_checkfreq
Gaudi::Property< int > m_float_stop_checkfreq
Definition: MissingMassTool.h:86
DiTauMassTools::MMCFitMethod::MLM
@ MLM
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:46
MissingMassTool.h
DiTauMassTools::MissingMassCalculator::SetFloatStoppingCheckFreq
void SetFloatStoppingCheckFreq(const int val)
Definition: MissingMassCalculator.h:397
DiTauMassTools::MissingMassInput::SetUseDefaults
void SetUseDefaults(int val)
Definition: MissingMassInput.h:44
DiTauMassTools::MissingMassProb::SetUseMnuProbability
void SetUseMnuProbability(bool val)
Definition: MissingMassProb.h:54
asg
Definition: DataHandleTestTool.h:28
DiTauMassTools::MissingMassCalculator::SetUseEfficiencyRecovery
void SetUseEfficiencyRecovery(const bool val)
Definition: MissingMassCalculator.h:367
DiTauMassTools::MissingMassTool::m_param_file_path
Gaudi::Property< std::string > m_param_file_path
Definition: MissingMassTool.h:101
DiTauMassTools::MissingMassTool::m_use_verbose
Gaudi::Property< int > m_use_verbose
Definition: MissingMassTool.h:93
DiTauMassTools::MissingMassCalculator::SetEventNumber
void SetEventNumber(const int eventNumber)
Definition: MissingMassCalculator.h:358
DiTauMassTools::MissingMassCalculator::SetNiterFit3
void SetNiterFit3(const int val)
Definition: MissingMassCalculator.h:350
DiTauMassTools::MissingMassTool::m_n_sigma_met
Gaudi::Property< double > m_n_sigma_met
Definition: MissingMassTool.h:91
DiTauMassTools::MissingMassInput::SetUseVerbose
void SetUseVerbose(bool val)
Definition: MissingMassInput.h:46
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
DiTauMassTools::MissingMassTool::m_save_llh_histo
Gaudi::Property< bool > m_save_llh_histo
Definition: MissingMassTool.h:104
IMissingMassTool::PtEtaPhiMVector
ROOT::Math::PtEtaPhiMVector PtEtaPhiMVector
Definition: IMissingMassTool.h:31
DiTauMassTools::MissingMassTool::m_lfv_leplep_refit
Gaudi::Property< bool > m_lfv_leplep_refit
Definition: MissingMassTool.h:103
DiTauMassTools::MMCCalibrationSet::LFVMMC2012
@ LFVMMC2012
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools::MissingMassTool::MissingMassTool
MissingMassTool(const std::string &name)
Proper constructor for Athena.
Definition: MissingMassTool.cxx:16
DiTauMassTools::MissingMassCalculator
Definition: MissingMassCalculator.h:46
DiTauMassTools::MissingMassTool::m_use_mnu_probability
Gaudi::Property< bool > m_use_mnu_probability
Definition: MissingMassTool.h:97
part1
Definition: part1.py:1
DiTauMassTools
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:24
DiTauMassTools::MissingMassTool::m_float_stop_miniter
Gaudi::Property< int > m_float_stop_miniter
Definition: MissingMassTool.h:85
DiTauMassTools::MissingMassCalculator::SetBeamEnergy
void SetBeamEnergy(const double val)
Definition: MissingMassCalculator.h:399
met
Definition: IMETSignificance.h:24
DiTauMassTools::MissingMassCalculator::preparedInput
MissingMassInput preparedInput
Definition: MissingMassCalculator.h:340
SG::Decorator< int >
DiTauMassTools::MissingMassCalculator::SetLFVLeplepRefit
void SetLFVLeplepRefit(const bool val)
Definition: MissingMassCalculator.h:400
DiTauMassTools::MissingMassTool::m_use_met_param_dphiLL
Gaudi::Property< bool > m_use_met_param_dphiLL
Definition: MissingMassTool.h:100
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DiTauMassTools::MMCCalibrationSet::MMC2019
@ MMC2019
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
xAOD::MissingET_v1
Principal data object for Missing ET.
Definition: MissingET_v1.h:25
DiTauMassTools::MMCCalibrationSet::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools::MissingMassOutput::GetFittedMass
double GetFittedMass(int fitcode) const
Definition: MissingMassOutput.cxx:72
DiTauMassTools::MissingMassTool::m_calib_set
Gaudi::Property< std::string > m_calib_set
Definition: MissingMassTool.h:88
part2
Definition: part2.py:1
DiTauMassTools::MissingMassTool::m_decorate
Gaudi::Property< bool > m_decorate
Definition: MissingMassTool.h:83
DiTauMassTools::MissingMassCalculator::RunMissingMassCalculator
int RunMissingMassCalculator(const xAOD::IParticle *part1, const xAOD::IParticle *part2, const xAOD::MissingET *met, const int &njets)
Definition: MissingMassCalculator.cxx:197
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
DiTauMassTools::MissingMassTool::initialize
virtual StatusCode initialize()
Initialize the tool.
Definition: MissingMassTool.cxx:24
DiTauMassTools::MissingMassOutput::GetFitStatus
int GetFitStatus() const
Definition: MissingMassOutput.cxx:49
DiTauMassTools::MissingMassTool::m_niter_fit_2
Gaudi::Property< int > m_niter_fit_2
Definition: MissingMassTool.h:94
DiTauMassTools::MissingMassProb::SetUseTauProbability
void SetUseTauProbability(bool val)
Definition: MissingMassProb.h:51
DiTauMassTools::MissingMassTool
Definition: MissingMassTool.h:26
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
DiTauMassTools::MissingMassCalculator::SetFloatStoppingMinIter
void SetFloatStoppingMinIter(const int val)
Definition: MissingMassCalculator.h:396
CP::CorrectionCode::Ok
@ Ok
The correction was done successfully.
Definition: CorrectionCode.h:38
DiTauMassTools::MissingMassTool::m_float_stop_comp
Gaudi::Property< double > m_float_stop_comp
Definition: MissingMassTool.h:87
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
DiTauMassTools::MissingMassCalculator::SetFloatStoppingComp
void SetFloatStoppingComp(const double val)
Definition: MissingMassCalculator.h:398
DiTauMassTools::MMCFitMethod::MAXW
@ MAXW
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:46
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DiTauMassTools::MissingMassTool::m_beam_energy
Gaudi::Property< double > m_beam_energy
Definition: MissingMassTool.h:102
TauJet.h
DiTauMassTools::MissingMassTool::finalize
virtual StatusCode finalize()
Initialize the tool.
Definition: MissingMassTool.cxx:82
DiTauMassTools::MissingMassTool::m_float_stop
Gaudi::Property< bool > m_float_stop
Definition: MissingMassTool.h:84
CP::CorrectionCode
Return value from object correction CP tools.
Definition: CorrectionCode.h:31
DiTauMassTools::MMCFitMethod::MLNU3P
@ MLNU3P
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:46
DiTauMassTools::MMCCalibrationSet::MMC2016MC15C
@ MMC2016MC15C
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools::MissingMassTool::m_MMC
MissingMassCalculator * m_MMC
Definition: MissingMassTool.h:81
DiTauMassTools::MissingMassTool::m_use_tau_probability
Gaudi::Property< int > m_use_tau_probability
Definition: MissingMassTool.h:96
DiTauMassTools::MissingMassInput::SetUseTailCleanup
void SetUseTailCleanup(bool val)
Definition: MissingMassInput.h:45
DiTauMassTools::MissingMassCalculator::SetUseFloatStopping
void SetUseFloatStopping(const bool val)
Definition: MissingMassCalculator.cxx:3132
DiTauMassTools::MissingMassTool::m_use_defaults
Gaudi::Property< int > m_use_defaults
Definition: MissingMassTool.h:98
DiTauMassTools::MMCCalibrationSet::UPGRADE
@ UPGRADE
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:40
DiTauMassTools::MissingMassTool::m_niter_fit_3
Gaudi::Property< int > m_niter_fit_3
Definition: MissingMassTool.h:95
DiTauMassTools::MissingMassTool::m_use_efficiency_recovery
Gaudi::Property< int > m_use_efficiency_recovery
Definition: MissingMassTool.h:99
DiTauMassTools::MissingMassCalculator::OutputInfo
MissingMassOutput OutputInfo
Definition: MissingMassCalculator.h:341
DiTauMassTools::MissingMassOutput::GetResonanceVec
PtEtaPhiMVector GetResonanceVec(int fitcode) const
Definition: MissingMassOutput.cxx:191
DiTauMassTools::MissingMassCalculator::Prob
MissingMassProb * Prob
Definition: MissingMassCalculator.h:342