10#ifndef METUTILITIES_MET_METSIGNIFICANCE_H
11#define METUTILITIES_MET_METSIGNIFICANCE_H 1
42 typedef ElementLink<xAOD::IParticleContainer>
obj_link_t;
72 StatusCode
SetLambda(
const float px,
const float py,
const bool GeV=
true);
89 ToolHandle<IJetCalibrationTool>
m_jetCalibTool {
this,
"jetCalibTool",
"",
"the IJetCalibrationTool we use"};
91 ToolHandle<CP::IEgammaCalibrationAndSmearingTool>
m_egammaCalibTool {
this,
"egammaCalibTool",
"",
"the IEgammaCalibrationAndSmearingTool we use"};
92 ToolHandle<ITauToolBase>
m_tauCombinedTES {
this,
"tauCombinedTES",
"",
"the TauCombinedTES tool we use"};
94 Gaudi::Property<std::string>
m_jetCalibConfig{
this,
"JetCalibConfig",
"",
"Config file for jet calibration/resolution"};
95 Gaudi::Property<std::string>
m_jetCalibSeq{
this,
"JetCalibSequence",
"",
"Calibration sequence used for input jets"};
96 Gaudi::Property<std::string>
m_jetCalibArea{
this,
"JetCalibArea",
"",
"CalibArea for input jet calibration"};
97 Gaudi::Property<int>
m_muonCalibMode{
this,
"MuonCalibMode", -1,
"CalibMode for muon momentum calibration"};
98 Gaudi::Property<std::string>
m_egESModel{
this,
"EgammaESModel",
"",
"ESModel for egamma calibration"};
99 Gaudi::Property<std::string>
m_egDecorrModel{
this,
"EgammaDecorrelationModel",
"",
"Decorrelation model for egamma calibration"};
100 Gaudi::Property<bool>
m_egUseFastsim{
this,
"EgammaUseFastsim",
false,
"Use fastsim resolutions for egamma?"};
101 Gaudi::Property<std::string>
m_tauTESConfig{
this,
"TauTESConfig",
"CombinedTES_R22_Round2.5_v2.root",
"Config file for tau energy scale calibration"};
102 Gaudi::Property<bool>
m_tauUseMVARes{
this,
"TauUseMVAResolution",
true,
"Use MVA resolution for taus?"};
112 double GetPUProb(
double jet_eta,
double jet_phi,
double jet_pt,
double jet_jvt,
double jet_fjvt,
float avgmu);
113 double GetPhiUnc(
double jet_eta,
double jet_phi,
double jet_pt);
114 static unsigned int getEtaBin(
double jet_eta);
116 std::tuple<double,double,double>
CovMatrixRotation(
double var_x,
double var_y,
double cv_xy,
double Phi);
118 double Significance_LT(
double Numerator,
double var_parall,
double var_perpen,
double cov);
120 void InvertMatrix(
double (&mat)[2][2],
double (&m)[2][2]);
121 void AddMatrix(
double (&X)[2][2],
double (&Y)[2][2],
double (&mat_new)[2][2]);
122 void RotateXY(
const double (&mat)[2][2],
double (&mat_new)[2][2],
double phi);
133 void AddResoMap(
const double varL,
const double varT,
const double CvTV,
const int term);
virtual ~METSignificance()
Destructor:
double GetTermVarL(const int term) const
METSignificance(const std::string &name)
Constructor with parameters:
void AddSoftTerm(const xAOD::MissingET *soft, const TVector3 &met_vect, double(&particle_sum)[2][2])
double GetTermVarT(const int term) const
std::tuple< double, double, double > CovMatrixRotation(double var_x, double var_y, double cv_xy, double Phi)
double Var_Ptsoft(const double PtSoft)
ToolHandle< ITauToolBase > m_tauCombinedTES
double Significance_LT(double Numerator, double var_parall, double var_perpen, double cov)
StatusCode RotateToPhi(float phi)
double GetMETOverSqrtSumET() const
Gaudi::Property< bool > m_tauUseMVARes
Gaudi::Property< std::string > m_tauTESConfig
Gaudi::Property< std::string > m_egESModel
double BiasPtSoftdir(const double PtSoft)
Parameterization with PtSoft Direction //.
void AddMatrix(double(&X)[2][2], double(&Y)[2][2], double(&mat_new)[2][2])
Gaudi::Property< bool > m_egUseFastsim
StatusCode initialize()
Dummy implementation of the initialisation function.
Gaudi::Property< std::string > m_jetCalibSeq
std::map< int, double > m_term_VarT
ToolHandle< IJetCalibrationTool > m_jetCalibTool
double GetSigDirectional() const
double GetSignificance() const
static unsigned int getEtaBin(double jet_eta)
std::map< int, double > m_term_VarL
void AddResoMap(const double varL, const double varT, const double CvTV, const int term)
Gaudi::Property< std::string > m_egDecorrModel
Gaudi::Property< int > m_muonCalibMode
void RotateXY(const double(&mat)[2][2], double(&mat_new)[2][2], double phi)
StatusCode AddPhoton(const xAOD::IParticle *obj, float &pt_reso, float &phi_reso)
std::string m_configJetPhiResoFile
double GetPhiUnc(double jet_eta, double jet_phi, double jet_pt)
METSignificance()
Default constructor:
StatusCode SetLambda(const float px, const float py, const bool GeV=true)
StatusCode AddElectron(const xAOD::IParticle *obj, float &pt_reso, float &phi_reso, float avgmu)
double Bias_PtSoftParall(const double PtSoft_Parall)
Gaudi::Property< std::string > m_jetCalibArea
ToolHandle< CP::IEgammaCalibrationAndSmearingTool > m_egammaCalibTool
StatusCode AddTau(const xAOD::IParticle *obj, float &pt_reso, float &phi_reso)
StatusCode varianceMET(xAOD::MissingETContainer *metCont, float avgmu, const std::string &jetTermName, const std::string &softTermName, const std::string &totalMETName)
std::map< int, double > m_term_CvLT
std::string m_JetCollection
std::string m_configPrefix
Gaudi::Property< std::string > m_jetCalibConfig
void InvertMatrix(double(&mat)[2][2], double(&m)[2][2])
double VarparPtSoftdir(const double PtSoft, const double SoftSumet)
double GetMETOverSqrtHT() const
StatusCode AddMuon(const xAOD::IParticle *obj, float &pt_reso, float &phi_reso, float avgmu)
ToolHandle< CP::IMuonCalibrationAndSmearingTool > m_muonCalibrationAndSmearingTool
double GetPUProb(double jet_eta, double jet_phi, double jet_pt, double jet_jvt, double jet_fjvt, float avgmu)
StatusCode AddJet(const xAOD::IParticle *obj, float &pt_reso, float &phi_reso, float &avgmu)
Class providing the definition of the 4-vector interface.
ElementLink< xAOD::IParticleContainer > obj_link_t
MissingET_v1 MissingET
Version control by type defintion.
MissingETContainer_v1 MissingETContainer