ATLAS Offline Software
TauCombinedTES.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TAURECTOOLS_TAUCOMBINEDTES_H
6 #define TAURECTOOLS_TAUCOMBINEDTES_H
7 
9 
10 #include "xAODTau/TauJet.h"
11 
12 #include "TH1F.h"
13 #include "TF1.h"
14 #include "TGraph.h"
15 
16 #include <array>
17 #include <string>
18 
20 public:
22 
23  TauCombinedTES(const std::string& name="TauCombinedTES");
24 
25  virtual StatusCode initialize() override;
26 
27  virtual StatusCode execute(xAOD::TauJet& xTau) const override;
28 
30  bool getUseCaloPtFlag(const xAOD::TauJet& tau) const;
31 
33  double getMvaEnergyResolution(const xAOD::TauJet& tau) const;
34 
35 private:
36 
39 
41  std::string m_calFileName;
42 
45 
46  struct Variables
47  {
48  double pt_constituent{0.0};
49  double pt_tauRecCalibrated{0.0};
50  double pt_weighted{0.0};
51  double weight{-1111.0};
52  //double sigma_combined{-1111.};
53  double sigma_compatibility{-1111.};
54  double sigma_tauRec{-1111.0};
55  double sigma_constituent{-1111.0};
56  double corrcoeff{-1111.0};
57  };
58 
60  TLorentzVector getCombinedP4(const xAOD::TauJet& tau, Variables& variables) const;
61 
63  bool isValid(const xAOD::TauJet& tau) const;
64 
66  int getEtaIndex(float eta) const;
67 
70 
73 
75  double getCorrelation(int decayModeIndex, int etaIndex) const;
76 
78  double getCaloResolution(double et, int decayModeIndex, int etaIndex) const;
79 
81  double getPanTauResolution(double et, int decayModeIndex, int etaIndex) const;
82 
84  double getCaloCalEt(double et, int decayModeIndex, int etaIndex) const;
85 
87  double getPanTauCalEt(double panTauEt, int decayModeIndex, int etaIndex) const;
88 
90  double getWeight(double caloSigma, double panTauSigma, double correlatioon) const;
91 
93  double getCombinedSigma(double caloSigma, double panTauSigma, double correlation) const;
94 
96  double getCompatibilitySigma(double caloSigma, double panTauSigma, double correlation) const;
97 
99  double getCombinedEt(double caloEt, double et_substructure,
100  xAOD::TauJetParameters::DecayMode decayMode, float eta,
101  Variables& variables) const;
102 
104  double getNsigmaCompatibility(double caloEt, int decayModeIndex) const;
105 
108 
110  const std::array<std::string, DecayModeBinning> m_decayModeNames = {"1p0n","1p1n","1pXn","3p0n","3pXn"};
111 
113  const std::array<std::string, EtaBinning> m_etaBinNames = {"0", "1", "2", "3", "4"};
114 
116  std::array<std::array<std::unique_ptr<TGraph>, EtaBinning>, DecayModeBinning> m_caloRelBias;
117 
119  std::array<std::array<double, EtaBinning>, DecayModeBinning> m_caloRelBiasMaxEt;
120 
122  std::array<std::array<std::unique_ptr<TGraph>, EtaBinning>, DecayModeBinning> m_caloRes;
123 
125  std::array<std::array<double, EtaBinning>, DecayModeBinning> m_caloResMaxEt;
126 
128  std::array<std::array<std::unique_ptr<TGraph>, EtaBinning>, DecayModeBinning> m_panTauRelBias;
129 
131  std::array<std::array<double, EtaBinning>, DecayModeBinning> m_panTauRelBiasMaxEt;
132 
134  std::array<std::array<std::unique_ptr<TGraph>, EtaBinning>, DecayModeBinning> m_panTauRes;
135 
137  std::array<std::array<double, EtaBinning>, DecayModeBinning> m_panTauResMaxEt;
138 
140  std::array<std::array<std::unique_ptr<TGraph>, EtaBinning>, DecayModeBinning> m_mvaRes;
141 
143  std::array<std::array<double, EtaBinning>, DecayModeBinning> m_mvaResMaxEt;
144 
146  std::array<std::unique_ptr<TH1F>, DecayModeBinning> m_correlationHists;
147 
149  std::array<std::unique_ptr<TF1>, DecayModeBinning> m_nSigmaCompatibility;
150 };
151 
152 #endif // TAURECTOOLS_TAUCOMBINEDTES_H
TauCombinedTES::getCaloCalEt
double getCaloCalEt(double et, int decayModeIndex, int etaIndex) const
Get the Et at the calo TES after calibration correction.
Definition: TauCombinedTES.cxx:271
TauCombinedTES::getMvaEnergyResolution
double getMvaEnergyResolution(const xAOD::TauJet &tau) const
Get MVA Et resolution, invoked by METSignificance.
Definition: TauCombinedTES.cxx:308
TauCombinedTES::m_mvaResMaxEt
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_mvaResMaxEt
Maximum Et of m_mvaRes.
Definition: TauCombinedTES.h:143
et
Extra patterns decribing particle interation process.
TauCombinedTES::getUseCaloPtFlag
bool getUseCaloPtFlag(const xAOD::TauJet &tau) const
Whether to use calo pt, invoked by TauSmearing tool.
Definition: TauCombinedTES.cxx:185
checkCoolLatestUpdate.variables
variables
Definition: checkCoolLatestUpdate.py:13
TauCombinedTES::getDecayModeIndex
int getDecayModeIndex(xAOD::TauJetParameters::DecayMode decayMode) const
Get the index of decay mode in the calibration histogram.
Definition: TauCombinedTES.cxx:241
ASG_TOOL_CLASS2
#define ASG_TOOL_CLASS2(CLASSNAME, INT1, INT2)
Definition: AsgToolMacros.h:77
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
TauCombinedTES::EtaBinning
@ EtaBinning
Definition: TauCombinedTES.h:107
TauCombinedTES::isValid
bool isValid(const xAOD::TauJet &tau) const
Whether the tau candidate is valid for the calculation.
Definition: TauCombinedTES.cxx:247
TauCombinedTES::m_caloRelBiasMaxEt
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_caloRelBiasMaxEt
Maximum Et of m_caloRelBias.
Definition: TauCombinedTES.h:119
TauCombinedTES
Definition: TauCombinedTES.h:19
TauRecToolBase.h
TauRecToolBase
The base class for all tau tools.
Definition: TauRecToolBase.h:21
TauCombinedTES::getEtaIndex
int getEtaIndex(float eta) const
Get the index of eta in the calibration histogram.
Definition: TauCombinedTES.cxx:208
TauCombinedTES::initialize
virtual StatusCode initialize() override
Tool initializer.
Definition: TauCombinedTES.cxx:22
TauCombinedTES::Variables::sigma_constituent
double sigma_constituent
Definition: TauCombinedTES.h:55
TauCombinedTES::DecayModeBinning
@ DecayModeBinning
Definition: TauCombinedTES.h:107
TauCombinedTES::m_nSigmaCompatibility
std::array< std::unique_ptr< TF1 >, DecayModeBinning > m_nSigmaCompatibility
Maximum tolerence in unit of combined sigma, as a function of calo Et.
Definition: TauCombinedTES.h:149
TauCombinedTES::getCorrelation
double getCorrelation(int decayModeIndex, int etaIndex) const
Get correlation coefficient between the calo TES and PanTau.
Definition: TauCombinedTES.cxx:265
TauCombinedTES::getCombinedSigma
double getCombinedSigma(double caloSigma, double panTauSigma, double correlation) const
Get the combined sigma of calo TES and PanTau.
Definition: TauCombinedTES.cxx:358
xAOD::TauJetParameters::DecayMode
DecayMode
Definition: TauDefs.h:385
TauCombinedTES::Binning
Binning
Binning in the calibraction graph/hist.
Definition: TauCombinedTES.h:107
TauCombinedTES::Variables::sigma_compatibility
double sigma_compatibility
Definition: TauCombinedTES.h:53
TauCombinedTES::Variables
Definition: TauCombinedTES.h:47
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TauCombinedTES::m_decayModeNames
const std::array< std::string, DecayModeBinning > m_decayModeNames
Decay mode binning in the calibration graph/hist.
Definition: TauCombinedTES.h:110
TauCombinedTES::getCaloResolution
double getCaloResolution(double et, int decayModeIndex, int etaIndex) const
Get the resolution of Et at the calo TES.
Definition: TauCombinedTES.cxx:326
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
TauCombinedTES::getCompatibilitySigma
double getCompatibilitySigma(double caloSigma, double panTauSigma, double correlation) const
Get the compatibility sigma of calo TES and PanTau.
Definition: TauCombinedTES.cxx:370
TauCombinedTES::m_correlationHists
std::array< std::unique_ptr< TH1F >, DecayModeBinning > m_correlationHists
Calibration histogram: correlation coefficient of calo TES and PanTau.
Definition: TauCombinedTES.h:146
TauCombinedTES::m_panTauRelBias
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_panTauRelBias
Calibration graph: mean of bias/panTauEt as a funtion of panTauEt.
Definition: TauCombinedTES.h:128
TauCombinedTES::m_etaBinNames
const std::array< std::string, EtaBinning > m_etaBinNames
Eta binning in the calibration graph.
Definition: TauCombinedTES.h:113
TauCombinedTES::getWeight
double getWeight(double caloSigma, double panTauSigma, double correlatioon) const
Get the weight of calo TES.
Definition: TauCombinedTES.cxx:344
TauCombinedTES::getDecayMode
xAOD::TauJetParameters::DecayMode getDecayMode(const xAOD::TauJet &tau) const
Get the decay mode of the tau candidate.
Definition: TauCombinedTES.cxx:232
TauCombinedTES::execute
virtual StatusCode execute(xAOD::TauJet &xTau) const override
Execute - called for each tau candidate.
Definition: TauCombinedTES.cxx:137
TauCombinedTES::Variables::sigma_tauRec
double sigma_tauRec
Definition: TauCombinedTES.h:54
TauCombinedTES::getPanTauResolution
double getPanTauResolution(double et, int decayModeIndex, int etaIndex) const
Get the resolution of Et at PanTau.
Definition: TauCombinedTES.cxx:335
TauCombinedTES::m_panTauRelBiasMaxEt
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_panTauRelBiasMaxEt
Maximum Et of m_panTauRelBias.
Definition: TauCombinedTES.h:131
TauCombinedTES::getPanTauCalEt
double getPanTauCalEt(double panTauEt, int decayModeIndex, int etaIndex) const
Get the Et at PanTau after calibration correction.
Definition: TauCombinedTES.cxx:290
TauCombinedTES::getNsigmaCompatibility
double getNsigmaCompatibility(double caloEt, int decayModeIndex) const
Get the allowed difference between calo TES and PanTau.
Definition: TauCombinedTES.cxx:380
TauCombinedTES::Variables::weight
double weight
Definition: TauCombinedTES.h:51
TauCombinedTES::m_calFileName
std::string m_calFileName
Name of the calibration file.
Definition: TauCombinedTES.h:41
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TauCombinedTES::Variables::pt_tauRecCalibrated
double pt_tauRecCalibrated
Definition: TauCombinedTES.h:49
ITauToolBase
The base class for all tau tools.
Definition: ITauToolBase.h:30
TauCombinedTES::TauCombinedTES
TauCombinedTES(const std::string &name="TauCombinedTES")
Definition: TauCombinedTES.cxx:13
TauCombinedTES::m_caloRelBias
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_caloRelBias
Calibration graph: mean of bias/caloEt as a function of caloEt.
Definition: TauCombinedTES.h:116
TauCombinedTES::m_caloResMaxEt
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_caloResMaxEt
Maximum Et of m_caloRes.
Definition: TauCombinedTES.h:125
GlobalVariables.Variables
Variables
Definition: GlobalVariables.py:276
TauJet.h
TauCombinedTES::Variables::pt_weighted
double pt_weighted
Definition: TauCombinedTES.h:50
TauCombinedTES::Variables::corrcoeff
double corrcoeff
Definition: TauCombinedTES.h:56
TauCombinedTES::Variables::pt_constituent
double pt_constituent
Definition: TauCombinedTES.h:48
TauCombinedTES::m_caloRes
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_caloRes
Calibration graph: resolution at Calo TES as a function of caloEt.
Definition: TauCombinedTES.h:122
TauCombinedTES::m_panTauResMaxEt
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_panTauResMaxEt
Maximum Et of m_panTauRes.
Definition: TauCombinedTES.h:137
TauCombinedTES::getCombinedEt
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.
Definition: TauCombinedTES.cxx:390
TauCombinedTES::m_mvaRes
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_mvaRes
Calibration graph: MVA TES resolution as a function of MVA pt.
Definition: TauCombinedTES.h:140
TauCombinedTES::m_useMvaResolution
bool m_useMvaResolution
Use MVA TES resolution (for MET significance)
Definition: TauCombinedTES.h:44
TauCombinedTES::getCombinedP4
TLorentzVector getCombinedP4(const xAOD::TauJet &tau, Variables &variables) const
Get the weighted four momentum of calo TES and PanTau.
Definition: TauCombinedTES.cxx:464
TauCombinedTES::m_panTauRes
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_panTauRes
Calibration graph: resolution at PanTau as a function of panTauEt.
Definition: TauCombinedTES.h:134
TauCombinedTES::m_addCalibrationResultVariables
bool m_addCalibrationResultVariables
Switch for decorating the intermediate results, for combined TES tuning.
Definition: TauCombinedTES.h:38