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 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
 Get filter decision:
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 Set filter decision:
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"}
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_holesHGTDKey {this, "HGTD_holes", m_trk_ptkl_rh_key, "HGTD_holes", "deco with the holes on track in HGTD"}
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

◆ 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 167 of file TrackTimeExtensionAlg.cxx.

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

54{
55 // If we didn't find any symlinks to add, just return the collection
56 // from the base class. Otherwise, return the extended collection.
57 if (!m_extendedExtraObjects.empty()) {
59 }
61}
Common base class for algorithms.

◆ filterPassed()

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

Get filter decision:

Definition at line 93 of file AthCommonAlgorithm.h.

93 {
94 return execState( ctx ).filterPassed();
95 }
virtual bool filterPassed(const EventContext &ctx) const
Get filter decision:

◆ 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 ATH_CHECK(m_holesHGTDKey.initialize());
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_holesHGTDKey
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()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::isClonable ( ) const
inlineoverridevirtualinherited

Specify if the algorithm is clonable.

Only relevant for non-reentrant algorithms. Actual number of clones needs to be set via the "Cardinality" property.

Reimplemented in AFP_DigiTop, AlgB, AlgT, BCM_Digitization, CscDigitBuilder, CscDigitToCscRDO, G4AtlasAlg, G4RunAlg, HGTD_Digitization, HiveAlgBase, InDet::GNNSeedingTrackMaker, InDet::SCT_Clusterization, InDet::SiSPGNNTrackMaker, InDet::SiSPSeededTrackFinder, InDet::SiTrackerSpacePointFinder, ISF::SimKernelMT, ITk::StripDigitization, ITkPixelCablingAlg, ITkStripCablingAlg, LArHitEMapMaker, LArTTL1Maker, LUCID_DigiTop, LVL1::L1TopoSimulation, MergeCalibHits, MergeGenericMuonSimHitColl, MergeHijingPars, MergeMcEventCollection, MergeTrackRecordCollection, MergeTruthJets, MergeTruthParticles, MuonDigitizer, PileUpMTAlg, PixelDigitization, RoIBResultToxAOD, SCT_ByteStreamErrorsTestAlg, SCT_CablingCondAlgFromCoraCool, SCT_CablingCondAlgFromText, SCT_ConditionsParameterTestAlg, SCT_ConditionsSummaryTestAlg, SCT_ConfigurationConditionsTestAlg, SCT_Digitization, SCT_FlaggedConditionTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_PrepDataToxAOD, SCT_RawDataToxAOD, SCT_ReadCalibChipDataTestAlg, SCT_ReadCalibDataTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_SiliconConditionsTestAlg, SCT_StripVetoTestAlg, SCT_TdaqEnabledTestAlg, SCT_TestCablingAlg, SCTEventFlagWriter, SCTRawDataProvider, SCTSiLorentzAngleTestAlg, SCTSiPropertiesTestAlg, SGInputLoader, Simulation::BeamEffectsAlg, TileHitVecToCnt, TileMuonFitter, TilePulseForTileMuonReceiver, TileRawChannelMaker, TRTDigitization, and ZDC_DigiTop.

Definition at line 68 of file AthCommonAlgorithm.h.

68 {
69 return true;
70 }

◆ 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 AthCommonAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Set filter decision:

Reimplemented in AthFilterAlgorithm.

Definition at line 99 of file AthCommonAlgorithm.h.

99 {
101 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const
Set filter decision:

◆ sysExecute()

StatusCode AthCommonAlgorithm< 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.

Reimplemented in AthAnalysisAlgorithm.

Definition at line 80 of file AthCommonAlgorithm.cxx.

41{
42 return BaseAlg::sysExecute (ctx);
43}

◆ sysInitialize()

StatusCode AthCommonAlgorithm< 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 AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, HypoBase, InputMakerBase, and PyAthena::Alg.

Definition at line 60 of file AthCommonAlgorithm.cxx.

71 {
73
74 if (sc.isFailure()) {
75 return sc;
76 }
77
78 ServiceHandle<ICondSvc> cs("CondSvc",name());
79 for (auto h : outputHandles()) {
80 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
81 // do this inside the loop so we don't create the CondSvc until needed
82 if ( cs.retrieve().isFailure() ) {
83 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
85 }
86 if (cs->regHandle(this,*h).isFailure()) {
88 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
89 << " with CondSvc");
90 }
91 }
92 }
93 return sc;
94}
virtual StatusCode sysInitialize() override
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 65 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 76 of file TrackTimeExtensionAlg.h.

76{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 81 of file TrackTimeExtensionAlg.h.

81{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 83 of file TrackTimeExtensionAlg.h.

83{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 AthCommonAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

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

Empty if no symlinks were found.

Definition at line 108 of file AthCommonAlgorithm.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 74 of file TrackTimeExtensionAlg.h.

74{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 95 of file TrackTimeExtensionAlg.h.

95{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 96 of file TrackTimeExtensionAlg.h.

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

◆ m_holesHGTDKey

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> HGTD::TrackTimeExtensionAlg::m_holesHGTDKey {this, "HGTD_holes", m_trk_ptkl_rh_key, "HGTD_holes", "deco with the holes on track in HGTD"}
private

Definition at line 97 of file TrackTimeExtensionAlg.h.

97{this, "HGTD_holes", m_trk_ptkl_rh_key, "HGTD_holes", "deco with the holes on track in HGTD"};

◆ 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 93 of file TrackTimeExtensionAlg.h.

93{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 89 of file TrackTimeExtensionAlg.h.

89{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 92 of file TrackTimeExtensionAlg.h.

92{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 90 of file TrackTimeExtensionAlg.h.

90{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 91 of file TrackTimeExtensionAlg.h.

91{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 88 of file TrackTimeExtensionAlg.h.

88{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 87 of file TrackTimeExtensionAlg.h.

87{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 94 of file TrackTimeExtensionAlg.h.

94{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 78 of file TrackTimeExtensionAlg.h.

78{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 77 of file TrackTimeExtensionAlg.h.

77{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 79 of file TrackTimeExtensionAlg.h.

79{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 85 of file TrackTimeExtensionAlg.h.

85{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: