ATLAS Offline Software
CorrectPFOTool.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 // CorrectPFOTool.h
6 
7 #ifndef JETRECTOOLS_CORRECTPFOTOOL_H
8 #define JETRECTOOLS_CORRECTPFOTOOL_H
9 
21 
24 #include "xAODPFlow/PFOContainer.h"
26 #include "AsgTools/ToolHandle.h"
28 
30 
31 
34 
35  public:
36 
37  CorrectPFOTool(const std::string& name);
38 
39  // Check that the configuration is reasonable
40  StatusCode initialize() override final;
41 
42  private:
43 
44  // Implement the correction
45  StatusCode process_impl(xAOD::IParticleContainer* cont) const override final;
46  // Type-specific operation
51 
52  const xAOD::Vertex* getPrimaryVertex() const;
57 
58  bool m_inputIsEM;
59  bool m_calibrate;
60  bool m_correctneutral; //If true, correct neutral PFO
61  bool m_correctcharged; //If true, correct charged PFO
62  bool m_useChargedWeights; //If true, them we make use of the charged PFO weighting scheme
63  bool m_doByVertex; // If true, then we add vertex-by-vertex corrections as auxdata for neutral PFOs
64  ToolHandle<CP::IWeightPFOTool> m_weightPFOTool;
65 
67 
68 };
69 
70 #endif
CorrectPFOTool::CorrectPFOTool
CorrectPFOTool(const std::string &name)
Definition: CorrectPFOTool.cxx:13
CorrectPFOTool::m_vertexContainer_key
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainer_key
Definition: CorrectPFOTool.h:66
FlowElementContainer.h
CorrectPFOTool::m_inputIsEM
bool m_inputIsEM
Definition: CorrectPFOTool.h:58
CorrectPFOTool::m_weightPFOTool
ToolHandle< CP::IWeightPFOTool > m_weightPFOTool
Definition: CorrectPFOTool.h:64
CorrectPFOTool::correctPFO
StatusCode correctPFO(xAOD::PFOContainer &cont) const
Definition: CorrectPFOTool.cxx:101
JetConstituentModifierBase.h
CorrectPFOTool::m_calibrate
bool m_calibrate
If true EM clusters are used for neutral PFOs.
Definition: CorrectPFOTool.h:59
PFOContainer.h
IWeightPFOTool.h
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
CorrectPFOTool::getPrimaryVertex
const xAOD::Vertex * getPrimaryVertex() const
Definition: CorrectPFOTool.cxx:66
IJetConstituentModifier
Definition: IJetConstituentModifier.h:16
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
CorrectPFOTool::correctPFO
StatusCode correctPFO(xAOD::FlowElementContainer &cont) const
CorrectPFOTool::process_impl
StatusCode process_impl(xAOD::IParticleContainer *cont) const override final
Definition: CorrectPFOTool.cxx:51
CorrectPFOTool
Definition: CorrectPFOTool.h:32
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
CorrectPFOTool::m_correctcharged
bool m_correctcharged
Definition: CorrectPFOTool.h:61
CorrectPFOTool::correctPFOByVertex
StatusCode correctPFOByVertex(xAOD::PFOContainer &cont) const
Definition: CorrectPFOTool.cxx:159
CorrectPFOTool::applyChargedCorrection
StatusCode applyChargedCorrection(xAOD::PFO &pfo) const
Definition: CorrectPFOTool.cxx:303
CorrectPFOTool::initialize
StatusCode initialize() override final
Dummy implementation of the initialisation function.
Definition: CorrectPFOTool.cxx:32
CorrectPFOTool::correctPFOByVertex
StatusCode correctPFOByVertex(xAOD::FlowElementContainer &cont) const
xAOD::PFO_v1
Class describing a particle flow object.
Definition: PFO_v1.h:35
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
JetConstituentModifierBase
Definition: JetConstituentModifierBase.h:22
CorrectPFOTool::m_doByVertex
bool m_doByVertex
Definition: CorrectPFOTool.h:63
VertexContainer.h
CorrectPFOTool::applyNeutralCorrection
StatusCode applyNeutralCorrection(xAOD::PFO &pfo, const xAOD::Vertex &vtx) const
Definition: CorrectPFOTool.cxx:273
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
CorrectPFOTool::m_correctneutral
bool m_correctneutral
If true, EM PFOs are calibrated to LC.
Definition: CorrectPFOTool.h:60
ToolHandle.h
CorrectPFOTool::m_useChargedWeights
bool m_useChargedWeights
Definition: CorrectPFOTool.h:62
xAOD::FlowElement_v1
A detector object made of other lower level object(s)
Definition: FlowElement_v1.h:25