ATLAS Offline Software
Loading...
Searching...
No Matches
TrackCaloClusterTool.h
Go to the documentation of this file.
1// this file is -*- C++ -*-
2/*
3 Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration
4*/
5
14
15#ifndef TRACKCALOCLUSTERREC_TRACKCALOCLUSTERRECTOOLS_TRACKCALOCLUSTER_H
16#define TRACKCALOCLUSTERREC_TRACKCALOCLUSTERRECTOOLS_TRACKCALOCLUSTER_H
17
22
26
27
28
35public:
36 TrackCaloClusterBaseTool(const std::string&,const std::string&,const IInterface*);
38
39 virtual StatusCode initialize() override ;
40
41 virtual StatusCode fillTCC(xAOD::FlowElementContainer* container, const TrackCaloClusterInfo & tccInfo ) const override =0;
42
43protected:
44
46 ToolHandle<CP::ITrackVertexAssociationTool> m_trackVertexAssoTool {this ,"TrackVertexAssoTool", ""};
47
49 Gaudi::Property<bool> m_useEnergy {this, "UseEnergy", false, "if false will use pT for weights evaluation"};
50
51
52 SG::ReadDecorHandleKey<xAOD::TrackParticleContainer> m_assoClustersKey{this, "AssoClustersDecor", "TCCAssoClusters", "Key to access clusters associated to a track. IMPORTANT must be constistent with the TrackParticleContainer the parent alg will operate on"};
53
54
55
56 SG::ReadDecorHandleKey<xAOD::TrackParticleContainer> m_caloEntryParsDecor {this, "CaloEntryParsDecorKey" , "","IMPORTANT must be constistent with the TrackParticleContainer the parent alg will operate on, REQUIRED if SaveDetectorEta or DoOriginCorrection, else leave blank so the scheduler won't require it unnecessarily."};
57
59 Gaudi::Property<bool> m_saveDetectorEta {this, "SaveDetectorEta", false, ""};
60};
61
62
63
70public:
71 TCCCombinedTool(const std::string&,const std::string&,const IInterface*);
72 virtual ~TCCCombinedTool() {}
73
74 virtual StatusCode fillTCC(xAOD::FlowElementContainer* container, const TrackCaloClusterInfo & tccInfo ) const override;
75
76protected:
77 // enable origin correction
78 Gaudi::Property<bool> m_doOriginCorrection {this, "DoOriginCorrection", false, ""};
79 Gaudi::Property<bool> m_storeCorrectedPosition{this, "StoreCorrectedPosition", false, ""};
80};
81
82
89public:
90 TCCChargedTool(const std::string&,const std::string&,const IInterface*);
91
92 virtual StatusCode fillTCC(xAOD::FlowElementContainer* container, const TrackCaloClusterInfo & tccInfo ) const override;
93
94protected:
95
96};
97
98
99
106public:
107 TCCNeutralTool(const std::string&,const std::string&,const IInterface*);
108
109 virtual StatusCode fillTCC(xAOD::FlowElementContainer* container, const TrackCaloClusterInfo & tccInfo ) const override ;
110 virtual StatusCode initialize() override;
111
112protected:
114 ToolHandle<IClusterFilterTool> m_clusterFilterTool {this, "ClusterFilterTool", ""};
115 bool m_applyFilter = false ; // set automatically according to ClusterFilterTool
116};
117
118
119
127public:
128 UFOTool(const std::string&,const std::string&,const IInterface*);
129 virtual StatusCode initialize() override;// force override of base class to add extra handles
130 virtual StatusCode fillTCC(xAOD::FlowElementContainer* container, const TrackCaloClusterInfo & tccInfo ) const override;
131
132protected:
133
134 SG::ReadHandleKey<xAOD::FlowElementContainer> m_inputPFOHandle {this, "InputPFO", "CHSParticleFlowObjects", ""};
135 // no need for a ReadDecorHandleKey here : access to this deco is optional (tested through is isAvailable, see TCCHelpers.h)
136 Gaudi::Property<std::string> m_orig_pfo{this, "OriginPFO", "originalObjectLink", "Key to access original un-modified pfo"};
137
139 Gaudi::Property<float> m_clusterEcut{this , "ClusterECut", 0, " Impotant !! : must be the same value as in TrackCaloClusterInfoUFOAlg"};
140};
141
142#endif // TRACKCALOCLUSTERREC_TRACKCALOCLUSTERRECTOOLS_PARTICLETOCALOEXTRAPOLATIONTOOL_H
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Interface for tools creating particles using TCC methods and filling a FlowElementContainer.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
TCCChargedTool(const std::string &, const std::string &, const IInterface *)
virtual StatusCode fillTCC(xAOD::FlowElementContainer *container, const TrackCaloClusterInfo &tccInfo) const override
Gaudi::Property< bool > m_storeCorrectedPosition
virtual StatusCode fillTCC(xAOD::FlowElementContainer *container, const TrackCaloClusterInfo &tccInfo) const override
Gaudi::Property< bool > m_doOriginCorrection
TCCCombinedTool(const std::string &, const std::string &, const IInterface *)
virtual StatusCode initialize() override
ToolHandle< IClusterFilterTool > m_clusterFilterTool
optionnal tool to filter cluster we don't want to consider as TCC
virtual StatusCode fillTCC(xAOD::FlowElementContainer *container, const TrackCaloClusterInfo &tccInfo) const override
TCCNeutralTool(const std::string &, const std::string &, const IInterface *)
Gaudi::Property< bool > m_saveDetectorEta
flag to add dectetor eta decoration onto the produced TrackCaloClusters
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_caloEntryParsDecor
TrackCaloClusterBaseTool(const std::string &, const std::string &, const IInterface *)
virtual StatusCode fillTCC(xAOD::FlowElementContainer *container, const TrackCaloClusterInfo &tccInfo) const override=0
virtual ~TrackCaloClusterBaseTool()
ToolHandle< CP::ITrackVertexAssociationTool > m_trackVertexAssoTool
The tool used to make sure a track is associated to PV0.
Gaudi::Property< bool > m_useEnergy
use cluster energy or pt?
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_assoClustersKey
virtual StatusCode initialize() override
Gaudi::Property< std::string > m_orig_pfo
virtual StatusCode fillTCC(xAOD::FlowElementContainer *container, const TrackCaloClusterInfo &tccInfo) const override
Gaudi::Property< float > m_clusterEcut
cluster with E below this cut won't be considered in the TCC alg. WARNING cut must be configured as i...
UFOTool(const std::string &, const std::string &, const IInterface *)
SG::ReadHandleKey< xAOD::FlowElementContainer > m_inputPFOHandle
virtual StatusCode initialize() override
FlowElementContainer_v1 FlowElementContainer
Definition of the current "pfo container version".
Holds all the necessary information to build TrackCaloCluster objects.