ATLAS Offline Software
Loading...
Searching...
No Matches
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
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
47 StatusCode correctPFO(xAOD::PFOContainer& cont) const;
48 StatusCode correctPFO(xAOD::FlowElementContainer& cont) const;
49 StatusCode correctPFOByVertex(xAOD::PFOContainer& cont) const;
50 StatusCode correctPFOByVertex(xAOD::FlowElementContainer& cont) const;
51
52 const xAOD::Vertex* getPrimaryVertex() const;
53 StatusCode applyNeutralCorrection(xAOD::PFO& pfo, const xAOD::Vertex& vtx) const;
54 StatusCode applyNeutralCorrection(xAOD::FlowElement& pfo, const xAOD::Vertex& vtx) const;
55 StatusCode applyChargedCorrection(xAOD::PFO& pfo) const;
56 StatusCode applyChargedCorrection(xAOD::FlowElement& pfo) const;
57
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
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Property holding a SG store/key/clid from which a ReadHandle is made.
StatusCode correctPFOByVertex(xAOD::PFOContainer &cont) const
bool m_calibrate
If true EM clusters are used for neutral PFOs.
StatusCode correctPFO(xAOD::PFOContainer &cont) const
StatusCode process_impl(xAOD::IParticleContainer *cont) const override final
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainer_key
StatusCode applyChargedCorrection(xAOD::PFO &pfo) const
CorrectPFOTool(const std::string &name)
StatusCode applyNeutralCorrection(xAOD::PFO &pfo, const xAOD::Vertex &vtx) const
ToolHandle< CP::IWeightPFOTool > m_weightPFOTool
const xAOD::Vertex * getPrimaryVertex() const
bool m_correctneutral
If true, EM PFOs are calibrated to LC.
StatusCode initialize() override final
Dummy implementation of the initialisation function.
JetConstituentModifierBase(const std::string &name)
Property holding a SG store/key/clid from which a ReadHandle is made.
FlowElementContainer_v1 FlowElementContainer
Definition of the current "pfo container version".
PFO_v1 PFO
Definition of the current "pfo version".
Definition PFO.h:17
PFOContainer_v1 PFOContainer
Definition of the current "pfo container version".
FlowElement_v1 FlowElement
Definition of the current "pfo version".
Definition FlowElement.h:16
Vertex_v1 Vertex
Define the latest version of the vertex class.
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.