ATLAS Offline Software
MissingMassToolV2.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 // 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 
14 // Default constructor
15 MissingMassToolV2::MissingMassToolV2(const std::string& name) : asg::AsgTool(name)
16 
17 {
18  declareProperty("Decorate", m_decorate=false, "Activate EventInfo decoration");
19  declareProperty("FloatStoppingCrit", m_float_stop=true, "Activate floating stopping criterion");
20  declareProperty("CalibSet", m_calib_set="2019", "Calibration: 2019");
21  // default negative. Only set parameter if positive
22  // so that the default are in MissingMassCalculator code
23  declareProperty("NsigmaMET", m_n_sigma_met=-1);
24  declareProperty("UseTailCleanup", m_tail_cleanup=-1);
25  declareProperty("UseVerbose", m_use_verbose=-1);
26  declareProperty("NiterFit2", m_niter_fit_2=-1);
27  declareProperty("NiterFit3", m_niter_fit_3=-1);
28  // Property not there in latest MMC tags
29  declareProperty("UseTauProbability", m_use_tau_probability=-1);
30  declareProperty("UseMnuProbability", m_use_mnu_probability=false);
31  declareProperty("UseDefaults", m_use_defaults=-1);
32  declareProperty("UseEfficiencyRecovery", m_use_efficiency_recovery=-1);
33  declareProperty("UseMETDphiLL", m_use_met_param_dphiLL = false);
34  declareProperty("ParamFilePath", m_param_file_path = "MMC_params_v1_fixed.root");
35  declareProperty("BeamEnergy", m_beam_energy = 6500.0);
36  declareProperty("LFVLeplepRefit", m_lfv_leplep_refit = true);
37 }
38 
39 // Copy constructor
41 
42 
44 
45 {
46  ATH_MSG_INFO("Initialize MissingMassTool");
47 
49 
50  if (m_calib_set == "2015HIGHMASS") {
52  } else if (m_calib_set == "UPGRADE") {
54  } else if (m_calib_set == "LFV") {
56  } else if (m_calib_set == "2016MC15C") {
58  } else if (m_calib_set == "2019") {
60  } else {
61  return StatusCode::FAILURE;
62  }
64  // set properties if non negative
78 
79  // could be made a property but maybe not with the enum
80  // What about a string argument ?
81 
82  return StatusCode::SUCCESS;
83 }
84 
86 
87 {
88  ATH_MSG_INFO("Finalize MissingMassTool");
89  delete m_MMC;
90  //delete Output;
91 
92  return StatusCode::SUCCESS;
93 }
94 
95 
96 // generic method
98  const xAOD::IParticle* part1,
99  const xAOD::IParticle* part2,
100  const xAOD::MissingET* met,
101  const int & njets)
102 {
103  // This is actually where the work is done
106 
107  // Very dry decoration - MET and resonance vectors are retrieved
108  // in dedicated method (see MissingMassToolV2.h)
109 
110  if (m_decorate) {
111  int aFitStatus = m_MMC->OutputInfo.GetFitStatus();
112  ei.auxdecor<int>("mmc_fit_status") = aFitStatus;
113  ei.auxdecor<double>("mmc_maxw_mass") = aFitStatus==1 ? m_MMC->OutputInfo.GetFittedMass(MMCFitMethodV2::MAXW) : -1;
114  ei.auxdecor<double>("mmc_mlm_mass") = aFitStatus==1 ? m_MMC->OutputInfo.GetFittedMass(MMCFitMethodV2::MLM) : -1;
115  ei.auxdecor<double>("mmc_mlnu3p_mass") = aFitStatus==1 ? m_MMC->OutputInfo.GetFittedMass(MMCFitMethodV2::MLNU3P) : -1;
116  TLorentzVector null4V(-1,-1,-1,-1);
117  ei.auxdecor<TLorentzVector>("mmc_mlnu3p_4vect") = aFitStatus==1 ? m_MMC->OutputInfo.GetResonanceVec(MMCFitMethodV2::MLNU3P) : null4V;
118  }
119 
120  return CP::CorrectionCode::Ok;
121 }
DiTauMassTools::MissingMassToolV2::m_MMC
MissingMassCalculatorV2 * m_MMC
Definition: MissingMassToolV2.h:78
DiTauMassTools::MissingMassProb::SetUseDphiLL
void SetUseDphiLL(bool val)
Definition: MissingMassProb.h:56
DiTauMassTools::MissingMassCalculatorV2::SetUseEfficiencyRecovery
void SetUseEfficiencyRecovery(const bool val)
Definition: MissingMassCalculatorV2.h:368
DiTauMassTools::MissingMassCalculatorV2::SetNiterFit3
void SetNiterFit3(const int val)
Definition: MissingMassCalculatorV2.h:348
DiTauMassTools::MissingMassCalculatorV2::SetNiterFit2
void SetNiterFit2(const int val)
Definition: MissingMassCalculatorV2.h:347
DiTauMassTools::MissingMassToolV2::m_use_met_param_dphiLL
bool m_use_met_param_dphiLL
Definition: MissingMassToolV2.h:92
DiTauMassTools::MissingMassToolV2::m_use_defaults
int m_use_defaults
Definition: MissingMassToolV2.h:85
DiTauMassTools::MissingMassToolV2::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: MissingMassToolV2.cxx:97
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::MissingMassCalculatorV2::SetNsigmaMETscan
void SetNsigmaMETscan(const double val)
Definition: MissingMassCalculatorV2.h:394
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
DiTauMassTools::MissingMassToolV2::m_niter_fit_3
int m_niter_fit_3
Definition: MissingMassToolV2.h:84
DiTauMassTools::MissingMassInput::SetUseDefaults
void SetUseDefaults(int val)
Definition: MissingMassInput.h:42
DiTauMassTools::MissingMassProb::SetUseMnuProbability
void SetUseMnuProbability(bool val)
Definition: MissingMassProb.h:53
asg
Definition: DataHandleTestTool.h:28
DiTauMassTools::MissingMassToolV2
Definition: MissingMassToolV2.h:23
DiTauMassTools::MissingMassInput::SetUseVerbose
void SetUseVerbose(bool val)
Definition: MissingMassInput.h:44
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
DiTauMassTools::MissingMassToolV2::m_use_tau_probability
int m_use_tau_probability
Definition: MissingMassToolV2.h:82
DiTauMassTools::MissingMassToolV2::m_param_file_path
std::string m_param_file_path
Definition: MissingMassToolV2.h:93
DiTauMassTools::MissingMassCalculatorV2::Prob
MissingMassProb * Prob
Definition: MissingMassCalculatorV2.h:340
SG::AuxElement::auxdecor
Decorator< T, ALLOC >::reference_type auxdecor(const std::string &name) const
Fetch an aux decoration, as a non-const reference.
DiTauMassTools::MissingMassOutput::GetResonanceVec
TLorentzVector GetResonanceVec(int fitcode) const
Definition: MissingMassOutput.cxx:189
DiTauMassTools::MissingMassCalculatorV2::OutputInfo
MissingMassOutput OutputInfo
Definition: MissingMassCalculatorV2.h:339
DiTauMassTools::MissingMassCalculatorV2::RunMissingMassCalculator
int RunMissingMassCalculator(const xAOD::IParticle *part1, const xAOD::IParticle *part2, const xAOD::MissingET *met, const int &njets)
Definition: MissingMassCalculatorV2.cxx:266
DiTauMassTools::MissingMassToolV2::initialize
virtual StatusCode initialize()
Initialize the tool.
Definition: MissingMassToolV2.cxx:43
DiTauMassTools::MMCFitMethodV2::MAXW
@ MAXW
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:42
part1
Definition: part1.py:1
DiTauMassTools
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:22
met
Definition: IMETSignificance.h:24
DiTauMassTools::MissingMassToolV2::m_n_sigma_met
double m_n_sigma_met
Definition: MissingMassToolV2.h:79
DiTauMassTools::MissingMassToolV2::m_decorate
bool m_decorate
Definition: MissingMassToolV2.h:89
DiTauMassTools::MissingMassCalculatorV2::SetBeamEnergy
void SetBeamEnergy(const double val)
Definition: MissingMassCalculatorV2.h:397
DiTauMassTools::MMCCalibrationSetV2::MMC2015HIGHMASS
@ MMC2015HIGHMASS
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:36
DiTauMassTools::MissingMassToolV2::m_lfv_leplep_refit
bool m_lfv_leplep_refit
Definition: MissingMassToolV2.h:95
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DiTauMassTools::MMCCalibrationSetV2::LFVMMC2012
@ LFVMMC2012
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:36
xAOD::MissingET_v1
Principal data object for Missing ET.
Definition: MissingET_v1.h:25
DiTauMassTools::MissingMassToolV2::m_tail_cleanup
int m_tail_cleanup
Definition: MissingMassToolV2.h:80
DiTauMassTools::MMCCalibrationSetV2::MMC2016MC15C
@ MMC2016MC15C
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:36
DiTauMassTools::MMCFitMethodV2::MLNU3P
@ MLNU3P
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:42
DiTauMassTools::MissingMassOutput::GetFittedMass
double GetFittedMass(int fitcode) const
Definition: MissingMassOutput.cxx:70
DiTauMassTools::MMCCalibrationSetV2::UPGRADE
@ UPGRADE
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:36
DiTauMassTools::MissingMassCalculatorV2::SetUseFloatStopping
void SetUseFloatStopping(const bool val)
Definition: MissingMassCalculatorV2.h:396
DiTauMassTools::MissingMassToolV2::MissingMassToolV2
MissingMassToolV2(const std::string &name)
Proper constructor for Athena.
Definition: MissingMassToolV2.cxx:15
DiTauMassTools::MissingMassToolV2::m_use_mnu_probability
bool m_use_mnu_probability
Definition: MissingMassToolV2.h:91
part2
Definition: part2.py:1
DiTauMassTools::MissingMassToolV2::m_use_verbose
int m_use_verbose
Definition: MissingMassToolV2.h:81
DiTauMassTools::MissingMassCalculatorV2::SetLFVLeplepRefit
void SetLFVLeplepRefit(const bool val)
Definition: MissingMassCalculatorV2.h:398
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
DiTauMassTools::MissingMassOutput::GetFitStatus
int GetFitStatus() const
Definition: MissingMassOutput.cxx:47
DiTauMassTools::MissingMassProb::SetUseTauProbability
void SetUseTauProbability(bool val)
Definition: MissingMassProb.h:50
DiTauMassTools::MissingMassToolV2::m_use_efficiency_recovery
int m_use_efficiency_recovery
Definition: MissingMassToolV2.h:86
DiTauMassTools::MMCFitMethodV2::MLM
@ MLM
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:42
DiTauMassTools::MissingMassToolV2::finalize
virtual StatusCode finalize()
Initialize the tool.
Definition: MissingMassToolV2.cxx:85
MissingMassToolV2.h
DiTauMassTools::MissingMassToolV2::m_beam_energy
double m_beam_energy
Definition: MissingMassToolV2.h:94
DiTauMassTools::MissingMassCalculatorV2
Definition: MissingMassCalculatorV2.h:45
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
DiTauMassTools::MMCCalibrationSetV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:36
CP::CorrectionCode::Ok
@ Ok
The correction was done successfully.
Definition: CorrectionCode.h:38
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
DiTauMassTools::MissingMassToolV2::m_calib_set
std::string m_calib_set
Definition: MissingMassToolV2.h:87
TauJet.h
CP::CorrectionCode
Return value from object correction CP tools.
Definition: CorrectionCode.h:31
DiTauMassTools::MMCCalibrationSetV2::MMC2019
@ MMC2019
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:36
DiTauMassTools::MissingMassCalculatorV2::SetEventNumber
void SetEventNumber(const int eventNumber)
Definition: MissingMassCalculatorV2.h:356
DiTauMassTools::MissingMassCalculatorV2::preparedInput
MissingMassInput preparedInput
Definition: MissingMassCalculatorV2.h:338
DiTauMassTools::MissingMassInput::SetUseTailCleanup
void SetUseTailCleanup(bool val)
Definition: MissingMassInput.h:43
DiTauMassTools::MissingMassToolV2::m_niter_fit_2
int m_niter_fit_2
Definition: MissingMassToolV2.h:83
DiTauMassTools::MissingMassToolV2::m_float_stop
bool m_float_stop
Definition: MissingMassToolV2.h:90