ATLAS Offline Software
Loading...
Searching...
No Matches
DiTauMassCalculatorAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7#ifndef DI_TAU_MASS_CALCULATOR_ALG_H
8#define DI_TAU_MASS_CALCULATOR_ALG_H
9
10// Algorithm includes
16
17// Framework includes
24
27
28namespace CP {
29 using ROOT::Math::PtEtaPhiMVector;
30
32 {
33
34 public:
36 virtual StatusCode initialize() override;
37 virtual StatusCode execute(const EventContext& ctx) override;
38
39 private:
40 // configurable properties
41 Gaudi::Property<bool> m_doMAXW {this, "doMAXW", false, "save information about the reconstruction with the maximum-weight estimator"};
42 Gaudi::Property<bool> m_doMLNU3P {this, "doMLNU3P", false, "save information about the reconstruction with the best-fit neutrino kinematics"};
43 Gaudi::Property<bool> m_doCollinearApprox {this, "doCollinearApprox", false, "save additional information (mass, x0, x1) from collinear approximation calculation"};
44 Gaudi::Property<std::string> m_metTerm {this, "metTerm", "Final", "the name of the MET term to use"};
45
46 // the MMC tool
47 ToolHandle<IMissingMassTool> m_mmc {this, "mmcTool", "DiTauMassTools::MissingMassTool", "the Missing Mass Calculator tool"};
48
49 // systematics
51
52 // inputs needed for reconstruction
53 SysReadHandle<xAOD::ElectronContainer> m_electronsHandle {this, "electrons", "", "the electron container to use"};
54 SysReadSelectionHandle m_electronSelection {this, "electronSelection", "", "the selection on the input electrons"};
55
56 SysReadHandle<xAOD::MuonContainer> m_muonsHandle {this, "muons", "", "the muon container to use"};
57 SysReadSelectionHandle m_muonSelection {this, "muonSelection", "", "the selection on the input muons"};
58
59 SysReadHandle<xAOD::JetContainer> m_jetsHandle {this, "jets", "", "the jet container to use"};
60 SysReadSelectionHandle m_jetSelection {this, "jetSelection", "", "the selection on the input jets"};
61
62 SysReadHandle<xAOD::TauJetContainer> m_tausHandle {this, "taus", "", "the tau jet container to use"};
63 SysReadSelectionHandle m_tauSelection {this, "tauSelection", "", "the selection on the input tau jets"};
64
65 SysReadHandle<xAOD::MissingETContainer> m_metHandle {this, "met", "", "the MET container to use"};
66
67 SysReadHandle<xAOD::EventInfo> m_eventInfoHandle {this, "eventInfo", "EventInfo", "the EventInfo container to read selection decisions from"};
68
69 SysReadSelectionHandle m_preselection {this, "eventSelection", "", "Name of the selection on which this MMC instance is allowed to run"};
70
71 // output decorations
72 SysWriteDecorHandle<int> m_fitStatus_decor {this, "fitStatus", "mmc_fit_status_%SYS%", "Status of the MMC fit"};
73 SysWriteDecorHandle<double> m_maxw_mass_decor {this, "maxw_mass", "mmc_maxw_mass_%SYS%", "Mass of the resonance estimated by the MMC MaxW method"};
74 SysWriteDecorHandle<double> m_mlm_mass_decor {this, "mlm_mass", "mmc_mlm_mass_%SYS%", "Mass of the resonance estimated by the MMC MLM method"};
75 SysWriteDecorHandle<double> m_mlnu3p_mass_decor {this, "mlnu3p_mass", "mmc_mlnu3p_mass_%SYS%", "Mass of the resonance estimated by the MMC MLNU3P method"};
76 SysWriteDecorHandle<PtEtaPhiMVector> m_mlnu3p_res_4vect_decor {this, "mlnu3p_res_4vect", "mmc_mlnu3p_res_4vect_%SYS%", "Four-momentum of the resonance estimated by the MMC MLNU3P method"};
77 SysWriteDecorHandle<PtEtaPhiMVector> m_mlnu3p_nu1_4vect_decor {this, "mlnu3p_nu1_4vect", "mmc_mlnu3p_nu1_4vect_%SYS%", "Four-momentum of the leading pt neutrino estimated by the MMC MLNU3P method"};
78 SysWriteDecorHandle<PtEtaPhiMVector> m_mlnu3p_nu2_4vect_decor {this, "mlnu3p_nu2_4vect", "mmc_mlnu3p_nu2_4vect_%SYS%", "Four-momentum of the subleading pt neutrino estimated by the MMC MLNU3P method"};
79 SysWriteDecorHandle<PtEtaPhiMVector> m_mlnu3p_tau1_4vect_decor {this, "mlnu3p_tau1_4vect", "mmc_mlnu3p_tau1_4vect_%SYS%", "Four-momentum of the leading lepton estimated by the MMC MLNU3P method"};
80 SysWriteDecorHandle<PtEtaPhiMVector> m_mlnu3p_tau2_4vect_decor {this, "mlnu3p_tau2_4vect", "mmc_mlnu3p_tau2_4vect_%SYS%", "Four-momentum of the subleading lepton estimated by the MMC MLNU3P method"};
81 SysWriteDecorHandle<PtEtaPhiMVector> m_maxw_res_4vect_decor {this, "maxw_res_4vect", "mmc_maxw_res_4vect_%SYS%", "Mass of the resonance estimated by the MMC MaxW method"};
82 SysWriteDecorHandle<PtEtaPhiMVector> m_maxw_nu1_4vect_decor {this, "maxw_nu1_4vect", "mmc_maxw_nu1_4vect_%SYS%", "Four-momentum of the leading pt neutrino estimated by the MMC MaxW method"};
83 SysWriteDecorHandle<PtEtaPhiMVector> m_maxw_nu2_4vect_decor {this, "maxw_nu2_4vect", "mmc_maxw_nu2_4vect_%SYS%", "Four-momentum of the subleading pt neutrino estimated by the MMC MaxW method"};
84 SysWriteDecorHandle<PtEtaPhiMVector> m_maxw_tau1_4vect_decor {this, "maxw_tau1_4vect", "mmc_maxw_tau1_4vect_%SYS%", "Four-momentum of the leading lepton estimated by the MMC MaxW method"};
85 SysWriteDecorHandle<PtEtaPhiMVector> m_maxw_tau2_4vect_decor {this, "maxw_tau2_4vect", "mmc_maxw_tau2_4vect_%SYS%", "Four-momentum of the subleading lepton estimated by the MMC MaxW method"};
86
87 // collinear approximation quantities
88 SysWriteDecorHandle<double> m_coll_approx_mass_decor {this, "coll_approx_mass", "coll_approx_mass_%SYS%", "Mass of the resonance estimated using the Collinear Approximation"};
89 SysWriteDecorHandle<double> m_coll_approx_x0_decor {this, "coll_approx_x0", "coll_approx_x0_%SYS%", "x0 energy fraction estimated using the Collinear Approximation"};
90 SysWriteDecorHandle<double> m_coll_approx_x1_decor {this, "coll_approx_x1", "coll_approx_x1_%SYS%", "x1 energy fraction estimated using the Collinear Approximation"};
91
92 };
93
94} // namespace
95
96#endif
SysWriteDecorHandle< PtEtaPhiMVector > m_maxw_res_4vect_decor
Gaudi::Property< std::string > m_metTerm
SysWriteDecorHandle< double > m_coll_approx_x1_decor
SysWriteDecorHandle< int > m_fitStatus_decor
SysReadSelectionHandle m_preselection
Gaudi::Property< bool > m_doCollinearApprox
SysWriteDecorHandle< double > m_coll_approx_x0_decor
SysWriteDecorHandle< PtEtaPhiMVector > m_mlnu3p_tau2_4vect_decor
SysWriteDecorHandle< PtEtaPhiMVector > m_mlnu3p_nu2_4vect_decor
SysWriteDecorHandle< PtEtaPhiMVector > m_maxw_tau1_4vect_decor
SysWriteDecorHandle< PtEtaPhiMVector > m_maxw_tau2_4vect_decor
SysReadSelectionHandle m_muonSelection
SysWriteDecorHandle< PtEtaPhiMVector > m_mlnu3p_tau1_4vect_decor
Gaudi::Property< bool > m_doMAXW
SysWriteDecorHandle< double > m_mlnu3p_mass_decor
SysWriteDecorHandle< PtEtaPhiMVector > m_mlnu3p_nu1_4vect_decor
SysWriteDecorHandle< double > m_coll_approx_mass_decor
SysReadHandle< xAOD::MuonContainer > m_muonsHandle
ToolHandle< IMissingMassTool > m_mmc
Gaudi::Property< bool > m_doMLNU3P
SysReadHandle< xAOD::TauJetContainer > m_tausHandle
SysReadSelectionHandle m_electronSelection
SysWriteDecorHandle< PtEtaPhiMVector > m_maxw_nu1_4vect_decor
virtual StatusCode initialize() override
SysReadSelectionHandle m_tauSelection
SysWriteDecorHandle< double > m_maxw_mass_decor
SysReadHandle< xAOD::MissingETContainer > m_metHandle
SysReadHandle< xAOD::JetContainer > m_jetsHandle
SysReadHandle< xAOD::EventInfo > m_eventInfoHandle
SysWriteDecorHandle< double > m_mlm_mass_decor
SysWriteDecorHandle< PtEtaPhiMVector > m_maxw_nu2_4vect_decor
SysWriteDecorHandle< PtEtaPhiMVector > m_mlnu3p_res_4vect_decor
SysReadHandle< xAOD::ElectronContainer > m_electronsHandle
SysReadSelectionHandle m_jetSelection
a class managing the property to configure the list of systematics to process
a data handle for reading systematics varied input data
a data handle for reading systematically varied selection properties from objects
a data handle for reading systematics varied input data
the (new) base class for EventLoop algorithms
AnaAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
constructor with parameters
virtual::StatusCode execute()
execute this algorithm
Select isolated Photons, Electrons and Muons.