ATLAS Offline Software
Loading...
Searching...
No Matches
HGTD::TrackTimeExtensionAlg Class Reference

#include <TrackTimeExtensionAlg.h>

Inheritance diagram for HGTD::TrackTimeExtensionAlg:
Collaboration diagram for HGTD::TrackTimeExtensionAlg:

Classes

struct  DecorHandles

Public Member Functions

 TrackTimeExtensionAlg (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~TrackTimeExtensionAlg ()
virtual StatusCode initialize () override final
virtual StatusCode execute (const EventContext &ctx) const override final
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
virtual void setFilterPassed (bool state, const EventContext &ctx) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode decorateTrackParticle (DecorHandles &dh, const xAOD::TrackParticle *track_ptkl, const HGTD::ExtensionObject &extension, const InDetSimDataCollection *sdo_collection, const HepMC::GenEvent *hs_event, bool skip_deco=false) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ToolHandle< IHGTD_TrackTimeExtensionToolm_extension_tool {this, "TimeExtensionTool", "HGTD_IterativeExtensionTool/HGTD_IterativeExtensionTool", "Tool for extending ID tracks into the HGTD"}
SG::ReadHandleKey< HGTD_ClusterContainerm_clustercont_rh_key {this, "HGTDClusterContainerName", "HGTD_Cluster", "Name of the HGTD_Cluster container"}
SG::ReadHandleKey< InDetSimDataCollectionm_sdo_coll_rh_key {this, "HGTD_SDOCollectionName", "HGTD_SDO_Map", "Name of the SDO container"}
SG::ReadHandleKey< McEventCollectionm_mc_coll_rh_key {this, "MC_CollectionName", "TruthEvent", "Name of the McEventCollection containing the truth information"}
SG::ReadHandleKey< xAOD::TrackParticleContainerm_trk_ptkl_rh_key {this, "TrackParticleContainerName", "InDetTrackParticles", "Name of the TrackParticle container"}
StringProperty m_deco_prefix {this, "DecorationPrefix", "HGTD", "Prefix to better identify decorations"}
FloatProperty m_eta_cut {this, "MinEtaAcceptance", 2.38, "Minimum eta to consider a track for extension"}
ToolHandle< IHGTD_ClusterTruthToolm_truth_tool {this, "TruthTool", "ClusterTruthTool/ClusterTruthTool", "Tool for classifying HGTD clusters with truth information"}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_layerHasExtensionKey {this, "HGTD_has_extension", m_trk_ptkl_rh_key, "HGTD_has_extension", "deco with a handle for an extension"}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_layerExtensionChi2Key {this, "HGTD_extension_chi2", m_trk_ptkl_rh_key, "HGTD_extension_chi2", "deco with a handle for a ch2 of extension"}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_layerClusterRawTimeKey {this, "HGTD_cluster_raw_time", m_trk_ptkl_rh_key, "HGTD_cluster_raw_time", "deco with a handle for layer cluster raw time"}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_layerClusterTimeKey {this, "HGTD_cluster_time", m_trk_ptkl_rh_key, "HGTD_cluster_time", "deco with a handle for cluster time"}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_layerClusterTruthClassKey {this, "HGTD_cluster_truth_class", m_trk_ptkl_rh_key, "HGTD_cluster_truth_class", "deco with a handle for a truth time"}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_layerClusterShadowedKey {this, "HGTD_cluster_shadowed", m_trk_ptkl_rh_key, "HGTD_cluster_shadowed", "deco with a handle for a shadowed cluster"}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_layerClusterMergedKey {this, "HGTD_cluster_merged", m_trk_ptkl_rh_key, "HGTD_cluster_merged", "deco with a handle for a merged cluster"}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_layerPrimaryExpectedKey {this, "HGTD_primary_expected", m_trk_ptkl_rh_key, "HGTD_primary_expected", "deco with a handle for an expected primary"}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_extrapXKey {this, "HGTD_extrap_x", m_trk_ptkl_rh_key, "HGTD_extrap_x", "deco with a handle for an x of extrap"}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_extrapYKey {this, "HGTD_extrap_y", m_trk_ptkl_rh_key, "HGTD_extrap_y", "deco with a handle for an y of extrap"}
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Friends

struct DecorHandles

Detailed Description

Definition at line 41 of file TrackTimeExtensionAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ TrackTimeExtensionAlg()

HGTD::TrackTimeExtensionAlg::TrackTimeExtensionAlg ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 23 of file TrackTimeExtensionAlg.cxx.

25 : AthReentrantAlgorithm(name, pSvcLocator) {}

◆ ~TrackTimeExtensionAlg()

virtual HGTD::TrackTimeExtensionAlg::~TrackTimeExtensionAlg ( )
inlinevirtual

Definition at line 45 of file TrackTimeExtensionAlg.h.

45{}

Member Function Documentation

◆ cardinality()

unsigned int AthCommonReentrantAlgorithm< Gaudi::Algorithm >::cardinality ( ) const
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.

64{
65 return 0;
66}

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ decorateTrackParticle()

StatusCode HGTD::TrackTimeExtensionAlg::decorateTrackParticle ( DecorHandles & dh,
const xAOD::TrackParticle * track_ptkl,
const HGTD::ExtensionObject & extension,
const InDetSimDataCollection * sdo_collection,
const HepMC::GenEvent * hs_event,
bool skip_deco = false ) const
private

Definition at line 166 of file TrackTimeExtensionAlg.cxx.

170 {
171
172 std::vector<bool> has_cluster_vec;
173 has_cluster_vec.reserve(n_hgtd_layers);
174 std::vector<float> chi2_vec;
175 chi2_vec.reserve(n_hgtd_layers);
176 std::vector<float> raw_time_vec;
177 raw_time_vec.reserve(n_hgtd_layers);
178 std::vector<float> time_vec;
179 time_vec.reserve(n_hgtd_layers);
180 std::vector<int> truth_vec;
181 truth_vec.reserve(n_hgtd_layers);
182 std::vector<bool> is_shadowed_vec;
183 is_shadowed_vec.reserve(n_hgtd_layers);
184 std::vector<bool> is_merged_vec;
185 is_merged_vec.reserve(n_hgtd_layers);
186 std::vector<bool> primary_exists_vec;
187 primary_exists_vec.reserve(n_hgtd_layers);
188
189 for (unsigned short i = 0; i < n_hgtd_layers; i++) {
190
191 const std::unique_ptr<const Trk::TrackStateOnSurface>& trk_state =
192 extension.m_hits.at(i);
193 const HGTD_Cluster* primary_cluster = extension.m_truth_primary_hits.at(i);
194
195 primary_exists_vec.push_back(primary_cluster != nullptr);
196
197 if (trk_state) {
198 ATH_MSG_DEBUG("[decorateTrackParticle] extension found");
199 has_cluster_vec.emplace_back(true);
200
201 chi2_vec.emplace_back(
202 trk_state->fitQualityOnSurface().chiSquared() /
203 trk_state->fitQualityOnSurface().doubleNumberDoF());
204
205 const HGTD_ClusterOnTrack* cot =
206 dynamic_cast<const HGTD_ClusterOnTrack*>(trk_state->measurementOnTrack());
207
208 time_vec.emplace_back(cot->time());
209
210 // get the cluster
211 const HGTD_Cluster* cluster = cot->prepRawData();
212
213 raw_time_vec.emplace_back(cluster->time());
214
215 // get the truth particle
217 acc_tpl("truthParticleLink");
218 const xAOD::TruthParticle* truth_particle = nullptr;
219 if (acc_tpl.isAvailable(*track_ptkl)) {
220 const auto& truth_match_link = acc_tpl(*track_ptkl);
221 if (truth_match_link.isValid()) {
222 truth_particle = *truth_match_link;
223 }
224 }
225
227 bool is_shadowed = false;
228 bool is_merged = false;
229
230 if (truth_particle) {
231 auto truth_info = m_truth_tool->classifyCluster(
232 cluster, truth_particle, sdo_collection, hs_event);
233 truth_origin = truth_info.origin;
234 is_shadowed = truth_info.is_shadowed;
235 is_merged = truth_info.is_merged;
236 }
237
238 ATH_MSG_DEBUG("Truth origin: " << (int)truth_origin);
239
240 truth_vec.emplace_back((int)truth_origin);
241 is_shadowed_vec.emplace_back(is_shadowed);
242 is_merged_vec.emplace_back(is_merged);
243 } else {
244 ATH_MSG_DEBUG("[decorateTrackParticle] NO extension found");
245 has_cluster_vec.emplace_back(false);
246 if (not skip_deco) {
247 chi2_vec.emplace_back(-1.);
248 raw_time_vec.emplace_back(-1.);
249 time_vec.emplace_back(-1.);
250 truth_vec.emplace_back(-1);
251 is_shadowed_vec.emplace_back(false);
252 is_merged_vec.emplace_back(false);
253 }
254 }
255
256 } // END LOOP over TrackStateOnSurface
257
258 dh.layerHasExtensionHandle(*track_ptkl) = has_cluster_vec;
259 dh.layerExtensionChi2Handle(*track_ptkl) = chi2_vec;
260 dh.layerClusterRawTimeHandle(*track_ptkl) = raw_time_vec;
261 dh.layerClusterTimeHandle(*track_ptkl) = time_vec;
262 dh.layerClusterTruthClassHandle(*track_ptkl) = truth_vec;
263 dh.layerClusterShadowedHandle(*track_ptkl) = is_shadowed_vec;
264 dh.layerClusterMergedHandle(*track_ptkl) = is_merged_vec;
265 dh.layerPrimaryExpectedHandle(*track_ptkl) = primary_exists_vec;
266 dh.extrapXHandle(*track_ptkl) = extension.m_extrap_x;
267 dh.extrapYHandle(*track_ptkl) = extension.m_extrap_y;
268
269 return StatusCode::SUCCESS;
270}
#define ATH_MSG_DEBUG(x)
ToolHandle< IHGTD_ClusterTruthTool > m_truth_tool
virtual const HGTD_Cluster * prepRawData() const override final
returns the PrepRawData - is a SiCluster in this scope
virtual float time() const
virtual float time() const
SG::Accessor< T, ALLOC > Accessor
Definition AuxElement.h:572
TruthParticle_v1 TruthParticle
Typedef to implementation.
std::array< std::unique_ptr< const Trk::TrackStateOnSurface >, 4 > m_hits
std::array< const HGTD_Cluster *, 4 > m_truth_primary_hits

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode HGTD::TrackTimeExtensionAlg::execute ( const EventContext & ctx) const
finaloverridevirtual

Definition at line 54 of file TrackTimeExtensionAlg.cxx.

54 {
55
56 ATH_MSG_DEBUG("Start event");
57
58 SG::ReadHandle<HGTD_ClusterContainer> cluster_container_handle(
60 const HGTD_ClusterContainer* cluster_container =
61 cluster_container_handle.cptr();
62 if (not cluster_container) {
63 ATH_MSG_ERROR("[TrackTimeExtensionAlg] HGTD_ClusterContainer not found, "
64 "aborting execute!");
65 return StatusCode::FAILURE;
66 }
67
68 SG::ReadHandle<InDetSimDataCollection> sdo_collection_handle(
70 const InDetSimDataCollection* sdo_collection = sdo_collection_handle.cptr();
71 if (not sdo_collection) {
72 ATH_MSG_WARNING("[TrackTimeExtensionAlg] SDO Collection not found, no "
73 "truth info available!");
74 }
75
76 SG::ReadHandle<McEventCollection> mc_collection_handle(m_mc_coll_rh_key, ctx);
77 const McEventCollection* mc_coll = mc_collection_handle.cptr();
78 if (not mc_coll) {
79 ATH_MSG_ERROR("[TrackTimeExtensionAlg] McEventCollection not found, "
80 "aborting execute!");
81 return StatusCode::FAILURE;
82 }
83
84 const HepMC::GenEvent* hs_event = nullptr;
85 if (mc_coll->size() > 0) {
86 hs_event = mc_coll->at(0);
87 } else {
88 hs_event = nullptr;
89 }
90
91 // for each track, run the extension if the track is in HGTD acceptance
92 SG::ReadHandle<xAOD::TrackParticleContainer> trk_ptkl_container_handle(
94 const xAOD::TrackParticleContainer* track_particles =
95 trk_ptkl_container_handle.cptr();
96 if (not track_particles) {
97 ATH_MSG_ERROR("[TrackTimeExtensionAlg] TrackParticleContainer not found, "
98 "aborting execute!");
99 return StatusCode::FAILURE;
100 }
101
102 DecorHandles dh (*this, ctx);
103
104 for (const auto* track_ptkl : *track_particles) {
105
106 ATH_MSG_DEBUG("Track eta: " << track_ptkl->eta()
107 << " pt: " << track_ptkl->pt());
108
109 HGTD::ExtensionObject extension;
110
111 if (std::abs(track_ptkl->eta()) < m_eta_cut) {
112 ATH_MSG_DEBUG("Track out of acceptance");
113 // decorate all track particle objects to avoid issues with the
114 // decorations
115 ATH_CHECK(decorateTrackParticle(dh, track_ptkl, extension, sdo_collection,
116 hs_event, true));
117 continue;
118 }
119
120 // this should not happen?
121 if (track_ptkl->track() == nullptr) {
122 ATH_MSG_DEBUG("There is no Trk::Track");
123 ATH_CHECK(decorateTrackParticle(dh, track_ptkl, extension, sdo_collection,
124 hs_event, true));
125 continue;
126 }
127
128 // return 4 track states on surface objects as a result of the extension
129 extension = m_extension_tool->extendTrackToHGTD(ctx,
130 *track_ptkl,
131 cluster_container,
132 hs_event,
133 sdo_collection);
134
135 // TODO here:
136 // retrieve truth info for associated and non-associated HGTD hits, merging
137 // or shadowing info
138
139 // decorate the track
140 ATH_CHECK(decorateTrackParticle(dh, track_ptkl, extension, sdo_collection,
141 hs_event, false));
142
143 } // END LOOP over tracks
144
145 return StatusCode::SUCCESS;
146}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_WARNING(x)
Trk::PrepRawDataContainer< HGTD_ClusterCollection > HGTD_ClusterContainer
ToolHandle< IHGTD_TrackTimeExtensionTool > m_extension_tool
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trk_ptkl_rh_key
SG::ReadHandleKey< InDetSimDataCollection > m_sdo_coll_rh_key
SG::ReadHandleKey< McEventCollection > m_mc_coll_rh_key
SG::ReadHandleKey< HGTD_ClusterContainer > m_clustercont_rh_key
StatusCode decorateTrackParticle(DecorHandles &dh, const xAOD::TrackParticle *track_ptkl, const HGTD::ExtensionObject &extension, const InDetSimDataCollection *sdo_collection, const HepMC::GenEvent *hs_event, bool skip_deco=false) const
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthCommonReentrantAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.

90{
91 // If we didn't find any symlinks to add, just return the collection
92 // from the base class. Otherwise, return the extended collection.
93 if (!m_extendedExtraObjects.empty()) {
95 }
97}
An algorithm that can be simultaneously executed in multiple threads.

◆ filterPassed()

virtual bool AthCommonReentrantAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Definition at line 96 of file AthCommonReentrantAlgorithm.h.

96 {
97 return execState( ctx ).filterPassed();
98 }
virtual bool filterPassed(const EventContext &ctx) const

◆ initialize()

StatusCode HGTD::TrackTimeExtensionAlg::initialize ( )
finaloverridevirtual

Definition at line 27 of file TrackTimeExtensionAlg.cxx.

27 {
28
29 ATH_CHECK(m_extension_tool.retrieve());
30
31 ATH_CHECK(m_truth_tool.retrieve());
32
33 ATH_CHECK(m_clustercont_rh_key.initialize());
34 ATH_CHECK(m_sdo_coll_rh_key.initialize());
35 ATH_CHECK(m_mc_coll_rh_key.initialize());
36 ATH_CHECK(m_trk_ptkl_rh_key.initialize());
40 ATH_CHECK(m_layerClusterTimeKey.initialize());
45 ATH_CHECK(m_extrapXKey.initialize());
46 ATH_CHECK(m_extrapYKey.initialize());
47
48
49 return StatusCode::SUCCESS;
50}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterTruthClassKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerExtensionChi2Key
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_extrapXKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterRawTimeKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerHasExtensionKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterTimeKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterShadowedKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_extrapYKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerPrimaryExpectedKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterMergedKey

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ isClonable()

◆ msg()

MsgStream & AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Gaudi::Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setFilterPassed()

virtual void AthCommonReentrantAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Definition at line 100 of file AthCommonReentrantAlgorithm.h.

100 {
102 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const

◆ sysExecute()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext & ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.

77{
78 return BaseAlg::sysExecute (ctx);
79}

◆ sysInitialize()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in HypoBase, and InputMakerBase.

Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.

107 {
109
110 if (sc.isFailure()) {
111 return sc;
112 }
113
114 ServiceHandle<ICondSvc> cs("CondSvc",name());
115 for (auto h : outputHandles()) {
116 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
117 // do this inside the loop so we don't create the CondSvc until needed
118 if ( cs.retrieve().isFailure() ) {
119 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
120 return StatusCode::SUCCESS;
121 }
122 if (cs->regHandle(this,*h).isFailure()) {
124 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
125 << " with CondSvc");
126 }
127 }
128 }
129 return sc;
130}
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }

◆ DecorHandles

friend struct DecorHandles
friend

Definition at line 64 of file TrackTimeExtensionAlg.h.

Member Data Documentation

◆ m_clustercont_rh_key

SG::ReadHandleKey<HGTD_ClusterContainer> HGTD::TrackTimeExtensionAlg::m_clustercont_rh_key {this, "HGTDClusterContainerName", "HGTD_Cluster", "Name of the HGTD_Cluster container"}
private

Definition at line 75 of file TrackTimeExtensionAlg.h.

75{this, "HGTDClusterContainerName", "HGTD_Cluster", "Name of the HGTD_Cluster container"};

◆ m_deco_prefix

StringProperty HGTD::TrackTimeExtensionAlg::m_deco_prefix {this, "DecorationPrefix", "HGTD", "Prefix to better identify decorations"}
private

Definition at line 80 of file TrackTimeExtensionAlg.h.

80{this, "DecorationPrefix", "HGTD", "Prefix to better identify decorations"};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_eta_cut

FloatProperty HGTD::TrackTimeExtensionAlg::m_eta_cut {this, "MinEtaAcceptance", 2.38, "Minimum eta to consider a track for extension"}
private

Definition at line 82 of file TrackTimeExtensionAlg.h.

82{this, "MinEtaAcceptance", 2.38, "Minimum eta to consider a track for extension"};

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 114 of file AthCommonReentrantAlgorithm.h.

◆ m_extension_tool

ToolHandle<IHGTD_TrackTimeExtensionTool> HGTD::TrackTimeExtensionAlg::m_extension_tool {this, "TimeExtensionTool", "HGTD_IterativeExtensionTool/HGTD_IterativeExtensionTool", "Tool for extending ID tracks into the HGTD"}
private

Definition at line 73 of file TrackTimeExtensionAlg.h.

73{this, "TimeExtensionTool", "HGTD_IterativeExtensionTool/HGTD_IterativeExtensionTool", "Tool for extending ID tracks into the HGTD"};

◆ m_extrapXKey

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_extrapXKey {this, "HGTD_extrap_x", m_trk_ptkl_rh_key, "HGTD_extrap_x", "deco with a handle for an x of extrap"}
private

Definition at line 94 of file TrackTimeExtensionAlg.h.

94{this, "HGTD_extrap_x", m_trk_ptkl_rh_key, "HGTD_extrap_x", "deco with a handle for an x of extrap"};

◆ m_extrapYKey

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_extrapYKey {this, "HGTD_extrap_y", m_trk_ptkl_rh_key, "HGTD_extrap_y", "deco with a handle for an y of extrap"}
private

Definition at line 95 of file TrackTimeExtensionAlg.h.

95{this, "HGTD_extrap_y", m_trk_ptkl_rh_key, "HGTD_extrap_y", "deco with a handle for an y of extrap"};

◆ m_layerClusterMergedKey

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_layerClusterMergedKey {this, "HGTD_cluster_merged", m_trk_ptkl_rh_key, "HGTD_cluster_merged", "deco with a handle for a merged cluster"}
private

Definition at line 92 of file TrackTimeExtensionAlg.h.

92{this, "HGTD_cluster_merged", m_trk_ptkl_rh_key, "HGTD_cluster_merged", "deco with a handle for a merged cluster"};

◆ m_layerClusterRawTimeKey

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_layerClusterRawTimeKey {this, "HGTD_cluster_raw_time", m_trk_ptkl_rh_key, "HGTD_cluster_raw_time", "deco with a handle for layer cluster raw time"}
private

Definition at line 88 of file TrackTimeExtensionAlg.h.

88{this, "HGTD_cluster_raw_time", m_trk_ptkl_rh_key, "HGTD_cluster_raw_time", "deco with a handle for layer cluster raw time"};

◆ m_layerClusterShadowedKey

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_layerClusterShadowedKey {this, "HGTD_cluster_shadowed", m_trk_ptkl_rh_key, "HGTD_cluster_shadowed", "deco with a handle for a shadowed cluster"}
private

Definition at line 91 of file TrackTimeExtensionAlg.h.

91{this, "HGTD_cluster_shadowed", m_trk_ptkl_rh_key, "HGTD_cluster_shadowed", "deco with a handle for a shadowed cluster"};

◆ m_layerClusterTimeKey

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_layerClusterTimeKey {this, "HGTD_cluster_time", m_trk_ptkl_rh_key, "HGTD_cluster_time", "deco with a handle for cluster time"}
private

Definition at line 89 of file TrackTimeExtensionAlg.h.

89{this, "HGTD_cluster_time", m_trk_ptkl_rh_key, "HGTD_cluster_time", "deco with a handle for cluster time"};

◆ m_layerClusterTruthClassKey

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_layerClusterTruthClassKey {this, "HGTD_cluster_truth_class", m_trk_ptkl_rh_key, "HGTD_cluster_truth_class", "deco with a handle for a truth time"}
private

Definition at line 90 of file TrackTimeExtensionAlg.h.

90{this, "HGTD_cluster_truth_class", m_trk_ptkl_rh_key, "HGTD_cluster_truth_class", "deco with a handle for a truth time"};

◆ m_layerExtensionChi2Key

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_layerExtensionChi2Key {this, "HGTD_extension_chi2", m_trk_ptkl_rh_key, "HGTD_extension_chi2", "deco with a handle for a ch2 of extension"}
private

Definition at line 87 of file TrackTimeExtensionAlg.h.

87{this, "HGTD_extension_chi2", m_trk_ptkl_rh_key, "HGTD_extension_chi2", "deco with a handle for a ch2 of extension"};

◆ m_layerHasExtensionKey

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_layerHasExtensionKey {this, "HGTD_has_extension", m_trk_ptkl_rh_key, "HGTD_has_extension", "deco with a handle for an extension"}
private

Definition at line 86 of file TrackTimeExtensionAlg.h.

86{this, "HGTD_has_extension", m_trk_ptkl_rh_key, "HGTD_has_extension", "deco with a handle for an extension"};

◆ m_layerPrimaryExpectedKey

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_layerPrimaryExpectedKey {this, "HGTD_primary_expected", m_trk_ptkl_rh_key, "HGTD_primary_expected", "deco with a handle for an expected primary"}
private

Definition at line 93 of file TrackTimeExtensionAlg.h.

93{this, "HGTD_primary_expected", m_trk_ptkl_rh_key, "HGTD_primary_expected", "deco with a handle for an expected primary"};

◆ m_mc_coll_rh_key

SG::ReadHandleKey<McEventCollection> HGTD::TrackTimeExtensionAlg::m_mc_coll_rh_key {this, "MC_CollectionName", "TruthEvent", "Name of the McEventCollection containing the truth information"}
private

Definition at line 77 of file TrackTimeExtensionAlg.h.

77{this, "MC_CollectionName", "TruthEvent", "Name of the McEventCollection containing the truth information"};

◆ m_sdo_coll_rh_key

SG::ReadHandleKey<InDetSimDataCollection> HGTD::TrackTimeExtensionAlg::m_sdo_coll_rh_key {this, "HGTD_SDOCollectionName", "HGTD_SDO_Map", "Name of the SDO container"}
private

Definition at line 76 of file TrackTimeExtensionAlg.h.

76{this, "HGTD_SDOCollectionName", "HGTD_SDO_Map", "Name of the SDO container"};

◆ m_trk_ptkl_rh_key

SG::ReadHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_trk_ptkl_rh_key {this, "TrackParticleContainerName", "InDetTrackParticles", "Name of the TrackParticle container"}
private

Definition at line 78 of file TrackTimeExtensionAlg.h.

78{this, "TrackParticleContainerName", "InDetTrackParticles", "Name of the TrackParticle container"};

◆ m_truth_tool

ToolHandle<IHGTD_ClusterTruthTool> HGTD::TrackTimeExtensionAlg::m_truth_tool {this, "TruthTool", "ClusterTruthTool/ClusterTruthTool", "Tool for classifying HGTD clusters with truth information"}
private

Definition at line 84 of file TrackTimeExtensionAlg.h.

84{this, "TruthTool", "ClusterTruthTool/ClusterTruthTool", "Tool for classifying HGTD clusters with truth information"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: