Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <TauCombinedTES.h>
|
| TauCombinedTES (const std::string &name="TauCombinedTES") |
|
virtual StatusCode | initialize () override |
| Tool initializer. More...
|
|
virtual StatusCode | execute (xAOD::TauJet &xTau) const override |
| Execute - called for each tau candidate. More...
|
|
bool | getTESCompatibility (const xAOD::TauJet &tau) const |
| Check if MVA TES and CaloTES are compatible, invoked by TauSmearing tool. More...
|
|
double | getMvaEnergyResolution (const xAOD::TauJet &tau) const |
| Get MVA Et resolution, invoked by METSignificance. More...
|
|
virtual StatusCode | eventInitialize () override |
| Event initializer - called at the beginning of each event. More...
|
|
virtual StatusCode | executePi0CreateROI (xAOD::TauJet &pTau, CaloConstCellContainer &caloCellContainer, boost::dynamic_bitset<> &map) const override |
|
virtual StatusCode | executeVertexFinder (xAOD::TauJet &pTau, const xAOD::VertexContainer *vertexContainer=nullptr) const override |
|
virtual StatusCode | executeTrackFinder (xAOD::TauJet &pTau, xAOD::TauTrackContainer &tauTrackContainer) const override |
|
virtual StatusCode | executeTrackClassifier (xAOD::TauJet &pTau, xAOD::TauTrackContainer &tauTrackContainer) const override |
|
virtual StatusCode | executeShotFinder (xAOD::TauJet &pTau, xAOD::CaloClusterContainer &shotClusterContainer, xAOD::PFOContainer &PFOContainer) const override |
|
virtual StatusCode | executePi0ClusterCreator (xAOD::TauJet &pTau, xAOD::PFOContainer &neutralPFOContainer, xAOD::PFOContainer &hadronicPFOContainer, const xAOD::CaloClusterContainer &pCaloClusterContainer) const override |
|
virtual StatusCode | executeVertexVariables (xAOD::TauJet &pTau, xAOD::VertexContainer &vertexContainer) const override |
|
virtual StatusCode | executePi0ClusterScaler (xAOD::TauJet &pTau, xAOD::PFOContainer &neutralPFOContainer, xAOD::PFOContainer &chargedPFOContainer) const override |
|
virtual StatusCode | executePi0nPFO (xAOD::TauJet &pTau, xAOD::PFOContainer &neutralPFOContainer) const override |
|
virtual StatusCode | executePanTau (xAOD::TauJet &pTau, xAOD::ParticleContainer &particleContainer, xAOD::PFOContainer &neutralPFOContainer) const override |
|
virtual StatusCode | eventFinalize () override |
| Event finalizer - called at the end of each event. More...
|
|
virtual StatusCode | finalize () override |
| Finalizer. More...
|
|
std::string | find_file (const std::string &fname) const |
|
virtual StatusCode | readConfig () override |
|
virtual void | print () const |
| Print the state of the tool. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
Gaudi::Property< bool > | m_in_trigger {this, "inTrigger", false, "Indicate if the tool is running on trigger"} |
|
Gaudi::Property< bool > | m_in_AOD {this, "inAOD", false, "Indicate if the tool is running on AOD"} |
|
Gaudi::Property< bool > | m_in_EleRM {this, "inEleRM", false, "Indicate if the tool is running on EleRM routine"} |
|
Gaudi::Property< std::string > | m_tauRecToolsTag {this, "calibFolder", "tauRecTools/R22_preprod", "CVMFS path to the tau calibration folder"} |
|
|
TLorentzVector | getCombinedP4 (const xAOD::TauJet &tau, Variables &variables) const |
| Get the weighted four momentum of calo TES and PanTau. More...
|
|
bool | isValid (const xAOD::TauJet &tau) const |
| Whether the tau candidate is valid for the calculation. More...
|
|
int | getEtaIndex (float eta) const |
| Get the index of eta in the calibration histogram. More...
|
|
xAOD::TauJetParameters::DecayMode | getDecayMode (const xAOD::TauJet &tau) const |
| Get the decay mode of the tau candidate. More...
|
|
int | getDecayModeIndex (xAOD::TauJetParameters::DecayMode decayMode) const |
| Get the index of decay mode in the calibration histogram. More...
|
|
double | getCorrelation (int decayModeIndex, int etaIndex) const |
| Get correlation coefficient between the calo TES and PanTau. More...
|
|
double | getCaloResolution (double et, int decayModeIndex, int etaIndex) const |
| Get the resolution of Et at the calo TES. More...
|
|
double | getPanTauResolution (double et, int decayModeIndex, int etaIndex) const |
| Get the resolution of Et at PanTau. More...
|
|
double | getCaloCalEt (double et, int decayModeIndex, int etaIndex) const |
| Get the Et at the calo TES after calibration correction. More...
|
|
double | getPanTauCalEt (double panTauEt, int decayModeIndex, int etaIndex) const |
| Get the Et at PanTau after calibration correction. More...
|
|
double | getWeight (double caloSigma, double panTauSigma, double correlatioon) const |
| Get the weight of calo TES. More...
|
|
double | getCombinedSigma (double caloSigma, double panTauSigma, double correlation) const |
| Get the combined sigma of calo TES and PanTau. More...
|
|
double | getCompatibilitySigma (double caloSigma, double panTauSigma, double correlation) const |
| Get the compatibility sigma of calo TES and PanTau. More...
|
|
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. More...
|
|
double | getNsigmaCompatibility (double caloEt, int decayModeIndex) const |
| Get the allowed difference between calo TES and PanTau. More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
Gaudi::Property< bool > | m_addCalibrationResultVariables {this, "addCalibrationResultVariables", false} |
|
Gaudi::Property< std::string > | m_calFileName {this, "WeightFileName", ""} |
|
Gaudi::Property< bool > | m_useMvaResolution {this, "useMvaResolution", false} |
|
const std::array< std::string, DecayModeBinning > | m_decayModeNames = {"1p0n","1p1n","1pXn","3p0n","3pXn"} |
| Decay mode binning in the calibration graph/hist. More...
|
|
const std::array< std::string, EtaBinning > | m_etaBinNames = {"0", "1", "2", "3", "4"} |
| Eta binning in the calibration graph. More...
|
|
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > | m_caloRelBias |
| Calibration graph: mean of bias/caloEt as a function of caloEt. More...
|
|
std::array< std::array< double, EtaBinning >, DecayModeBinning > | m_caloRelBiasMaxEt |
| Maximum Et of m_caloRelBias. More...
|
|
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > | m_caloRes |
| Calibration graph: resolution at Calo TES as a function of caloEt. More...
|
|
std::array< std::array< double, EtaBinning >, DecayModeBinning > | m_caloResMaxEt |
| Maximum Et of m_caloRes. More...
|
|
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > | m_panTauRelBias |
| Calibration graph: mean of bias/panTauEt as a funtion of panTauEt. More...
|
|
std::array< std::array< double, EtaBinning >, DecayModeBinning > | m_panTauRelBiasMaxEt |
| Maximum Et of m_panTauRelBias. More...
|
|
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > | m_panTauRes |
| Calibration graph: resolution at PanTau as a function of panTauEt. More...
|
|
std::array< std::array< double, EtaBinning >, DecayModeBinning > | m_panTauResMaxEt |
| Maximum Et of m_panTauRes. More...
|
|
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > | m_mvaRes |
| Calibration graph: MVA TES resolution as a function of MVA pt. More...
|
|
std::array< std::array< double, EtaBinning >, DecayModeBinning > | m_mvaResMaxEt |
| Maximum Et of m_mvaRes. More...
|
|
std::array< std::unique_ptr< TH1F >, DecayModeBinning > | m_correlationHists |
| Calibration histogram: correlation coefficient of calo TES and PanTau. More...
|
|
std::array< std::unique_ptr< TF1 >, DecayModeBinning > | m_nSigmaCompatibility |
| Maximum tolerence in unit of combined sigma, as a function of calo Et. More...
|
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 21 of file TauCombinedTES.h.
◆ StoreGateSvc_t
◆ Binning
Binning in the calibraction graph/hist.
Enumerator |
---|
DecayModeBinning | |
EtaBinning | |
Definition at line 104 of file TauCombinedTES.h.
◆ TauCombinedTES()
TauCombinedTES::TauCombinedTES |
( |
const std::string & |
name = "TauCombinedTES" | ) |
|
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ eventFinalize()
StatusCode TauRecToolBase::eventFinalize |
( |
| ) |
|
|
overridevirtualinherited |
◆ eventInitialize()
StatusCode TauRecToolBase::eventInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode TauCombinedTES::execute |
( |
xAOD::TauJet & |
pTau | ) |
const |
|
overridevirtual |
Execute - called for each tau candidate.
Reimplemented from TauRecToolBase.
Definition at line 134 of file TauCombinedTES.cxx.
151 decPtCombined(tau) = combinedP4.Pt();
152 decEtaCombined(tau) = combinedP4.Eta();
153 decPhiCombined(tau) = combinedP4.Phi();
154 decMCombined(tau) = combinedP4.M();
166 decPtConstituent(tau) =
variables.pt_constituent;
167 decPtTauRecCalibrated(tau) =
variables.pt_tauRecCalibrated;
168 decPtWeighted(tau) =
variables.pt_weighted;
169 decWeightWeighted(tau) =
variables.weight;
171 decSigmaCompatibility(tau) =
variables.sigma_compatibility;
172 decSigmaTaurec(tau) =
variables.sigma_tauRec;
173 decSigmaConstituent(tau) =
variables.sigma_constituent;
174 decCorrelationCoefficient(tau) =
variables.corrcoeff;
177 return StatusCode::SUCCESS;
◆ executePanTau()
◆ executePi0ClusterCreator()
◆ executePi0ClusterScaler()
◆ executePi0CreateROI()
◆ executePi0nPFO()
◆ executeShotFinder()
◆ executeTrackClassifier()
◆ executeTrackFinder()
◆ executeVertexFinder()
◆ executeVertexVariables()
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ finalize()
StatusCode TauRecToolBase::finalize |
( |
| ) |
|
|
overridevirtualinherited |
◆ find_file()
std::string TauRecToolBase::find_file |
( |
const std::string & |
fname | ) |
const |
|
inherited |
◆ getCaloCalEt()
double TauCombinedTES::getCaloCalEt |
( |
double |
et, |
|
|
int |
decayModeIndex, |
|
|
int |
etaIndex |
|
) |
| const |
|
private |
Get the Et at the calo TES after calibration correction.
Definition at line 268 of file TauCombinedTES.cxx.
280 double caloCalEt = caloEt -
ratio * caloEt;
◆ getCaloResolution()
double TauCombinedTES::getCaloResolution |
( |
double |
et, |
|
|
int |
decayModeIndex, |
|
|
int |
etaIndex |
|
) |
| const |
|
private |
◆ getCombinedEt()
Get the combined Et of calo TES and PanTau.
Definition at line 387 of file TauCombinedTES.cxx.
402 if (0. == caloSigma) {
404 m_caloRes[decayModeIndex][etaIndex]->Print(
"all");
410 if (0. == panTauSigma) {
412 m_panTauRes[decayModeIndex][etaIndex]->Print(
"all");
417 double caloCalEt =
getCaloCalEt(caloEt, decayModeIndex, etaIndex);
420 double panTauCalEt =
getPanTauCalEt(panTauEt, decayModeIndex, etaIndex);
425 double weightedEt =
weight * caloCalEt + (1 -
weight) * panTauCalEt;
435 double deltaEt = caloCalEt - panTauCalEt;
444 variables.sigma_constituent = panTauSigma;
445 variables.pt_tauRecCalibrated = caloCalEt;
448 variables.sigma_compatibility = compatibilitySigma;
452 "coff: " << correlation <<
" sigma(calo): " << caloSigma <<
" sigma(constituent): " << panTauSigma <<
453 "\ncalibrated et(calo): " << caloCalEt <<
" calibrated et(constituent): " << panTauCalEt <<
454 "\nweight:" <<
weight <<
" combined et: " << weightedEt <<
" compatibility sigma: " << compatibilitySigma);
◆ getCombinedP4()
Get the weighted four momentum of calo TES and PanTau.
Definition at line 461 of file TauCombinedTES.cxx.
465 ATH_MSG_DEBUG(
"Four momentum at calo TES, pt: " << caloP4.Pt() <<
" eta: " << caloP4.Eta() <<
466 " phi: " << caloP4.Phi() <<
" mass: " << caloP4.M());
467 ATH_MSG_DEBUG(
"Four momentum at PanTau, pt: " << panTauP4.Pt() <<
" eta: " << panTauP4.Eta() <<
468 " phi: " << panTauP4.Phi() <<
" mass: " << panTauP4.M());
475 TLorentzVector combinedP4;
476 combinedP4.SetPtEtaPhiM(combinedEt, panTauP4.Eta(), panTauP4.Phi(), 0.);
478 ATH_MSG_DEBUG(
"Combined four momentum, pt: " << combinedP4.Pt() <<
" eta: " << combinedP4.Eta() <<
479 " phi: " << combinedP4.Phi() <<
" mass: " << combinedP4.M());
◆ getCombinedSigma()
double TauCombinedTES::getCombinedSigma |
( |
double |
caloSigma, |
|
|
double |
panTauSigma, |
|
|
double |
correlation |
|
) |
| const |
|
private |
Get the combined sigma of calo TES and PanTau.
Definition at line 355 of file TauCombinedTES.cxx.
360 - 2 * correlation * caloSigma * panTauSigma;
◆ getCompatibilitySigma()
double TauCombinedTES::getCompatibilitySigma |
( |
double |
caloSigma, |
|
|
double |
panTauSigma, |
|
|
double |
correlation |
|
) |
| const |
|
private |
Get the compatibility sigma of calo TES and PanTau.
Definition at line 367 of file TauCombinedTES.cxx.
370 double compatibilitySigma2 =
std::pow(caloSigma, 2) +
std::pow(panTauSigma, 2) - 2 * correlation * caloSigma * panTauSigma;
372 return std::sqrt(compatibilitySigma2);
◆ getCorrelation()
double TauCombinedTES::getCorrelation |
( |
int |
decayModeIndex, |
|
|
int |
etaIndex |
|
) |
| const |
|
private |
◆ getDecayMode()
◆ getDecayModeIndex()
Get the index of decay mode in the calibration histogram.
Definition at line 238 of file TauCombinedTES.cxx.
239 return static_cast<int>(decayMode);
◆ getEtaIndex()
int TauCombinedTES::getEtaIndex |
( |
float |
eta | ) |
const |
|
private |
Get the index of eta in the calibration histogram.
Definition at line 205 of file TauCombinedTES.cxx.
207 if (std::abs(
eta) < 0.3) {
210 if (std::abs(
eta) < 0.8) {
213 if (std::abs(
eta) < 1.3) {
216 if (std::abs(
eta) < 1.6) {
220 if (std::abs(
eta) < 2.6) {
◆ getKey()
Get the (hashed) key of an object that is in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the SG::sgkey_t
key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getName
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The hashed key of the object in the store. If not found, an invalid (zero) key.
Definition at line 119 of file AsgTool.cxx.
121 #ifdef XAOD_STANDALONE
127 return (
proxy ==
nullptr ? 0 :
proxy->sgkey() );
128 #endif // XAOD_STANDALONE
◆ getMvaEnergyResolution()
◆ getName()
const std::string & asg::AsgTool::getName |
( |
const void * |
ptr | ) |
const |
|
inherited |
Get the name of an object that is / should be in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the std::string
name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getKey
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The string name of the object in the store. If not found, an empty string.
Definition at line 106 of file AsgTool.cxx.
108 #ifdef XAOD_STANDALONE
114 static const std::string
dummy =
"";
116 #endif // XAOD_STANDALONE
◆ getNsigmaCompatibility()
double TauCombinedTES::getNsigmaCompatibility |
( |
double |
caloEt, |
|
|
int |
decayModeIndex |
|
) |
| const |
|
private |
Get the allowed difference between calo TES and PanTau.
Definition at line 377 of file TauCombinedTES.cxx.
380 if (nsigma < 0.)
return 0.;
◆ getPanTauCalEt()
double TauCombinedTES::getPanTauCalEt |
( |
double |
panTauEt, |
|
|
int |
decayModeIndex, |
|
|
int |
etaIndex |
|
) |
| const |
|
private |
◆ getPanTauResolution()
double TauCombinedTES::getPanTauResolution |
( |
double |
et, |
|
|
int |
decayModeIndex, |
|
|
int |
etaIndex |
|
) |
| const |
|
private |
◆ getProperty()
template<class T >
const T* asg::AsgTool::getProperty |
( |
const std::string & |
name | ) |
const |
|
inherited |
Get one of the tool's properties.
◆ getTESCompatibility()
Check if MVA TES and CaloTES are compatible, invoked by TauSmearing tool.
Definition at line 182 of file TauCombinedTES.cxx.
183 if (!
isValid(tau))
return false;
193 bool compatibility =
true;
196 if (std::abs(deltaEt) > 5 * caloSigma) {
197 compatibility =
false;
200 return compatibility;
◆ getWeight()
double TauCombinedTES::getWeight |
( |
double |
caloSigma, |
|
|
double |
panTauSigma, |
|
|
double |
correlatioon |
|
) |
| const |
|
private |
Get the weight of calo TES.
Definition at line 341 of file TauCombinedTES.cxx.
344 double cov = correlation * caloSigma * panTauSigma;
345 double caloWeight =
std::pow(panTauSigma, 2) -
cov;
346 double panTauWeight =
std::pow(caloSigma, 2) -
cov;
348 double weight = (caloWeight + panTauWeight !=0.) ? caloWeight/(caloWeight + panTauWeight) : 0.;
350 return std::clamp(
weight, 0., 1.);
◆ inAOD()
bool TauRecToolBase::inAOD |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ inEleRM()
bool TauRecToolBase::inEleRM |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ initialize()
StatusCode TauCombinedTES::initialize |
( |
| ) |
|
|
overridevirtual |
Tool initializer.
Reimplemented from TauRecToolBase.
Definition at line 19 of file TauCombinedTES.cxx.
22 std::unique_ptr<TFile> calFile(TFile::Open(calFilePath.c_str(),
"READ"));
29 for (
size_t decayModeIndex = 0; decayModeIndex <
DecayModeBinning; ++ decayModeIndex) {
33 hist->SetDirectory(
nullptr);
39 return StatusCode::FAILURE;
43 tf1 =
dynamic_cast<TF1*
> (calFile->Get(
histName.c_str()));
50 return StatusCode::FAILURE;
55 TGraph* graph =
nullptr;
56 std::string graphName=
"";
57 for (
size_t decayModeIndex = 0; decayModeIndex <
DecayModeBinning; ++decayModeIndex) {
58 for (
size_t etaIndex = 0; etaIndex <
EtaBinning; ++etaIndex) {
61 graph =
dynamic_cast<TGraph*
> (calFile->Get(graphName.c_str()));
63 m_caloRelBiasMaxEt[decayModeIndex][etaIndex] = TMath::MaxElement(graph->GetN(), graph->GetX());
64 m_caloRelBias[decayModeIndex][etaIndex] = std::unique_ptr<TGraph>(graph);
68 ATH_MSG_FATAL(
"Failed to get an object with name " << graphName);
69 return StatusCode::FAILURE;
74 graph =
dynamic_cast<TGraph*
> (calFile->Get(graphName.c_str()));
76 m_caloResMaxEt[decayModeIndex][etaIndex] = TMath::MaxElement(graph->GetN(), graph->GetX());
77 m_caloRes[decayModeIndex][etaIndex] = std::unique_ptr<TGraph>(graph);
81 ATH_MSG_FATAL(
"Failed to get an object with name " << graphName);
82 return StatusCode::FAILURE;
87 graph =
dynamic_cast<TGraph*
> (calFile->Get(graphName.c_str()));
89 m_panTauRelBiasMaxEt[decayModeIndex][etaIndex] = TMath::MaxElement(graph->GetN(), graph->GetX());
90 m_panTauRelBias[decayModeIndex][etaIndex] = std::unique_ptr<TGraph>(graph);
94 ATH_MSG_FATAL(
"Failed to get an object with name " << graphName);
95 return StatusCode::FAILURE;
100 graph =
dynamic_cast<TGraph*
> (calFile->Get(graphName.c_str()));
102 m_panTauResMaxEt[decayModeIndex][etaIndex] = TMath::MaxElement(graph->GetN(), graph->GetX());
103 m_panTauRes[decayModeIndex][etaIndex] = std::unique_ptr<TGraph>(graph);
107 ATH_MSG_FATAL(
"Failed to get an object with name " << graphName);
108 return StatusCode::FAILURE;
114 graph =
dynamic_cast<TGraph*
> (calFile->Get(graphName.c_str()));
116 m_mvaResMaxEt[decayModeIndex][etaIndex] = TMath::MaxElement(graph->GetN(), graph->GetX());
117 m_mvaRes[decayModeIndex][etaIndex] = std::unique_ptr<TGraph>(graph);
121 ATH_MSG_FATAL(
"Failed to get an object with name " << graphName);
122 return StatusCode::FAILURE;
129 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ inTrigger()
bool TauRecToolBase::inTrigger |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ isValid()
Whether the tau candidate is valid for the calculation.
Definition at line 244 of file TauCombinedTES.cxx.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msg_level_name()
const std::string & asg::AsgTool::msg_level_name |
( |
| ) |
const |
|
inherited |
A deprecated function for getting the message level's name.
Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:
MSG::name( msg().level() )
This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.
- Returns
- The string name of the current minimum message level that's printed
Definition at line 101 of file AsgTool.cxx.
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ print()
void asg::AsgTool::print |
( |
| ) |
const |
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
◆ readConfig()
StatusCode TauRecToolBase::readConfig |
( |
| ) |
|
|
overridevirtualinherited |
Implements ITauToolBase.
Definition at line 27 of file TauRecToolBase.cxx.
32 #ifndef XAOD_STANDALONE
33 bool configPathDeclared =
false;
34 for (Gaudi::Details::PropertyBase* property : getProperties())
36 if (property->name() ==
"ConfigPath")
38 configPathDeclared =
true;
42 if (!configPathDeclared)
43 #elif defined(XAOD_STANDALONE)
44 PropertyMgr::PropMap_t property_map = getPropertyMgr()->getProperties();
45 if (property_map.find(
"ConfigPath") == property_map.end())
47 # error "What environment are we in?!?"
48 #endif // XAOD_STANDALONE
50 ATH_MSG_INFO(
"No config file path property declared yet, this is not recommended");
51 return StatusCode::SUCCESS;
55 const std::string* config_file_path_property;
58 config_file_path_property = getProperty<std::string>(
"ConfigPath");
59 std::string config_file_path =
find_file(*config_file_path_property);
63 THashList* lList =
env.GetTable();
64 for( Int_t
i = 0; lList &&
i < lList->GetEntries(); ++
i )
68 #ifndef XAOD_STANDALONE
70 const std::type_info*
type =
getProperty(lList->At(
i )->GetName()).type_info();
73 if (*
type ==
typeid(
bool))
74 sc = this->setProperty(lList->At(
i )->GetName(),
75 bool(
env.GetValue(lList->At(
i )->GetName(),
bool(
true))));
76 else if (*
type ==
typeid(
int))
77 sc = this->setProperty(lList->At(
i )->GetName(),
78 env.GetValue(lList->At(
i )->GetName(),
int(0)));
79 else if (*
type ==
typeid(
float))
80 sc = this->setProperty(lList->At(
i )->GetName(),
81 env.GetValue(lList->At(
i )->GetName(),
float(0)));
82 else if (*
type ==
typeid(
double))
83 sc = this->setProperty(lList->At(
i )->GetName(),
84 env.GetValue(lList->At(
i )->GetName(),
double(0)));
85 else if (*
type ==
typeid(std::string))
86 sc = this->setProperty(lList->At(
i )->GetName(),
87 env.GetValue(lList->At(
i )->GetName(),
""));
93 sc = this->setProperty(lList->At(
i )->GetName(),
94 bool(
env.GetValue(lList->At(
i )->GetName(),
bool(
true))));
96 sc = this->setProperty(lList->At(
i )->GetName(),
97 env.GetValue(lList->At(
i )->GetName(),
int(0)));
99 sc = this->setProperty(lList->At(
i )->GetName(),
100 env.GetValue(lList->At(
i )->GetName(),
float(0)));
102 sc = this->setProperty(lList->At(
i )->GetName(),
103 env.GetValue(lList->At(
i )->GetName(),
double(0)));
105 sc = this->setProperty(lList->At(
i )->GetName(),
106 env.GetValue(lList->At(
i )->GetName(),
""));
107 #endif // XAOD_STANDALONE
110 #ifndef XAOD_STANDALONE
111 ATH_MSG_FATAL(
"there was a problem to find the correct type enum: "<<
type->name());
114 #endif // XAOD_STANDALONE
115 return StatusCode::FAILURE;
117 if (!
sc.isSuccess()) {
118 ATH_MSG_FATAL(
"failed to set property: " << lList->At(
i )->GetName());
119 return StatusCode::FAILURE;
122 return StatusCode::SUCCESS;
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_addCalibrationResultVariables
Gaudi::Property<bool> TauCombinedTES::m_addCalibrationResultVariables {this, "addCalibrationResultVariables", false} |
|
private |
◆ m_calFileName
Gaudi::Property<std::string> TauCombinedTES::m_calFileName {this, "WeightFileName", ""} |
|
private |
◆ m_caloRelBias
Calibration graph: mean of bias/caloEt as a function of caloEt.
Definition at line 113 of file TauCombinedTES.h.
◆ m_caloRelBiasMaxEt
◆ m_caloRes
Calibration graph: resolution at Calo TES as a function of caloEt.
Definition at line 119 of file TauCombinedTES.h.
◆ m_caloResMaxEt
◆ m_correlationHists
std::array<std::unique_ptr<TH1F>, DecayModeBinning> TauCombinedTES::m_correlationHists |
|
private |
◆ m_decayModeNames
const std::array<std::string, DecayModeBinning> TauCombinedTES::m_decayModeNames = {"1p0n","1p1n","1pXn","3p0n","3pXn"} |
|
private |
Decay mode binning in the calibration graph/hist.
Definition at line 107 of file TauCombinedTES.h.
◆ m_detStore
◆ m_etaBinNames
const std::array<std::string, EtaBinning> TauCombinedTES::m_etaBinNames = {"0", "1", "2", "3", "4"} |
|
private |
◆ m_evtStore
◆ m_in_AOD
Gaudi::Property<bool> TauRecToolBase::m_in_AOD {this, "inAOD", false, "Indicate if the tool is running on AOD"} |
|
protectedinherited |
◆ m_in_EleRM
Gaudi::Property<bool> TauRecToolBase::m_in_EleRM {this, "inEleRM", false, "Indicate if the tool is running on EleRM routine"} |
|
protectedinherited |
◆ m_in_trigger
Gaudi::Property<bool> TauRecToolBase::m_in_trigger {this, "inTrigger", false, "Indicate if the tool is running on trigger"} |
|
protectedinherited |
◆ m_mvaRes
Calibration graph: MVA TES resolution as a function of MVA pt.
Definition at line 137 of file TauCombinedTES.h.
◆ m_mvaResMaxEt
◆ m_nSigmaCompatibility
std::array<std::unique_ptr<TF1>, DecayModeBinning> TauCombinedTES::m_nSigmaCompatibility |
|
private |
Maximum tolerence in unit of combined sigma, as a function of calo Et.
Definition at line 146 of file TauCombinedTES.h.
◆ m_panTauRelBias
Calibration graph: mean of bias/panTauEt as a funtion of panTauEt.
Definition at line 125 of file TauCombinedTES.h.
◆ m_panTauRelBiasMaxEt
◆ m_panTauRes
◆ m_panTauResMaxEt
◆ m_tauRecToolsTag
Gaudi::Property<std::string> TauRecToolBase::m_tauRecToolsTag {this, "calibFolder", "tauRecTools/R22_preprod", "CVMFS path to the tau calibration folder"} |
|
protectedinherited |
◆ m_useMvaResolution
Gaudi::Property<bool> TauCombinedTES::m_useMvaResolution {this, "useMvaResolution", false} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
double getCaloCalEt(double et, int decayModeIndex, int etaIndex) const
Get the Et at the calo TES after calibration correction.
Type
Property type enumeration.
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_mvaResMaxEt
Maximum Et of m_mvaRes.
Extra patterns decribing particle interation process.
double etaTauEnergyScale() const
int getDecayModeIndex(xAOD::TauJetParameters::DecayMode decayMode) const
Get the index of decay mode in the calibration histogram.
Gaudi::Property< bool > m_useMvaResolution
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
bool isValid(const xAOD::TauJet &tau) const
Whether the tau candidate is valid for the calculation.
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_caloRelBiasMaxEt
Maximum Et of m_caloRelBias.
double etaFinalCalib() const
int getEtaIndex(float eta) const
Get the index of eta in the calibration histogram.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
Gaudi::Property< std::string > m_calFileName
std::array< std::unique_ptr< TF1 >, DecayModeBinning > m_nSigmaCompatibility
Maximum tolerence in unit of combined sigma, as a function of calo Et.
bool panTauDetail(TauJetParameters::PanTauDetails panTauDetail, int &value) const
Get and set values of pantau details variables via enum.
Gaudi::Property< bool > m_addCalibrationResultVariables
double resolution[nGasTypes][nParametersResolution]
double getCorrelation(int decayModeIndex, int etaIndex) const
Get correlation coefficient between the calo TES and PanTau.
virtual void setOwner(IDataHandleHolder *o)=0
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
double ptTauEnergyScale() const
::StatusCode StatusCode
StatusCode definition for legacy code.
const std::array< std::string, DecayModeBinning > m_decayModeNames
Decay mode binning in the calibration graph/hist.
double getCaloResolution(double et, int decayModeIndex, int etaIndex) const
Get the resolution of Et at the calo TES.
double getCompatibilitySigma(double caloSigma, double panTauSigma, double correlation) const
Get the compatibility sigma of calo TES and PanTau.
std::array< std::unique_ptr< TH1F >, DecayModeBinning > m_correlationHists
Calibration histogram: correlation coefficient of calo TES and PanTau.
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_panTauRelBias
Calibration graph: mean of bias/panTauEt as a funtion of panTauEt.
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
const std::array< std::string, EtaBinning > m_etaBinNames
Eta binning in the calibration graph.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
double getWeight(double caloSigma, double panTauSigma, double correlatioon) const
Get the weight of calo TES.
xAOD::TauJetParameters::DecayMode getDecayMode(const xAOD::TauJet &tau) const
Get the decay mode of the tau candidate.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
double getPanTauResolution(double et, int decayModeIndex, int etaIndex) const
Get the resolution of Et at PanTau.
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_panTauRelBiasMaxEt
Maximum Et of m_panTauRelBias.
double getPanTauCalEt(double panTauEt, int decayModeIndex, int etaIndex) const
Get the Et at PanTau after calibration correction.
double getNsigmaCompatibility(double caloEt, int decayModeIndex) const
Get the allowed difference between calo TES and PanTau.
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_caloRelBias
Calibration graph: mean of bias/caloEt as a function of caloEt.
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_caloResMaxEt
Maximum Et of m_caloRes.
#define ATH_MSG_WARNING(x)
virtual FourMom_t p4() const
The full 4-momentum of the particle.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_caloRes
Calibration graph: resolution at Calo TES as a function of caloEt.
std::array< std::array< double, EtaBinning >, DecayModeBinning > m_panTauResMaxEt
Maximum Et of m_panTauRes.
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
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.
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_mvaRes
Calibration graph: MVA TES resolution as a function of MVA pt.
TLorentzVector getCombinedP4(const xAOD::TauJet &tau, Variables &variables) const
Get the weighted four momentum of calo TES and PanTau.
constexpr int pow(int base, int exp) noexcept
double ptFinalCalib() const
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
std::array< std::array< std::unique_ptr< TGraph >, EtaBinning >, DecayModeBinning > m_panTauRes
Calibration graph: resolution at PanTau as a function of panTauEt.