ATLAS Offline Software
Loading...
Searching...
No Matches
TauCombinedTES.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#ifndef TAURECTOOLS_TAUCOMBINEDTES_H
6#define TAURECTOOLS_TAUCOMBINEDTES_H
7
9
11
12#include "xAODTau/TauJet.h"
13
14#include "TH1F.h"
15#include "TF1.h"
16#include "TGraph.h"
17
18#include <array>
19#include <string>
20
22public:
24
25 TauCombinedTES(const std::string& name="TauCombinedTES");
26
27 virtual StatusCode initialize() override;
28
29 virtual StatusCode execute(xAOD::TauJet& xTau) const override;
30
32 bool getTESCompatibility(const xAOD::TauJet& tau) const;
33
35 double getMvaEnergyResolution(const xAOD::TauJet& tau) const;
36
37private:
38
39 Gaudi::Property<bool> m_addCalibrationResultVariables{this, "addCalibrationResultVariables", false};
40 Gaudi::Property<std::string> m_calFileName{this, "WeightFileName", ""};
41 Gaudi::Property<bool> m_useMvaResolution{this, "useMvaResolution", false};
42
43 struct Variables
44 {
45 double pt_constituent{0.0};
47 double pt_weighted{0.0};
48 double weight{-1111.0};
49 double sigma_compatibility{-1111.};
50 double sigma_tauRec{-1111.0};
51 double sigma_constituent{-1111.0};
52 double corrcoeff{-1111.0};
53 };
54
56 TLorentzVector getCombinedP4(const xAOD::TauJet& tau, Variables& variables) const;
57
59 bool isValid(const xAOD::TauJet& tau) const;
60
62 int getEtaIndex(float eta) const;
63
66
69
71 double getCorrelation(int decayModeIndex, int etaIndex) const;
72
74 double getCaloResolution(double et, int decayModeIndex, int etaIndex) const;
75
77 double getPanTauResolution(double et, int decayModeIndex, int etaIndex) const;
78
80 double getCaloCalEt(double et, int decayModeIndex, int etaIndex) const;
81
83 double getPanTauCalEt(double panTauEt, int decayModeIndex, int etaIndex) const;
84
86 double getWeight(double caloSigma, double panTauSigma, double correlatioon) const;
87
89 double getCompatibilitySigma(double caloSigma, double panTauSigma, double correlation) const;
90
92 double getCombinedEt(double caloEt, double et_substructure,
94 Variables& variables) const;
95
97 double getNsigmaCompatibility(double caloEt, int decayModeIndex) const;
98
101
103 const std::array<std::string, DecayModeBinning> m_decayModeNames = {"1p0n","1p1n","1pXn","3p0n","3pXn"};
104
106 const std::array<std::string, EtaBinning> m_etaBinNames = {"0", "1", "2", "3", "4"};
107
109 std::array<std::array<std::unique_ptr<TGraph>, EtaBinning>, DecayModeBinning> m_caloRelBias;
110
112 std::array<std::array<double, EtaBinning>, DecayModeBinning> m_caloRelBiasMaxEt;
113
115 std::array<std::array<std::unique_ptr<TGraph>, EtaBinning>, DecayModeBinning> m_caloRes;
116
118 std::array<std::array<double, EtaBinning>, DecayModeBinning> m_caloResMaxEt;
119
121 std::array<std::array<std::unique_ptr<TGraph>, EtaBinning>, DecayModeBinning> m_panTauRelBias;
122
124 std::array<std::array<double, EtaBinning>, DecayModeBinning> m_panTauRelBiasMaxEt;
125
127 std::array<std::array<std::unique_ptr<TGraph>, EtaBinning>, DecayModeBinning> m_panTauRes;
128
130 std::array<std::array<double, EtaBinning>, DecayModeBinning> m_panTauResMaxEt;
131
133 std::array<std::array<std::unique_ptr<TGraph>, EtaBinning>, DecayModeBinning> m_mvaRes;
134
136 std::array<std::array<double, EtaBinning>, DecayModeBinning> m_mvaResMaxEt;
137
139 std::array<std::unique_ptr<TH1F>, DecayModeBinning> m_correlationHists;
140
142 std::array<std::unique_ptr<TF1>, DecayModeBinning> m_nSigmaCompatibility;
143};
144
145#endif // TAURECTOOLS_TAUCOMBINEDTES_H
Scalar eta() const
pseudorapidity method
#define ASG_TOOL_CLASS2(CLASSNAME, INT1, INT2)
The base class for all tau tools.
const std::array< std::string, DecayModeBinning > m_decayModeNames
Decay mode binning in the calibration graph/hist.
const std::array< std::string, EtaBinning > m_etaBinNames
Eta binning in the calibration graph.
double getWeight(double caloSigma, double panTauSigma, double correlatioon) const
Get the weight of calo TES.
Gaudi::Property< std::string > m_calFileName
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_caloRelBias
Calibration graph: mean of bias/caloEt as a function of caloEt.
int getEtaIndex(float eta) const
Get the index of eta in the calibration histogram.
xAOD::TauJetParameters::DecayMode getDecayMode(const xAOD::TauJet &tau) const
Get the decay mode of the tau candidate.
Gaudi::Property< bool > m_addCalibrationResultVariables
double getCaloResolution(double et, int decayModeIndex, int etaIndex) const
Get the resolution of Et at the calo TES.
std::array< std::unique_ptr< TH1F >, DecayModeBinning > m_correlationHists
Calibration histogram: correlation coefficient of calo TES and PanTau.
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_caloRelBiasMaxEt
Maximum Et of m_caloRelBias.
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_panTauRelBiasMaxEt
Maximum Et of m_panTauRelBias.
double getMvaEnergyResolution(const xAOD::TauJet &tau) const
Get MVA Et resolution, invoked by METSignificance.
bool isValid(const xAOD::TauJet &tau) const
Whether the tau candidate is valid for the calculation.
bool getTESCompatibility(const xAOD::TauJet &tau) const
Check if MVA TES and CaloTES are compatible, invoked by TauSmearing tool.
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_mvaResMaxEt
Maximum Et of m_mvaRes.
virtual StatusCode initialize() override
Tool initializer.
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_mvaRes
Calibration graph: MVA TES resolution as a function of MVA pt.
double getPanTauResolution(double et, int decayModeIndex, int etaIndex) const
Get the resolution of Et at PanTau.
Binning
Binning in the calibraction graph/hist.
double getCompatibilitySigma(double caloSigma, double panTauSigma, double correlation) const
Get the compatibility sigma of calo TES and PanTau.
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_panTauRes
Calibration graph: resolution at PanTau as a function of panTauEt.
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_panTauRelBias
Calibration graph: mean of bias/panTauEt as a funtion of panTauEt.
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_caloResMaxEt
Maximum Et of m_caloRes.
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_panTauResMaxEt
Maximum Et of m_panTauRes.
Gaudi::Property< bool > m_useMvaResolution
TLorentzVector getCombinedP4(const xAOD::TauJet &tau, Variables &variables) const
Get the weighted four momentum of calo TES and PanTau.
double getCaloCalEt(double et, int decayModeIndex, int etaIndex) const
Get the Et at the calo TES after calibration correction.
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_caloRes
Calibration graph: resolution at Calo TES as a function of caloEt.
int getDecayModeIndex(xAOD::TauJetParameters::DecayMode decayMode) const
Get the index of decay mode in the calibration histogram.
double getCorrelation(int decayModeIndex, int etaIndex) const
Get correlation coefficient between the calo TES and PanTau.
virtual StatusCode execute(xAOD::TauJet &xTau) const override
Execute - called for each tau candidate.
double getNsigmaCompatibility(double caloEt, int decayModeIndex) const
Get the allowed difference between calo TES and PanTau.
double getPanTauCalEt(double panTauEt, int decayModeIndex, int etaIndex) const
Get the Et at PanTau after calibration correction.
TauCombinedTES(const std::string &name="TauCombinedTES")
std::array< std::unique_ptr< TF1 >, DecayModeBinning > m_nSigmaCompatibility
Maximum tolerence in unit of combined sigma, as a function of calo Et.
double getCombinedEt(double caloEt, double et_substructure, xAOD::TauJetParameters::DecayMode decayMode, float eta, Variables &variables) const
Get the combined Et of calo TES and PanTau.
TauRecToolBase(const std::string &name)
TauJet_v3 TauJet
Definition of the current "tau version".
Extra patterns decribing particle interation process.