ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::ActsToTrkConvertorAlg Class Reference

#include <ActsToTrkConvertorAlg.h>

Inheritance diagram for ActsTrk::ActsToTrkConvertorAlg:
Collaboration diagram for ActsTrk::ActsToTrkConvertorAlg:

Public Member Functions

virtual ~ActsToTrkConvertorAlg ()=default
virtual StatusCode initialize () override
virtual StatusCode execute (const EventContext &ctx) const override
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 makeTracks (const EventContext &ctx, const Acts::GeometryContext &tgContext, const ActsTrk::TrackContainer &tracks, ::TrackCollection &tracksContainer) const
std::unique_ptr< Trk::MeasurementBasemakeRIO_OnTrack (const xAOD::UncalibratedMeasurement &uncalibMeas, const Trk::TrackParameters &parm) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

PublicToolHandle< ActsTrk::ITrackingGeometryToolm_trackingGeometryTool {this, "TrackingGeometryTool", "ActsTrackingGeometryTool"}
ToolHandle< ActsTrk::IActsToTrkConverterToolm_ATLASConverterTool {this, "ATLASConverterTool", "ActsToTrkConverterTool"}
ToolHandle< Trk::IBoundaryCheckToolm_boundaryCheckTool {this, "BoundaryCheckTool", "InDet::InDetBoundaryCheckTool", "Boundary checking tool for detector sensitivities"}
ToolHandle< Trk::IRIO_OnTrackCreatorm_RotCreatorTool {this, "RotCreatorTool", "", "optional RIO_OnTrack creator tool"}
ToolHandle< Trk::IExtendedTrackSummaryToolm_trkSummaryTool {this, "SummaryTool", "ToolHandle for track summary tool"}
SG::ReadHandleKey< ActsTrk::TrackContainerm_tracksContainerKey
SG::WriteHandleKey<::TrackCollectionm_tracksKey
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

Detailed Description

Definition at line 24 of file ActsToTrkConvertorAlg.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

◆ ~ActsToTrkConvertorAlg()

virtual ActsTrk::ActsToTrkConvertorAlg::~ActsToTrkConvertorAlg ( )
virtualdefault

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>

◆ 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 ActsTrk::ActsToTrkConvertorAlg::execute ( const EventContext & ctx) const
overridevirtual

Definition at line 54 of file ActsToTrkConvertorAlg.cxx.

55 {
56 ATH_MSG_DEBUG("Executing " << name() << " ...");
57
58 // I/O
59 ATH_MSG_DEBUG("Retrieving input track collection '" << m_tracksContainerKey.key() << "' ...");
60 SG::ReadHandle<ActsTrk::TrackContainer> inputTracksHandle = SG::makeHandle(m_tracksContainerKey, ctx);
61 ATH_CHECK(inputTracksHandle.isValid());
62 const ActsTrk::TrackContainer *inputTracks = inputTracksHandle.cptr();
63
64 std::unique_ptr<::TrackCollection> trackCollection = std::make_unique<::TrackCollection>();
65
66 Acts::GeometryContext tgContext = m_trackingGeometryTool->getGeometryContext(ctx).context();
67 ATH_CHECK(makeTracks(ctx, tgContext, *inputTracks, *trackCollection));
68
69 SG::WriteHandle<::TrackCollection> outputTrackHandle = SG::makeHandle(m_tracksKey, ctx);
70 ATH_MSG_DEBUG("Output Tracks Collection `" << m_tracksKey.key() << "` created ...");
71 ATH_CHECK(outputTrackHandle.record(std::move(trackCollection)));
72
73 return StatusCode::SUCCESS;
74 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
StatusCode makeTracks(const EventContext &ctx, const Acts::GeometryContext &tgContext, const ActsTrk::TrackContainer &tracks, ::TrackCollection &tracksContainer) const
SG::ReadHandleKey< ActsTrk::TrackContainer > m_tracksContainerKey
SG::WriteHandleKey<::TrackCollection > m_tracksKey
PublicToolHandle< ActsTrk::ITrackingGeometryTool > m_trackingGeometryTool
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const_pointer_type cptr()
Dereference the pointer.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())

◆ 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 ActsTrk::ActsToTrkConvertorAlg::initialize ( )
overridevirtual

Definition at line 34 of file ActsToTrkConvertorAlg.cxx.

35 {
36 ATH_MSG_DEBUG("Initializing " << name() << " ...");
37
38 ATH_CHECK(m_tracksContainerKey.initialize());
39 ATH_CHECK(m_tracksKey.initialize());
40
43 ATH_CHECK(m_trkSummaryTool.retrieve());
44
45 if (not m_RotCreatorTool.empty())
46 {
47 ATH_MSG_DEBUG("RotCreatorTool will be used");
48 ATH_CHECK(m_RotCreatorTool.retrieve());
49 }
50
51 return StatusCode::SUCCESS;
52 }
ToolHandle< ActsTrk::IActsToTrkConverterTool > m_ATLASConverterTool
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trkSummaryTool
ToolHandle< Trk::IRIO_OnTrackCreator > m_RotCreatorTool

◆ 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()

◆ makeRIO_OnTrack()

std::unique_ptr< Trk::MeasurementBase > ActsTrk::ActsToTrkConvertorAlg::makeRIO_OnTrack ( const xAOD::UncalibratedMeasurement & uncalibMeas,
const Trk::TrackParameters & parm ) const
private

Definition at line 226 of file ActsToTrkConvertorAlg.cxx.

228 {
229 const Trk::PrepRawData *rio = nullptr;
230 const xAOD::UncalibMeasType measurementType = uncalibMeas.type();
231
232 if (measurementType == xAOD::UncalibMeasType::PixelClusterType)
233 {
234 static const SG::AuxElement::ConstAccessor<ElementLink<InDet::PixelClusterCollection>> pixelLinkAcc("pixelClusterLink");
235 auto pixcl = dynamic_cast<const xAOD::PixelCluster *>(&uncalibMeas);
236 if (not pixcl or not pixelLinkAcc.isAvailable(*pixcl))
237 {
238 ATH_MSG_DEBUG("no pixelClusterLink for cluster associated to measurement");
239 return nullptr;
240 }
241
242 auto pix = *pixelLinkAcc(*pixcl);
243 if (m_RotCreatorTool.empty())
244 {
245 const InDetDD::SiDetectorElement *element = pix->detectorElement();
246 if (!element)
247 {
248 ATH_MSG_WARNING("Cannot access pixel detector element");
249 return nullptr;
250 }
251 ATH_MSG_DEBUG("create InDet::PixelClusterOnTrack without correction");
252 return std::make_unique<InDet::PixelClusterOnTrack>(pix,
253 Trk::LocalParameters(pix->localPosition()),
254 Amg::MatrixX(pix->localCovariance()),
255 element->identifyHash(),
256 pix->globalPosition(),
257 pix->gangedPixel(),
258 false);
259 }
260 rio = pix;
261 }
262 else if (measurementType == xAOD::UncalibMeasType::StripClusterType)
263 {
264 static const SG::AuxElement::ConstAccessor<ElementLink<InDet::SCT_ClusterCollection>> stripLinkAcc("sctClusterLink");
265 auto stripcl = dynamic_cast<const xAOD::StripCluster *>(&uncalibMeas);
266 if (not stripcl or not stripLinkAcc.isAvailable(*stripcl))
267 {
268 ATH_MSG_WARNING("no sctClusterLink for clusters associated to measurement");
269 return nullptr;
270 }
271
272 auto sct = *stripLinkAcc(*stripcl);
273 if (m_RotCreatorTool.empty())
274 {
275 const InDetDD::SiDetectorElement *element = sct->detectorElement();
276 if (!element)
277 {
278 ATH_MSG_WARNING("Cannot access strip detector element");
279 return nullptr;
280 }
281 ATH_MSG_DEBUG("create InDet::SCT_ClusterOnTrack without correction");
282 return std::make_unique<InDet::SCT_ClusterOnTrack>(sct,
283 Trk::LocalParameters(sct->localPosition()),
284 Amg::MatrixX(sct->localCovariance()),
285 element->identifyHash(),
286 sct->globalPosition(),
287 false);
288 }
289 rio = sct;
290 }
291 else
292 {
293 ATH_MSG_WARNING("xAOD::UncalibratedMeasurement is neither xAOD::PixelCluster nor xAOD::StripCluster");
294 return nullptr;
295 }
296
297 ATH_MSG_DEBUG("use Trk::RIO_OnTrackCreator::correct to create corrected Trk::RIO_OnTrack");
298 assert(!m_RotCreatorTool.empty());
299 assert(rio != nullptr);
300 return std::unique_ptr<Trk::MeasurementBase>(m_RotCreatorTool->correct(*rio, parm, Gaudi::Hive::currentContext()));
301 }
#define ATH_MSG_WARNING(x)
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
SG::ConstAccessor< T, ALLOC > ConstAccessor
Definition AuxElement.h:569
virtual xAOD::UncalibMeasType type() const =0
Returns the type of the measurement type as a simple enumeration.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
StripCluster_v1 StripCluster
Define the version of the strip cluster class.
PixelCluster_v1 PixelCluster
Define the version of the pixel cluster class.
UncalibMeasType
Define the type of the uncalibrated measurement.

◆ makeTracks()

StatusCode ActsTrk::ActsToTrkConvertorAlg::makeTracks ( const EventContext & ctx,
const Acts::GeometryContext & tgContext,
const ActsTrk::TrackContainer & tracks,
::TrackCollection & tracksContainer ) const
private

Definition at line 76 of file ActsToTrkConvertorAlg.cxx.

80 {
81
82 for (const typename ActsTrk::TrackContainer::ConstTrackProxy track : tracks)
83 {
84 const auto lastMeasurementIndex = track.tipIndex();
85 auto finalTrajectory = std::make_unique<Trk::TrackStates>();
86 // initialise the number of dead Pixel and Acts strip
87 int numberOfDeadPixel = 0;
88 int numberOfDeadSCT = 0;
89
90 Acts::ParticleHypothesis hypothesis = track.particleHypothesis();
91
92 std::vector<std::unique_ptr<const Acts::BoundTrackParameters>> actsSmoothedParam;
93 tracks.trackStateContainer().visitBackwards(
94 lastMeasurementIndex,
95 [this, &tgContext, &track, &finalTrajectory, &actsSmoothedParam, &numberOfDeadPixel, &numberOfDeadSCT](const typename ActsTrk::TrackStateBackend::ConstTrackStateProxy &state) -> void
96 {
97 // First only consider states with an associated detector element
98 if (!state.hasReferenceSurface() || !state.referenceSurface().associatedDetectorElement())
99 {
100 return;
101 }
102
103 auto flag = state.typeFlags();
104 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
105 std::unique_ptr<Trk::TrackParameters> parm;
106
107 // State is a hole (no associated measurement), use predicted parameters
108 if (flag.test(Acts::TrackStateFlag::HoleFlag))
109 {
110 const Acts::BoundTrackParameters actsParam = track.createParametersFromState(state);
111 parm = m_ATLASConverterTool->actsTrackParametersToTrkParameters(actsParam, tgContext);
112 auto boundaryCheck = m_boundaryCheckTool->boundaryCheck(*parm);
113
114 // Check if this is a hole, a dead sensors or a state outside the sensor boundary
115 if (boundaryCheck == Trk::BoundaryCheckResult::DeadElement)
116 {
117 auto *detElem = actsToDetElem(state.referenceSurface());
118 if (!detElem)
119 {
120 return;
121 }
122 if (detElem->isPixel())
123 {
124 ++numberOfDeadPixel;
125 }
126 else if (detElem->isSCT())
127 {
128 ++numberOfDeadSCT;
129 }
130 // Dead sensors states are not stored
131 return;
132 }
133 else if (boundaryCheck != Trk::BoundaryCheckResult::Candidate)
134 {
135 return;
136 }
137 typePattern.set(Trk::TrackStateOnSurface::Hole);
138 }
139 // The state was tagged as an outlier or (TODO!) was missed in the reverse filtering, use filtered parameters
140 else if (flag.test(Acts::TrackStateFlag::OutlierFlag))
141 {
142 const Acts::BoundTrackParameters actsParam = track.createParametersFromState(state);
143 parm = m_ATLASConverterTool->actsTrackParametersToTrkParameters(actsParam, tgContext);
144 typePattern.set(Trk::TrackStateOnSurface::Outlier);
145 }
146 // The state is a measurement state, use smoothed parameters
147 else
148 {
149 const Acts::BoundTrackParameters actsParam = track.createParametersFromState(state);
150
151 // is it really necessary to keep our own copy of all the smoothed parameters?
152 actsSmoothedParam.push_back(std::make_unique<const Acts::BoundTrackParameters>(Acts::BoundTrackParameters(actsParam)));
153 parm = m_ATLASConverterTool->actsTrackParametersToTrkParameters(actsParam, tgContext);
155 }
156
157 std::unique_ptr<Trk::MeasurementBase> measState;
158 if (state.hasUncalibratedSourceLink())
159 {
160 try {
161 auto sl = state.getUncalibratedSourceLink().template get<ATLASUncalibSourceLink>();
162 assert( sl != nullptr);
164 measState = makeRIO_OnTrack(uncalibMeas, *parm);
165 ATH_MSG_DEBUG("Successfully used ATLASUncalibratedSourceLink");
166 } catch ( const std::bad_any_cast& ){
167 ATH_MSG_DEBUG("Not an ATLASUncalibSourceLink, trying ATLASSourceLink");
168 auto sl = state.getUncalibratedSourceLink().template get<ATLASSourceLink>();
169 assert( sl != nullptr );
170 measState.reset(sl->clone());
171 ATH_MSG_DEBUG("Successfully used ATLASSourceLink");
172
173 }
174 }
175
176 double nDoF = state.calibratedSize();
177 auto quality = Trk::FitQualityOnSurface(state.chi2(), nDoF);
178 auto perState = new Trk::TrackStateOnSurface(quality,
179 std::move(measState),
180 std::move(parm),
181 nullptr,
182 typePattern);
183
184 // If a state was succesfully created add it to the trajectory
185 finalTrajectory->insert(finalTrajectory->begin(), perState);
186 });
187
188 // Convert the perigee state and add it to the trajectory
189 const Acts::BoundTrackParameters actsPer(track.referenceSurface().getSharedPtr(),
190 track.parameters(),
191 track.covariance(),
192 hypothesis);
193
194 std::unique_ptr<Trk::TrackParameters> per = m_ATLASConverterTool->actsTrackParametersToTrkParameters(actsPer, tgContext);
195 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
196 typePattern.set(Trk::TrackStateOnSurface::Perigee);
197 auto perState = new Trk::TrackStateOnSurface(nullptr,
198 std::move(per),
199 nullptr,
200 typePattern);
201 finalTrajectory->insert(finalTrajectory->begin(), perState);
202
203 // Create the track using Athena TrackFitter::KalmanFitter and TrackPatternRecoInfo::SiSPSeededFinder algorithm enums
205 newInfo.setPatternRecognitionInfo(Trk::TrackInfo::TrackPatternRecoInfo::SiSPSeededFinder);
206
207 auto newtrack = std::make_unique<Trk::Track>(newInfo, std::move(finalTrajectory), nullptr);
208 // TODO: use TrackSummaryTool to create trackSummary?
209 if (!newtrack->trackSummary())
210 {
211 newtrack->setTrackSummary(std::make_unique<Trk::TrackSummary>());
212 newtrack->trackSummary()->update(Trk::numberOfPixelHoles, 0);
213 newtrack->trackSummary()->update(Trk::numberOfSCTHoles, 0);
214 newtrack->trackSummary()->update(Trk::numberOfTRTHoles, 0);
215 newtrack->trackSummary()->update(Trk::numberOfPixelDeadSensors, numberOfDeadPixel);
216 newtrack->trackSummary()->update(Trk::numberOfSCTDeadSensors, numberOfDeadSCT);
217 }
218
219 m_trkSummaryTool->updateTrackSummary(ctx, *newtrack, true);
220 tracksContainer.push_back(std::move(newtrack));
221 }
222
223 return StatusCode::SUCCESS;
224 }
ToolHandle< Trk::IBoundaryCheckTool > m_boundaryCheckTool
std::unique_ptr< Trk::MeasurementBase > makeRIO_OnTrack(const xAOD::UncalibratedMeasurement &uncalibMeas, const Trk::TrackParameters &parm) const
value_type push_back(value_type pElem)
Add an element to the end of the collection.
@ KalmanFitter
tracks produced by the Kalman Fitter
@ SiSPSeededFinder
Tracks from SiSPSeedFinder.
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
@ Hole
A hole on the track - this is defined in the following way.
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition hcg.cxx:130
const xAOD::UncalibratedMeasurement & getUncalibratedMeasurement(const ATLASUncalibSourceLink &source_link)
@ DeadElement
outside the element
@ numberOfTRTHoles
number of TRT hits which pass the high threshold (only xenon counted) total number of TRT hits which ...
@ numberOfSCTHoles
number of Holes in both sides of a SCT module
@ numberOfPixelHoles
number of pixels which have a ganged ambiguity.
@ numberOfPixelDeadSensors
number of pixel hits with broad errors (width/sqrt(12))
bool flag
Definition master.py:29
UncalibratedMeasurement_v1 UncalibratedMeasurement
Define the version of the uncalibrated measurement class.

◆ 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}
#define ATH_MSG_ERROR(x)
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 }

Member Data Documentation

◆ m_ATLASConverterTool

ToolHandle<ActsTrk::IActsToTrkConverterTool> ActsTrk::ActsToTrkConvertorAlg::m_ATLASConverterTool {this, "ATLASConverterTool", "ActsToTrkConverterTool"}
private

Definition at line 45 of file ActsToTrkConvertorAlg.h.

45{this, "ATLASConverterTool", "ActsToTrkConverterTool"};

◆ m_boundaryCheckTool

ToolHandle<Trk::IBoundaryCheckTool> ActsTrk::ActsToTrkConvertorAlg::m_boundaryCheckTool {this, "BoundaryCheckTool", "InDet::InDetBoundaryCheckTool", "Boundary checking tool for detector sensitivities"}
private

Definition at line 46 of file ActsToTrkConvertorAlg.h.

46{this, "BoundaryCheckTool", "InDet::InDetBoundaryCheckTool", "Boundary checking tool for detector sensitivities"};

◆ 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_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_RotCreatorTool

ToolHandle<Trk::IRIO_OnTrackCreator> ActsTrk::ActsToTrkConvertorAlg::m_RotCreatorTool {this, "RotCreatorTool", "", "optional RIO_OnTrack creator tool"}
private

Definition at line 47 of file ActsToTrkConvertorAlg.h.

47{this, "RotCreatorTool", "", "optional RIO_OnTrack creator tool"};

◆ m_trackingGeometryTool

PublicToolHandle<ActsTrk::ITrackingGeometryTool> ActsTrk::ActsToTrkConvertorAlg::m_trackingGeometryTool {this, "TrackingGeometryTool", "ActsTrackingGeometryTool"}
private

Definition at line 44 of file ActsToTrkConvertorAlg.h.

44{this, "TrackingGeometryTool", "ActsTrackingGeometryTool"};

◆ m_tracksContainerKey

SG::ReadHandleKey<ActsTrk::TrackContainer> ActsTrk::ActsToTrkConvertorAlg::m_tracksContainerKey
private
Initial value:
{this, "ACTSTracksLocation", "SiSPSeededActsTrackContainer",
"Output track collection (ActsTrk variant)"}

Definition at line 50 of file ActsToTrkConvertorAlg.h.

50 {this, "ACTSTracksLocation", "SiSPSeededActsTrackContainer",
51 "Output track collection (ActsTrk variant)"};

◆ m_tracksKey

SG::WriteHandleKey<::TrackCollection> ActsTrk::ActsToTrkConvertorAlg::m_tracksKey
private
Initial value:
{this, "TracksLocation", "SiSPSeededActsTracks",
"Output track collection"}

Definition at line 52 of file ActsToTrkConvertorAlg.h.

52 {this, "TracksLocation", "SiSPSeededActsTracks",
53 "Output track collection"};

◆ m_trkSummaryTool

ToolHandle<Trk::IExtendedTrackSummaryTool> ActsTrk::ActsToTrkConvertorAlg::m_trkSummaryTool {this, "SummaryTool", "ToolHandle for track summary tool"}
private

Definition at line 48 of file ActsToTrkConvertorAlg.h.

48{this, "SummaryTool", "ToolHandle for track summary tool"};

◆ 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: