ATLAS Offline Software
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 
19 #include "xAODPFlow/PFOContainer.h"
22 
26 
27 
28 
35 public:
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 
43 protected:
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 
70 public:
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 
76 protected:
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 
89 public:
90  TCCChargedTool(const std::string&,const std::string&,const IInterface*);
91 
92  virtual StatusCode fillTCC(xAOD::FlowElementContainer* container, const TrackCaloClusterInfo & tccInfo ) const override;
93 
94 protected:
95 
96 };
97 
98 
99 
106 public:
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 
112 protected:
114  ToolHandle<IClusterFilterTool> m_clusterFilterTool {this, "ClusterFilterTool", ""};
115  bool m_applyFilter = false ; // set automatically according to ClusterFilterTool
116 };
117 
118 
119 
127 public:
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 
132 protected:
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
TCCCombinedTool::m_doOriginCorrection
Gaudi::Property< bool > m_doOriginCorrection
Definition: TrackCaloClusterTool.h:78
TrackCaloClusterBaseTool::m_saveDetectorEta
Gaudi::Property< bool > m_saveDetectorEta
flag to add dectetor eta decoration onto the produced TrackCaloClusters
Definition: TrackCaloClusterTool.h:59
TCCNeutralTool::fillTCC
virtual StatusCode fillTCC(xAOD::FlowElementContainer *container, const TrackCaloClusterInfo &tccInfo) const override
Definition: TrackCaloClusterTool.cxx:260
IClusterFilterTool.h
FlowElementContainer.h
ReadDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
TCCChargedTool::TCCChargedTool
TCCChargedTool(const std::string &, const std::string &, const IInterface *)
Definition: TrackCaloClusterTool.cxx:195
TCCCombinedTool::~TCCCombinedTool
virtual ~TCCCombinedTool()
Definition: TrackCaloClusterTool.h:72
TCCNeutralTool::TCCNeutralTool
TCCNeutralTool(const std::string &, const std::string &, const IInterface *)
Definition: TrackCaloClusterTool.cxx:246
TCCNeutralTool::initialize
virtual StatusCode initialize() override
Definition: TrackCaloClusterTool.cxx:249
PFOContainer.h
UFOTool::m_inputPFOHandle
SG::ReadHandleKey< xAOD::FlowElementContainer > m_inputPFOHandle
Definition: TrackCaloClusterTool.h:134
ITrackCaloClusterTool.h
TCCCombinedTool::fillTCC
virtual StatusCode fillTCC(xAOD::FlowElementContainer *container, const TrackCaloClusterInfo &tccInfo) const override
Definition: TrackCaloClusterTool.cxx:107
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
TCCChargedTool
Definition: TrackCaloClusterTool.h:88
TCCCombinedTool
Definition: TrackCaloClusterTool.h:69
TrackCaloClusterBaseTool::m_trackVertexAssoTool
ToolHandle< CP::ITrackVertexAssociationTool > m_trackVertexAssoTool
The tool used to make sure a track is associated to PV0.
Definition: TrackCaloClusterTool.h:46
ITrackCaloClusterTool
Interface for tools creating particles using TCC methods and filling a FlowElementContainer.
Definition: ITrackCaloClusterTool.h:22
UFOTool
Definition: TrackCaloClusterTool.h:126
TCCChargedTool::fillTCC
virtual StatusCode fillTCC(xAOD::FlowElementContainer *container, const TrackCaloClusterInfo &tccInfo) const override
Definition: TrackCaloClusterTool.cxx:200
UFOTool::m_clusterEcut
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...
Definition: TrackCaloClusterTool.h:139
TrackCaloClusterInfo
Definition: TrackCaloClusterInfo.h:23
TrackCaloClusterBaseTool::m_useEnergy
Gaudi::Property< bool > m_useEnergy
use cluster energy or pt?
Definition: TrackCaloClusterTool.h:49
UFOTool::initialize
virtual StatusCode initialize() override
Definition: TrackCaloClusterTool.cxx:348
TrackCaloClusterBaseTool
Definition: TrackCaloClusterTool.h:34
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
UFOTool::UFOTool
UFOTool(const std::string &, const std::string &, const IInterface *)
Definition: TrackCaloClusterTool.cxx:345
ITrackVertexAssociationTool.h
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
TCCCombinedTool::TCCCombinedTool
TCCCombinedTool(const std::string &, const std::string &, const IInterface *)
Definition: TrackCaloClusterTool.cxx:103
TCCNeutralTool::m_clusterFilterTool
ToolHandle< IClusterFilterTool > m_clusterFilterTool
optionnal tool to filter cluster we don't want to consider as TCC
Definition: TrackCaloClusterTool.h:114
TrackCaloClusterBaseTool::m_caloEntryParsDecor
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_caloEntryParsDecor
Definition: TrackCaloClusterTool.h:56
UFOTool::fillTCC
virtual StatusCode fillTCC(xAOD::FlowElementContainer *container, const TrackCaloClusterInfo &tccInfo) const override
Definition: TrackCaloClusterTool.cxx:359
TrackCaloClusterBaseTool::TrackCaloClusterBaseTool
TrackCaloClusterBaseTool(const std::string &, const std::string &, const IInterface *)
Definition: TrackCaloClusterTool.cxx:78
TrackCaloClusterBaseTool::fillTCC
virtual StatusCode fillTCC(xAOD::FlowElementContainer *container, const TrackCaloClusterInfo &tccInfo) const override=0
TrackCaloClusterBaseTool::initialize
virtual StatusCode initialize() override
Definition: TrackCaloClusterTool.cxx:86
UFOTool::m_orig_pfo
Gaudi::Property< std::string > m_orig_pfo
Definition: TrackCaloClusterTool.h:136
TrackCaloClusterBaseTool::~TrackCaloClusterBaseTool
virtual ~TrackCaloClusterBaseTool()
AthAlgTool
Definition: AthAlgTool.h:26
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
TCCNeutralTool
Definition: TrackCaloClusterTool.h:105
TCCNeutralTool::m_applyFilter
bool m_applyFilter
Definition: TrackCaloClusterTool.h:115
TrackCaloClusterBaseTool::m_assoClustersKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_assoClustersKey
Definition: TrackCaloClusterTool.h:52
TCCCombinedTool::m_storeCorrectedPosition
Gaudi::Property< bool > m_storeCorrectedPosition
Definition: TrackCaloClusterTool.h:79