Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
MissingMassTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Asg wrapper around the MissingMassCalculator
6 // author Quentin Buat <quentin.buat@no.spam.cern.ch>
7 #ifndef DITAUMASSTOOLS_MISSINGMASSTOOL_H
8 #define DITAUMASSTOOLS_MISSINGMASSTOOL_H
9 
10 // Framework include(s):
11 #include "AsgTools/AsgTool.h"
13 
14 //Local include(s):
18 
19 #include <string>
20 
21 namespace DiTauMassTools{
22  using ROOT::Math::PtEtaPhiMVector;
24 
25 class MissingMassTool : virtual public IMissingMassTool, virtual public asg::AsgTool
26 {
27 
30 
31  public:
32 
34  MissingMassTool(const std::string& name);
37 
39  virtual ~MissingMassTool() { };
40 
42  virtual StatusCode initialize();
43 
45  virtual StatusCode finalize();
46 
47 
48  // generic method
49  virtual CP::CorrectionCode apply (const xAOD::EventInfo& ei,
50  const xAOD::IParticle* part1,
51  const xAOD::IParticle* part2,
52  const xAOD::MissingET* met,
53  const int & njets);
54 
55  virtual void calculate(const xAOD::EventInfo & ei,
56  const PtEtaPhiMVector & vis_tau1,
57  const PtEtaPhiMVector & vis_tau2,
58  const int & tau1_decay_type,
59  const int & tau2_decay_type,
60  const xAOD::MissingET & met,
61  const int & njets){
62  ignore(ei); ignore(vis_tau1); ignore(vis_tau2);
63  ignore(tau1_decay_type); ignore(tau2_decay_type);
64  ignore(met); ignore(njets);}
65 
66  virtual MissingMassCalculator* get() {return m_MMC;}
67  virtual double GetFitStatus(int method) {(void) method; return m_MMC->OutputInfo.GetFitStatus();}
68  virtual double GetFittedMass(int method) {return m_MMC->OutputInfo.GetFittedMass(method);}
75  virtual int GetNNoSol() {return m_MMC->GetNNoSol();}
76  virtual int GetNMetroReject() {return m_MMC->GetNMetroReject();}
77  virtual int GetNSol() {return m_MMC->GetNSol();}
78 
79  private:
80 
82 
83  Gaudi::Property<bool> m_decorate{this, "Decorate", false};
84  Gaudi::Property<bool> m_float_stop{this, "FloatStoppingCrit", true, "Applying Floating Stopping Criterion to speed up MMC"};
85  Gaudi::Property<int> m_float_stop_miniter{this, "FloatStoppingCritMinIter", 10000, "Minimum number of iteration to apply Floating Stopping Criterion"};
86  Gaudi::Property<int> m_float_stop_checkfreq{this, "FloatStoppingCritCheckFreq", 1000, "Number of events frequency for Floating Stopping Criterion to be applied after minimum number of iteration"};
87  Gaudi::Property<double> m_float_stop_comp{this, "FloatStoppingCritCheckComp", 0.05, "Percentage to assess the sigma compatibilities in the Floating Stopping Criterion"};
88  Gaudi::Property<std::string> m_calib_set{this, "CalibSet", "2019"}; // Change to "2024" if the new MMC version is to be used.
89  // default negative. Only set parameter if positive
90  // so that the default are in MissingMassCalculator code
91  Gaudi::Property<double> m_n_sigma_met{this, "NsigmaMET", -1};
92  Gaudi::Property<int> m_tail_cleanup{this, "UseTailCleanup", -1};
93  Gaudi::Property<int> m_use_verbose{this, "UseVerbose", -1};
94  Gaudi::Property<int> m_niter_fit_2{this, "NiterFit2", -1};
95  Gaudi::Property<int> m_niter_fit_3{this, "NiterFit3", -1};
96  Gaudi::Property<int> m_use_tau_probability{this, "UseTauProbability", -1};
97  Gaudi::Property<bool> m_use_mnu_probability{this, "UseMnuProbability", false};
98  Gaudi::Property<int> m_use_defaults{this, "UseDefaults", -1};
99  Gaudi::Property<int> m_use_efficiency_recovery{this, "UseEfficiencyRecovery", -1};
100  Gaudi::Property<bool> m_use_met_param_dphiLL{this, "UseMETDphiLL", false};
101  Gaudi::Property<std::string> m_param_file_path{this, "ParamFilePath", "MMC_params_v1_fixed.root"}; // // Available parameterization files: MMC_params_v051224_angle_noLikelihoodFit.root and MMC_params_v051224_angle_likelihoodFit.root. More details on the differences between these two options can be found in the slides https://indico.cern.ch/event/1487242/contributions/6269201/attachments/2989313/5265428/HbbHtautau_MMCstudies_statusReport_181224_v2.pdf
102  Gaudi::Property<double> m_beam_energy{this, "BeamEnergy", 6500.0};
103  Gaudi::Property<bool> m_lfv_leplep_refit{this, "LFVLeplepRefit", true};
104  Gaudi::Property<bool> m_save_llh_histo{this, "SaveLlhHisto", false};
105 
106 };
107 } // namespace DiTauMassTools
108 
109 #endif
RunTileTBRec.method
method
Definition: RunTileTBRec.py:73
DiTauMassTools::MissingMassTool::m_tail_cleanup
Gaudi::Property< int > m_tail_cleanup
Definition: MissingMassTool.h:92
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
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
DiTauMassTools::MissingMassTool::GetNNoSol
virtual int GetNNoSol()
Definition: MissingMassTool.h:75
PropertyWrapper.h
index
Definition: index.py:1
DiTauMassTools::MissingMassTool::m_float_stop_checkfreq
Gaudi::Property< int > m_float_stop_checkfreq
Definition: MissingMassTool.h:86
DiTauMassTools::MissingMassTool::~MissingMassTool
virtual ~MissingMassTool()
virtual destructor
Definition: MissingMassTool.h:39
IMissingMassTool::XYVector
ROOT::Math::XYVector XYVector
Definition: IMissingMassTool.h:32
DiTauMassTools::MissingMassTool::m_param_file_path
Gaudi::Property< std::string > m_param_file_path
Definition: MissingMassTool.h:101
HelperFunctions.h
DiTauMassTools::MissingMassTool::get
virtual MissingMassCalculator * get()
Definition: MissingMassTool.h:66
DiTauMassTools::MissingMassTool::m_use_verbose
Gaudi::Property< int > m_use_verbose
Definition: MissingMassTool.h:93
DiTauMassTools::MissingMassTool::m_n_sigma_met
Gaudi::Property< double > m_n_sigma_met
Definition: MissingMassTool.h:91
DiTauMassTools::MissingMassTool::GetFittedMassErrorUp
virtual double GetFittedMassErrorUp(int method)
Definition: MissingMassTool.h:69
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
Phi_mpi_pi
__HOSTDEV__ double Phi_mpi_pi(double)
Definition: GeoRegion.cxx:7
DiTauMassTools::MissingMassTool::m_lfv_leplep_refit
Gaudi::Property< bool > m_lfv_leplep_refit
Definition: MissingMassTool.h:103
DiTauMassTools::MissingMassTool::MissingMassTool
MissingMassTool(const std::string &name)
Proper constructor for Athena.
Definition: MissingMassTool.cxx:16
DiTauMassTools::MissingMassOutput::GetFittedMassErrorLow
double GetFittedMassErrorLow(int fitcode) const
Definition: MissingMassOutput.cxx:104
DiTauMassTools::MissingMassTool::GetNeutrino4vec
virtual PtEtaPhiMVector GetNeutrino4vec(int method, int index)
Definition: MissingMassTool.h:73
DiTauMassTools::MissingMassCalculator
Definition: MissingMassCalculator.h:46
IMissingMassTool
Definition: IMissingMassTool.h:25
DiTauMassTools::MissingMassTool::m_use_mnu_probability
Gaudi::Property< bool > m_use_mnu_probability
Definition: MissingMassTool.h:97
part1
Definition: part1.py:1
DiTauMassTools::ignore
void ignore(T &&)
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:58
DiTauMassTools::MissingMassTool::calculate
virtual void calculate(const xAOD::EventInfo &ei, const PtEtaPhiMVector &vis_tau1, const PtEtaPhiMVector &vis_tau2, const int &tau1_decay_type, const int &tau2_decay_type, const xAOD::MissingET &met, const int &njets)
Definition: MissingMassTool.h:55
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::MissingMassOutput::GetFittedMetVec
XYVector GetFittedMetVec(int fitcode) const
Definition: MissingMassOutput.cxx:207
met
Definition: IMETSignificance.h:24
DiTauMassTools::MissingMassOutput::GetNeutrino4vec
PtEtaPhiMVector GetNeutrino4vec(int fitcode, int ind) const
Definition: MissingMassOutput.cxx:157
DiTauMassTools::MissingMassTool::GetResonanceVec
virtual PtEtaPhiMVector GetResonanceVec(int method)
Definition: MissingMassTool.h:71
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
xAOD::MissingET_v1
Principal data object for Missing ET.
Definition: MissingET_v1.h:25
DiTauMassTools::MissingMassOutput::GetTau4vec
PtEtaPhiMVector GetTau4vec(int fitcode, int ind) const
Definition: MissingMassOutput.cxx:174
MissingMassCalculator.h
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
DiTauMassTools::MissingMassTool::GetNSol
virtual int GetNSol()
Definition: MissingMassTool.h:77
DiTauMassTools::MissingMassTool::GetTau4vec
virtual PtEtaPhiMVector GetTau4vec(int method, int index)
Definition: MissingMassTool.h:74
DiTauMassTools::MissingMassCalculator::GetNMetroReject
int GetNMetroReject() const
Definition: MissingMassCalculator.h:408
DiTauMassTools::MissingMassCalculator::GetNNoSol
int GetNNoSol() const
Definition: MissingMassCalculator.h:407
part2
Definition: part2.py:1
DiTauMassTools::MissingMassOutput::GetFittedMassErrorUp
double GetFittedMassErrorUp(int fitcode) const
Definition: MissingMassOutput.cxx:88
DiTauMassTools::MissingMassTool::m_decorate
Gaudi::Property< bool > m_decorate
Definition: MissingMassTool.h:83
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
DiTauMassTools::MissingMassTool::GetFittedMassErrorLow
virtual double GetFittedMassErrorLow(int method)
Definition: MissingMassTool.h:70
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::MissingMassTool::GetFitStatus
virtual double GetFitStatus(int method)
Definition: MissingMassTool.h:67
DiTauMassTools::MissingMassTool
Definition: MissingMassTool.h:26
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
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::MissingMassTool::GetFittedMetVec
virtual XYVector GetFittedMetVec(int method)
Definition: MissingMassTool.h:72
DiTauMassTools::MissingMassTool::m_beam_energy
Gaudi::Property< double > m_beam_energy
Definition: MissingMassTool.h:102
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
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::MissingMassTool::GetNMetroReject
virtual int GetNMetroReject()
Definition: MissingMassTool.h:76
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::MissingMassTool::m_use_defaults
Gaudi::Property< int > m_use_defaults
Definition: MissingMassTool.h:98
DiTauMassTools::MissingMassTool::m_niter_fit_3
Gaudi::Property< int > m_niter_fit_3
Definition: MissingMassTool.h:95
AsgTool.h
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::MissingMassTool::GetFittedMass
virtual double GetFittedMass(int method)
Definition: MissingMassTool.h:68
IMissingMassTool.h
DiTauMassTools::MissingMassCalculator::GetNSol
int GetNSol() const
Definition: MissingMassCalculator.h:409