11#ifndef METUTILITIES_METSYSTEMATICSTOOL_H
12#define METUTILITIES_METSYSTEMATICSTOOL_H
34#include "boost/thread/tss.hpp"
35#include "gtest/gtest_prod.h"
37namespace ADD_CMODE(met) {
46 missingEt(
double mpx_in,
double mpy_in,
double sumet_in) :
73 MET_SOFTTRK_SCALEDOWN ,
74 MET_SOFTTRK_RESOPARA ,
75 MET_SOFTTRK_RESOPERP ,
76 MET_SOFTTRK_RESOCORR ,
77 MET_SOFTCALO_SCALEUP ,
78 MET_SOFTCALO_SCALEDOWN,
79 MET_SOFTCALO_RESOPARA ,
80 MET_SOFTCALO_RESOPERP ,
81 MET_SOFTCALO_RESOCORR ,
94 FRIEND_TEST( METSystTest, TestDefaultHistosFilled );
95 FRIEND_TEST( METSystTest, TestJetTrkHistosFilled );
96 FRIEND_TEST( METSystTest, TestAddAffectingSystematic );
97 FRIEND_TEST( METSystTest, TestProjectST );
98 FRIEND_TEST( METSystTest, TestProjectST2 );
103 METSystematicsTool(
const std::string& name);
108 StatusCode softTrkSystInitialize();
109 StatusCode softCaloSystInitialize();
110 StatusCode jetTrkSystInitialize();
132 void setRandomSeed(
unsigned long seed)
const;
137 METSystematicsTool();
140 SystApplied m_appliedSystEnum{NONE};
150 TRandom3* getTLSRandomGen()
const;
153 Gaudi::Property<std::string> m_configPrefix{
this,
"ConfigPrefix",
"METUtilities/R22_PreRecs",
""};
154 Gaudi::Property<std::string> m_configSoftTrkFile{
this,
"ConfigSoftTrkFile",
"TrackSoftTerms-pflow_Dec24.config",
""};
155 Gaudi::Property<std::string> m_configJetTrkFile{
this,
"ConfigJetTrkFile",
"",
""};
156 Gaudi::Property<std::string> m_configSoftCaloFile{
this,
"ConfigSoftCaloFile",
"",
""};
157 Gaudi::Property<bool> m_useDevArea{
this,
"UseDevArea",
false,
""};
159 std::unique_ptr<TH3D> m_trk_shiftpara_pthard_njet_mu{};
160 std::unique_ptr<TH3D> m_trk_resopara_pthard_njet_mu{};
161 std::unique_ptr<TH3D> m_trk_resoperp_pthard_njet_mu{};
162 std::unique_ptr<TH3D> m_calo_shiftpara_pthard_njet_mu{};
163 std::unique_ptr<TH3D> m_calo_resopara_pthard_njet_mu{};
164 std::unique_ptr<TH3D> m_calo_resoperp_pthard_njet_mu{};
165 std::unique_ptr<TH2D> m_jet_systRpt_pt_eta{};
167 mutable boost::thread_specific_ptr<TRandom3> m_rand_tls;
181 StatusCode addMETAffectingSystematics();
182 StatusCode extractHistoPath(std::string & histfile, std::string & systpath, std::string & configdir, std::string & suffix,
met::SystType const &
type);
185 missingEt variedSoftTerm (missingEt
const & softTerms, missingEt
const & ptHard,
double varPara,
double varPerp)
const;
186 missingEt projectST (missingEt
const & softTerms, missingEt
const & ptHard)
const;