ATLAS Offline Software
Loading...
Searching...
No Matches
NeutralPFOClusterMLCorrectionTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef EFLOWREC_NeutralPFOClusterMLCorrectionTool_H
6#define EFLOWREC_NeutralPFOClusterMLCorrectionTool_H
7
16
18
23#include "AthLinks/ElementLink.h"
28
29class NeutralPFOClusterMLCorrectionTool final : public extends<AthAlgTool, IPFOContainerCorrectionTool>
30{
31public:
32 NeutralPFOClusterMLCorrectionTool(const std::string &type, const std::string &name, const IInterface *parent);
34
35 virtual StatusCode initialize() override;
36 virtual void correctContainer(xAOD::FlowElementContainer& neutral_pfos, xAOD::FlowElementContainer& charged_pfos, const EventContext& ctx) const override;
37
38private:
39 // Property to configure the ML energy decoration key
41 this,
42 "ClusterMLCorrectedEnergyDecorationKey",
43 "CaloCalTopoClusters.clusterE_ML",
44 "Decoration storing ML-corrected cluster energy"
45 };
46
47 Gaudi::Property<float> m_max_allowed_charged_correction_fraction{this, "MaxAllowedChargedCorrectionFraction", 0.001, "ClusterML correction will be applied only if |npfo_E - cls_EM_E| <= |MaxAllowedChargedCorrectionFraction * cls_EM_E|"};
48 Gaudi::Property<float> m_min_allowed_em_energy{this,"MinAllowedEMEnergyMeV", 300, "Minimum allowed energy in MeV of matched cluster at EM scale. ClusterML correction will not be applied below this limit."};
49
52};
53#endif
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Handle class for reading a decoration on an object.
Property holding a SG store/key/clid from which a ReadHandle is made.
virtual void correctContainer(xAOD::FlowElementContainer &neutral_pfos, xAOD::FlowElementContainer &charged_pfos, const EventContext &ctx) const override
virtual ~NeutralPFOClusterMLCorrectionTool()=default
const xAOD::CaloCluster * getLinkedCluster(const xAOD::FlowElement &pfo) const
NeutralPFOClusterMLCorrectionTool(const std::string &type, const std::string &name, const IInterface *parent)
SG::ReadDecorHandleKey< xAOD::CaloClusterContainer > m_clusterMLCorrectedEnergyKey
void correctNeutralFlowElement(xAOD::FlowElement &pfo, const SG::ReadDecorHandle< xAOD::CaloClusterContainer, double > &clusterMLReadHandle) const
Gaudi::Property< float > m_max_allowed_charged_correction_fraction
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Handle class for reading a decoration on an object.
FlowElementContainer_v1 FlowElementContainer
Definition of the current "pfo container version".
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
FlowElement_v1 FlowElement
Definition of the current "pfo version".
Definition FlowElement.h:16