ATLAS Offline Software
Loading...
Searching...
No Matches
HIClusterSubtraction.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5// HIClusterSubtraction.h
6
7#ifndef __HIJETREC_HICLUSTERSUBTRACTION_H__
8#define __HIJETREC_HICLUSTERSUBTRACTION_H__
9
22
23#include "AsgTools/AsgTool.h"
26#include "AsgTools/ToolHandle.h"
32
35
37
38class HIClusterSubtraction : virtual public asg::AsgTool,
39 virtual public IJetExecuteTool
40{
42public:
43 HIClusterSubtraction(const std::string& name);
44 virtual StatusCode initialize();
46
47 virtual int execute() const;
48
49 bool doOriginCorrection( xAOD::CaloCluster* cl, const xAOD::Vertex* origin, xAOD::IParticle::FourMom_t& p4_cl ) const;
50
51
52private:
54 SG::ReadHandleKey< xAOD::CaloClusterContainer > m_inClusterKey { this, "ClusterKey", "ClusterKey", "Name of the input Cluster Container"};
56 SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey { this, "OutClusterKey", "OutClusterKey", "Name of the output Cluster Container (deep Copy)"};
58 SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_eventShapeKey { this, "EventShapeKey", "EventShapeKey", "Name of HIEventShapeContainer defining background"};
60 SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainer { this, "VertexContainer", "PrimaryVertices", "Vertex container for primary vertices"};
61
62 // Tool handles
63 ToolHandle<IHISubtractorTool> m_subtractorTool { this, "Subtractor", "HIJetSubtractorToolBase", "Handle to IHISubtractorTool which does calculates subtracted kinematics" };
64 ToolHandle<IHIUEModulatorTool> m_modulatorTool { this, "Modulator" , "HIUEModulatorTool" , "Handle to IHIModulatorTool" };
65 ToolHandle<IHIEventShapeMapTool> m_eventShapeMapTool { this, "EventShapeMapTool", "HIEventShapeMapTool", "Handle to Event Shape Map Tool"};
66 ToolHandleArray<CaloClusterCollectionProcessor> m_clusterCorrectionTools { this, "ClusterCorrectionTools", {}, "" };
67
68 // Booleans
69 Gaudi::Property< bool > m_setMoments { this, "SetMoments", true, "Set Moments boolean switch"};
70 Gaudi::Property< bool > m_updateMode { this, "UpdateOnly", false, "Update Mode boolean switch"};
71 //Moving the origin correction directly here
72 Gaudi::Property< bool > m_originCorrection { this, "ApplyOriginCorrection", false, "Apply Origin Correction boolean switch"};
73
74};
75#endif
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Base class for cluster processing tools called from CaloClusterMaker.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Gaudi::Property< bool > m_setMoments
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
ToolHandle< IHIUEModulatorTool > m_modulatorTool
ToolHandle< IHISubtractorTool > m_subtractorTool
HIClusterSubtraction(const std::string &name)
SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey
|brief New writeHandleKey to store the shallow copy used for new CaloClusterTreatment
virtual int execute() const
Method to be called for each event.
bool doOriginCorrection(xAOD::CaloCluster *cl, const xAOD::Vertex *origin, xAOD::IParticle::FourMom_t &p4_cl) const
ToolHandleArray< CaloClusterCollectionProcessor > m_clusterCorrectionTools
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_inClusterKey
Name of input cluster container.
SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_eventShapeKey
Name of HIEventShapeContainer defining background.
Gaudi::Property< bool > m_originCorrection
ToolHandle< IHIEventShapeMapTool > m_eventShapeMapTool
Gaudi::Property< bool > m_updateMode
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainer
|brief Name of Vertex Container for origin correction
IJetExecuteTool is a dual-use tool interface for generic tools, i.e. those that behave like algorithm...
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
TLorentzVector FourMom_t
Definition of the 4-momentum type.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Vertex_v1 Vertex
Define the latest version of the vertex class.