ATLAS Offline Software
Loading...
Searching...
No Matches
InDetPhysHitDecoratorAlg Class Reference

#include <InDetPhysHitDecoratorAlg.h>

Inheritance diagram for InDetPhysHitDecoratorAlg:
Collaboration diagram for InDetPhysHitDecoratorAlg:

Public Types

enum  Subdetector {
  INVALID_DETECTOR =-1 , L0PIXBARR , PIXEL , SCT ,
  TRT , N_SUBDETECTORS
}
enum  Region { INVALID_REGION =-1 , BARREL , ENDCAP }

Public Member Functions

 InDetPhysHitDecoratorAlg (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~InDetPhysHitDecoratorAlg ()
virtual StatusCode initialize () override
virtual StatusCode finalize () 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

enum  EIntDecorations {
  kDecorRegion , kDecorDet , kDecorILayer , kDecorType ,
  kDecorPhiWidth , kDecorEtaWidth , kNIntDecorators
}
enum  EUInt64Decorations { kDecorID , kNUInt64Decorators }
enum  EDecorations {
  kDecorResidualLocX , kDecorPullLocX , kDecorMeasLocX , kDecorTrkParamLocX ,
  kDecorMeasLocCovX , kDecorResidualLocY , kDecorPullLocY , kDecorMeasLocY ,
  kDecorTrkParamLocY , kDecorMeasLocCovY , kDecorAngle , kDecorEtaLoc ,
  kNFloatDecorators
}
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

bool decorateTrack (const xAOD::TrackParticle &particle, std::vector< SG::WriteDecorHandle< xAOD::TrackParticleContainer, std::vector< float > > > &float_decor, std::vector< SG::WriteDecorHandle< xAOD::TrackParticleContainer, std::vector< int > > > &int_decor, std::vector< SG::WriteDecorHandle< xAOD::TrackParticleContainer, std::vector< uint64_t > > > &uint64_decor) const
bool decideDetectorRegion (const Identifier &id, Subdetector &det, Region &r, int &layer) const
const Trk::TrackParametersgetUnbiasedTrackParameters (const Trk::TrackParameters *trkParameters, const Trk::MeasurementBase *measurement, bool &isUnbiased) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ToolHandle< Trk::ITrackHoleSearchToolm_holeSearchTool {this, "InDetTrackHoleSearchTool", "InDet::InDetTrackHoleSearchTool"}
ToolHandle< Trk::IUpdatorm_updatorHandle
ToolHandle< Trk::IResidualPullCalculatorm_residualPullCalculator
ToolHandle< ISiLorentzAngleToolm_lorentzAngleTool {this, "LorentzAngleTool", "SiLorentzAngleTool", "Tool to retrieve Lorentz angle"}
SG::ReadHandleKey< xAOD::TrackParticleContainerm_trkParticleName {this,"TrackParticleContainerName", "InDetTrackParticles",""}
std::vector< SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > > m_intDecor
std::vector< SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > > m_uint64Decor
std::vector< SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > > m_floatDecor
Gaudi::Property< std::string > m_prefix {this, "Prefix", "", "Decoration prefix to avoid clashes."}
std::atomic< bool > m_alreadyWarned {false}
const AtlasDetectorIDm_idHelper {nullptr}
const PixelIDm_pixelID {nullptr}
const SCT_IDm_sctID {nullptr}
const TRT_IDm_trtID {nullptr}
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 33 of file InDetPhysHitDecoratorAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ EDecorations

Enumerator
kDecorResidualLocX 
kDecorPullLocX 
kDecorMeasLocX 
kDecorTrkParamLocX 
kDecorMeasLocCovX 
kDecorResidualLocY 
kDecorPullLocY 
kDecorMeasLocY 
kDecorTrkParamLocY 
kDecorMeasLocCovY 
kDecorAngle 
kDecorEtaLoc 
kNFloatDecorators 

Definition at line 80 of file InDetPhysHitDecoratorAlg.h.

80 {
94 };

◆ EIntDecorations

◆ EUInt64Decorations

Enumerator
kDecorID 
kNUInt64Decorators 

Definition at line 76 of file InDetPhysHitDecoratorAlg.h.

◆ Region

◆ Subdetector

Constructor & Destructor Documentation

◆ InDetPhysHitDecoratorAlg()

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

Definition at line 27 of file InDetPhysHitDecoratorAlg.cxx.

27 :
28 AthReentrantAlgorithm(name,pSvcLocator) {}

◆ ~InDetPhysHitDecoratorAlg()

InDetPhysHitDecoratorAlg::~InDetPhysHitDecoratorAlg ( )
virtual

Definition at line 30 of file InDetPhysHitDecoratorAlg.cxx.

30 {
31}

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}

◆ decideDetectorRegion()

bool InDetPhysHitDecoratorAlg::decideDetectorRegion ( const Identifier & id,
Subdetector & det,
Region & r,
int & layer ) const
private

Definition at line 444 of file InDetPhysHitDecoratorAlg.cxx.

445 {
446 bool success(false);
447 const int pixelSctBarrelIndex(0);
448 const int trtBarrelIndex(1);
449
451 region = INVALID_REGION;
452
453 if (m_idHelper->is_pixel(id)) {
454 detector = PIXEL;
455 region = (m_pixelID->barrel_ec(id) == pixelSctBarrelIndex) ? (BARREL) : (ENDCAP);
456 layer = m_pixelID->layer_disk(id);
457 if (BARREL == region and layer == 0) {
459 }
460 }
461 else if (m_idHelper->is_sct(id)) {
462 detector = SCT;
463 region = (m_sctID->barrel_ec(id) == pixelSctBarrelIndex) ? (BARREL) : (ENDCAP);
464 layer = m_sctID->layer_disk(id);
465 }
466 else if (m_idHelper->is_trt(id)) {
467 detector = TRT;
468 region = (std::abs(m_trtID->barrel_ec(id)) == trtBarrelIndex) ? (BARREL) : (ENDCAP);
469 layer = m_trtID->layer_or_wheel(id);
470 }
471 success = (detector != INVALID_DETECTOR) and (region != INVALID_REGION);
472
473 return success;
474}
const AtlasDetectorID * m_idHelper
@ layer
Definition HitInfo.h:79

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

◆ decorateTrack()

bool InDetPhysHitDecoratorAlg::decorateTrack ( const xAOD::TrackParticle & particle,
std::vector< SG::WriteDecorHandle< xAOD::TrackParticleContainer, std::vector< float > > > & float_decor,
std::vector< SG::WriteDecorHandle< xAOD::TrackParticleContainer, std::vector< int > > > & int_decor,
std::vector< SG::WriteDecorHandle< xAOD::TrackParticleContainer, std::vector< uint64_t > > > & uint64_decor ) const
private

Definition at line 125 of file InDetPhysHitDecoratorAlg.cxx.

129{
130 int trackNumber(0);
131
132 using SingleResult_t = std::tuple<int, int, int, // detector, region, layer index,
133 float, float, // residual local position X, pull local position X
134 float, float, // residual local position Y, pull local position Y
135 int, int, int, // cluster dimensions in phi and eta directions, measurement type
136 float, float, // measurement local position X, measurement local position Y
137 float, float,// track parameter local X, track parameter local Y
138 float, float, // track angle in local module frame and associated eta
139 float, float, uint64_t>; // measurement covariance local X, measurement covariance local Y, surface identifier
140 using TrackResult_t = std::vector<SingleResult_t>;
141 constexpr float invalidFloat(-1.);
142 constexpr int invalidInteger(-1);
143 constexpr uint64_t invalidID(0);
144 const SingleResult_t invalidResult = std::make_tuple(invalidInteger, invalidInteger, invalidInteger,
145 invalidFloat, invalidFloat, invalidFloat, invalidFloat,
146 invalidInteger, invalidInteger, invalidInteger,
147 invalidFloat, invalidFloat, invalidFloat, invalidFloat,
148 invalidFloat, invalidFloat, invalidFloat, invalidFloat,
149 invalidID);
150 bool isUnbiased(true);
151 // get element link to the original track
152 const ElementLink< TrackCollection >& trackLink = particle.trackLink();
153 if (trackLink.isValid()) {
154 ATH_MSG_VERBOSE("Track link found ");
155 std::unique_ptr<const Trk::Track> trackWithHoles(m_holeSearchTool->getTrackWithHoles(**trackLink));
156 const auto& allTrackStates = *(trackWithHoles->trackStateOnSurfaces());
157 const int numberOfHits(allTrackStates.size());
158 unsigned int trackParametersCounter(numberOfHits);
159 TrackResult_t result;
160 result.reserve(numberOfHits);
161 if (!m_updatorHandle.empty()) {
162 isUnbiased = true;
163 } else {
164 ATH_MSG_WARNING("The updater handle is empty, now using biased estimators");
165 isUnbiased = false;
166 }
167 ATH_MSG_DEBUG("Num. track states in track " << ++trackNumber << ": " << allTrackStates.size());
168
169 for (const auto *const thisTrackState: allTrackStates) {
170 // Copy logic from InDetRttPerformance to get hits/outliers/holes
171 // Variable specifying measurement type filled
172 SingleResult_t thisResult(invalidResult);
173 if (not thisTrackState) { // is this check needed?
174 msg(MSG::ERROR) << "TSOS is NULL" << (thisTrackState) << endmsg;
175 continue;
176 }
177 Identifier surfaceID;
178 const Trk::MeasurementBase* mesb = (thisTrackState)->measurementOnTrack();
179 const Trk::RIO_OnTrack* hit = mesb ? dynamic_cast<const Trk::RIO_OnTrack*>(mesb) : nullptr;
180 if (mesb && !hit) {
181 continue; // skip pseudomeasurements
182 }
183 // Get surfaceID, different for measuremnt hits & outliers, and holes
184 if (mesb && mesb->associatedSurface().associatedDetectorElement()) {
186 } // Holes
187 else {
188 if (not (thisTrackState)->trackParameters()) {
189 msg(MSG::INFO) << "TSOS surface is NULL" << endmsg;
190 continue;
191 }
192 surfaceID = (thisTrackState)->trackParameters()->associatedSurface().associatedDetectorElementIdentifier();
193 }
194 bool isMesb = (thisTrackState)->type(Trk::TrackStateOnSurface::Measurement);
195 bool isOutl = (thisTrackState)->type(Trk::TrackStateOnSurface::Outlier);
196 bool isHole = (thisTrackState)->type(Trk::TrackStateOnSurface::Hole);
197
198 int measureType = -1;
199 if (isMesb) {
200 measureType = 0;
201 }
202 if (isOutl) {
203 measureType = 1;
204 }
205 if (isHole) {
206 measureType = 2;
207 }
208
209 bool anyHit = isMesb || isOutl || isHole;
210 if (!anyHit) {
211 continue;
212 }
215 int iLayer(invalidInteger);
216 const bool successfulIdentification = decideDetectorRegion(surfaceID, det, r, iLayer);
217 if (not successfulIdentification) {
218 ATH_MSG_DEBUG("Could not identify surface");
219 continue;
220 }
221 uint64_t Surface_ID = surfaceID.get_compact();
222 // defining invalid values, they will be filled when and where needed
223 float residualLocX(invalidFloat), pullLocX(invalidFloat);
224 float residualLocY(invalidFloat), pullLocY(invalidFloat);
225 float measurementLocX(invalidFloat), trackParamLocX(invalidFloat), measurementLocCovX(invalidFloat);
226 float measurementLocY(invalidFloat), trackParamLocY(invalidFloat), measurementLocCovY(invalidFloat);
227 float angle(0.), etaloc(0.);
228 int phiWidth(invalidInteger), etaWidth(invalidInteger);
229 std::optional<Trk::ResidualPull> residualPull(std::nullopt);
230 const Trk::TrackParameters* biasedTrackParameters = thisTrackState->trackParameters();
231 if (biasedTrackParameters) {
232 ATH_MSG_VERBOSE("biased track parameters ok");
233 }
234 ATH_MSG_VERBOSE("checking mesb and track parameters");
235 if (mesb && biasedTrackParameters) {
236 ATH_MSG_DEBUG("mesb and biased track parameters are ok");
237 // for outliers, the measurement is not part of the fit, so track parameters are already unbiased
238 std::unique_ptr<const Trk::TrackParameters> cleanup_trackparam;
239 const Trk::TrackParameters* trackParameters =
241 biasedTrackParameters, mesb, isUnbiased) : biasedTrackParameters;
242
243 if (trackParameters != biasedTrackParameters) {
244 cleanup_trackparam.reset(trackParameters);
245 }
246 if (not trackParameters) {
247 ATH_MSG_DEBUG("unbiased track parameters pointer is NULL");
248 }
249
252
253 residualPull= m_residualPullCalculator->residualPull(hit, trackParameters, resType);
254 ATH_MSG_VERBOSE("checking residual pull");
255 if (not residualPull) {
256 ATH_MSG_DEBUG("residualPull is NULL");
257 continue;
258 }
259
260 ATH_MSG_DEBUG("residualPull is OK");
261
262 residualLocX = 1000. * residualPull->residual()[Trk::loc1]; // residuals in microns
263 pullLocX = residualPull->pull()[Trk::loc1];
264 measurementLocX = hit->localParameters()[Trk::loc1];
265 trackParamLocX = trackParameters->parameters()[Trk::loc1];
266 measurementLocCovX = hit->localCovariance()(Trk::loc1,Trk::loc1);
267
268 if (residualPull->dimension() > 1) {
269 residualLocY = 1000. * residualPull->residual()[Trk::loc2];
270 pullLocY = residualPull->pull()[Trk::loc2];
271 measurementLocY = hit->localParameters()[Trk::loc2];
272 trackParamLocY = trackParameters->parameters()[Trk::loc2];
273 measurementLocCovY = hit->localCovariance()(Trk::loc2,Trk::loc2);
274 }
275
276 // Unbiased residuals
277 measureType = 4;
278
279 if (hit && isUnbiased) {
280 // Cluster width determination
281 if ((det == L0PIXBARR)or(det == PIXEL) or(det == SCT)) {
282 assert(dynamic_cast <const InDet::SiCluster*>(hit->prepRawData())!=nullptr);
283 const InDet::SiCluster* pCluster = static_cast <const InDet::SiCluster*>(hit->prepRawData());
284 InDet::SiWidth width = pCluster->width();
285 phiWidth = int(width.colRow().x());
286 etaWidth = int(width.colRow().y());
287
288 // get candidate track angle in module local frame
289 Amg::Vector3D my_track = trackParameters->momentum();
290 const InDetDD::SiDetectorElement* element = pCluster->detectorElement();
291 Amg::Vector3D my_normal = element->normal();
292 Amg::Vector3D my_phiax = element->phiAxis();
293 Amg::Vector3D my_etaax = element->etaAxis();
294 double trkphicomp = my_track.dot(my_phiax);
295 double trketacomp = my_track.dot(my_etaax);
296 double trknormcomp = my_track.dot(my_normal);
297 double bowphi = std::atan2(trkphicomp,trknormcomp);
298 double boweta = std::atan2(trketacomp,trknormcomp);
299
300 double tanl = m_lorentzAngleTool->getTanLorentzAngle(element->identifyHash(), Gaudi::Hive::currentContext());
301 int readoutside = element->design().readoutSide();
302
303 // map the angles of inward-going tracks onto [-PI/2, PI/2]
304 if(bowphi > M_PI/2) bowphi -= M_PI;
305 if(bowphi < -M_PI/2) bowphi += M_PI;
306
307 // finally, subtract the Lorentz angle effect
308 // the readoutside term is needed because of a bug in old
309 // geometry versions (CSC-01-* and CSC-02-*)
310 angle = std::atan(std::tan(bowphi)-readoutside*tanl);
311
312 double thetaloc=-999.;
313 if(boweta > -0.5*M_PI && boweta < M_PI/2.) {
314 thetaloc = M_PI/2.-boweta;
315 } else if(boweta > M_PI/2. && boweta < M_PI) {
316 thetaloc = 1.5*M_PI-boweta;
317 } else { // 3rd quadrant
318 thetaloc = -0.5*M_PI-boweta;
319 }
320 etaloc = -1*log(tan(thetaloc/2.));
321 }
322 ATH_MSG_VERBOSE("hit and isUnbiased ok");
323 }
324 } else {
325 if (not mesb) {
326 ATH_MSG_VERBOSE("mesb not ok");
327 }
328 if (not biasedTrackParameters) {
329 ATH_MSG_VERBOSE("biasedTrackParameters were not found");
330 }
331 --trackParametersCounter;
332 }
333 thisResult = std::make_tuple(det, r, iLayer,
334 residualLocX, pullLocX, residualLocY, pullLocY,
335 phiWidth, etaWidth, measureType,
336 measurementLocX, measurementLocY,
337 trackParamLocX, trackParamLocY,
338 angle, etaloc,
339 measurementLocCovX, measurementLocCovY,
340 Surface_ID);
341 result.push_back(thisResult);
342 } // end of for loop*/
343 ATH_MSG_DEBUG( "Out of " << numberOfHits << " hits, " << trackParametersCounter
344 << " had track params, and " << result.size() << " had residuals.");
345 if (not result.empty()) {
346 const unsigned int arraySize = result.size();
347 std::vector<int> result_det;
348 result_det.reserve(arraySize);
349 std::vector<int> result_r;
350 result_r.reserve(arraySize);
351 std::vector<int> result_iLayer;
352 result_iLayer.reserve(arraySize);
353 std::vector<float> result_residualLocX;
354 result_residualLocX.reserve(arraySize);
355 std::vector<float> result_pullLocX;
356 result_pullLocX.reserve(arraySize);
357 std::vector<float> result_residualLocY;
358 result_residualLocY.reserve(arraySize);
359 std::vector<float> result_pullLocY;
360 result_pullLocY.reserve(arraySize);
361 std::vector<int> result_phiWidth;
362 result_phiWidth.reserve(arraySize);
363 std::vector<int> result_etaWidth;
364 result_etaWidth.reserve(arraySize);
365 std::vector<int> result_measureType;
366 result_measureType.reserve(arraySize);
367 std::vector<float> result_measurementLocX;
368 result_measurementLocX.reserve(arraySize);
369 std::vector<float> result_measurementLocY;
370 result_measurementLocY.reserve(arraySize);
371 std::vector<float> result_trackParamLocX;
372 result_trackParamLocX.reserve(arraySize);
373 std::vector<float> result_trackParamLocY;
374 result_trackParamLocY.reserve(arraySize);
375 std::vector<float> result_angle;
376 result_angle.reserve(arraySize);
377 std::vector<float> result_etaloc;
378 result_etaloc.reserve(arraySize);
379 std::vector<float> result_measurementLocCovX;
380 result_measurementLocCovX.reserve(arraySize);
381 std::vector<float> result_measurementLocCovY;
382 result_measurementLocCovY.reserve(arraySize);
383 std::vector<uint64_t> result_surfaceID;
384 result_surfaceID.reserve(arraySize);
385
386 for (const SingleResult_t& single_result : result) {
387 result_det.push_back(std::get<0>(single_result));
388 result_r.push_back(std::get<1>(single_result));
389 result_iLayer.push_back(std::get<2>(single_result));
390 result_residualLocX.push_back(std::get<3>(single_result));
391 result_pullLocX.push_back(std::get<4>(single_result));
392 result_residualLocY.push_back(std::get<5>(single_result));
393 result_pullLocY.push_back(std::get<6>(single_result));
394 result_phiWidth.push_back(std::get<7>(single_result));
395 result_etaWidth.push_back(std::get<8>(single_result));
396 result_measureType.push_back(std::get<9>(single_result));
397 result_measurementLocX.push_back(std::get<10>(single_result));
398 result_measurementLocY.push_back(std::get<11>(single_result));
399 result_trackParamLocX.push_back(std::get<12>(single_result));
400 result_trackParamLocY.push_back(std::get<13>(single_result));
401 result_angle.push_back(std::get<14>(single_result));
402 result_etaloc.push_back(std::get<15>(single_result));
403 result_measurementLocCovX.push_back(std::get<16>(single_result));
404 result_measurementLocCovY.push_back(std::get<17>(single_result));
405 result_surfaceID.push_back(std::get<18>(single_result));
406 }
407
408 int_decor[kDecorRegion](particle) = result_r;
409 int_decor[kDecorDet](particle) = result_det;
410 int_decor[kDecorILayer](particle) = result_iLayer;
411 int_decor[kDecorPhiWidth](particle) = result_phiWidth;
412 int_decor[kDecorEtaWidth](particle) = result_etaWidth;
413 int_decor[kDecorType](particle) = result_measureType;
414
415 float_decor[kDecorResidualLocX](particle) = result_residualLocX;
416 float_decor[kDecorPullLocX](particle) = result_pullLocX;
417 float_decor[kDecorMeasLocX](particle) = result_measurementLocX;
418 float_decor[kDecorTrkParamLocX](particle) = result_trackParamLocX;
419 float_decor[kDecorMeasLocCovX](particle) = result_measurementLocCovX;
420
421 float_decor[kDecorResidualLocY](particle) = result_residualLocY;
422 float_decor[kDecorPullLocY](particle) = result_pullLocY;
423 float_decor[kDecorMeasLocY](particle) = result_measurementLocY;
424 float_decor[kDecorTrkParamLocY](particle) = result_trackParamLocY;
425 float_decor[kDecorMeasLocCovY](particle) = result_measurementLocCovY;
426
427 float_decor[kDecorAngle](particle) = result_angle;
428 float_decor[kDecorEtaLoc](particle) = result_etaloc;
429
430 uint64_decor[kDecorID](particle) = result_surfaceID;
431
432 return true;
433 } else {
434 // particle below pt threshold for decoration. Since this is not an error now "true" is returned.
435 // If "false" is returned the job would be aborted.
436 return true;
437 }
438 } else {
439 ATH_MSG_ERROR("No valid track link found ");
440 }
441 return false;
442}
#define M_PI
#define endmsg
#define ATH_MSG_ERROR(x)
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)
const double width
value_type get_compact() const
Get the compact id.
int readoutSide() const
ReadoutSide.
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
virtual const Amg::Vector3D & normal() const override final
Get reconstruction local normal axes in global frame.
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
bool decideDetectorRegion(const Identifier &id, Subdetector &det, Region &r, int &layer) const
ToolHandle< Trk::ITrackHoleSearchTool > m_holeSearchTool
const Trk::TrackParameters * getUnbiasedTrackParameters(const Trk::TrackParameters *trkParameters, const Trk::MeasurementBase *measurement, bool &isUnbiased) const
ToolHandle< Trk::IResidualPullCalculator > m_residualPullCalculator
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleTool
ToolHandle< Trk::IUpdator > m_updatorHandle
const InDet::SiWidth & width() const
return width class reference
virtual const InDetDD::SiDetectorElement * detectorElement() const override final
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
virtual const Surface & associatedSurface() const =0
Interface method to get the associated Surface.
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
@ Biased
RP with track state including the hit.
@ Unbiased
RP with track state that has measurement not included.
const TrkDetElementBase * associatedDetectorElement() const
return associated Detector Element
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
@ 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.
virtual Identifier identify() const =0
Identifier.
int r
Definition globals.cxx:22
Eigen::Matrix< double, 3, 1 > Vector3D
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
@ loc2
generic first and second local coordinate
Definition ParamDefs.h:35
@ loc1
Definition ParamDefs.h:34
ParametersBase< TrackParametersDim, Charged > TrackParameters

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

Definition at line 101 of file InDetPhysHitDecoratorAlg.cxx.

101 {
102 SG::ReadHandle<xAOD::TrackParticleContainer> ptracks(m_trkParticleName, ctx);
103 if ((not ptracks.isValid())) {
104 ATH_MSG_ERROR("Cannot get ReadHandle " << m_trkParticleName);
105 return StatusCode::FAILURE;
106 }
107
108 std::vector< SG::WriteDecorHandle<xAOD::TrackParticleContainer,std::vector<float> > >
109 float_decor( IDPVM::createDecorators<xAOD::TrackParticleContainer, std::vector<float> >(m_floatDecor, ctx) );
110 std::vector< SG::WriteDecorHandle<xAOD::TrackParticleContainer,std::vector<int> > >
111 int_decor( IDPVM::createDecorators<xAOD::TrackParticleContainer,std::vector<int> >(m_intDecor, ctx) );
112 std::vector< SG::WriteDecorHandle<xAOD::TrackParticleContainer,std::vector<uint64_t> > >
113 uint64_decor( IDPVM::createDecorators<xAOD::TrackParticleContainer,std::vector<uint64_t> >(m_uint64Decor, ctx) );
114
115 for (const xAOD::TrackParticle *trk_particle : *ptracks) {
116 if (not decorateTrack(*trk_particle, float_decor, int_decor, uint64_decor) ) {
117 ATH_MSG_ERROR("Could not decorate track");
118 return StatusCode::FAILURE;
119 }
120 }
121 return StatusCode::SUCCESS;
122}
bool decorateTrack(const xAOD::TrackParticle &particle, std::vector< SG::WriteDecorHandle< xAOD::TrackParticleContainer, std::vector< float > > > &float_decor, std::vector< SG::WriteDecorHandle< xAOD::TrackParticleContainer, std::vector< int > > > &int_decor, std::vector< SG::WriteDecorHandle< xAOD::TrackParticleContainer, std::vector< uint64_t > > > &uint64_decor) const
std::vector< SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > > m_intDecor
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trkParticleName
std::vector< SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > > m_floatDecor
std::vector< SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > > m_uint64Decor
std::vector< SG::WriteDecorHandle< T_Cont, T > > createDecorators(const std::vector< SG::WriteDecorHandleKey< T_Cont > > &keys, const EventContext &ctx)
TrackParticle_v1 TrackParticle
Reference the current persistent version:
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

◆ finalize()

StatusCode InDetPhysHitDecoratorAlg::finalize ( )
overridevirtual

Definition at line 95 of file InDetPhysHitDecoratorAlg.cxx.

95 {
96 return StatusCode::SUCCESS;
97}

◆ getUnbiasedTrackParameters()

const Trk::TrackParameters * InDetPhysHitDecoratorAlg::getUnbiasedTrackParameters ( const Trk::TrackParameters * trkParameters,
const Trk::MeasurementBase * measurement,
bool & isUnbiased ) const
private

Definition at line 477 of file InDetPhysHitDecoratorAlg.cxx.

479 {
480 const Trk::TrackParameters* unbiasedTrkParameters(trkParameters);
481
482 if (!m_updatorHandle.empty() && (isUnbiased)) {
483 if (trkParameters->covariance()) {
484 // Get unbiased state
485 unbiasedTrkParameters = m_updatorHandle->removeFromState(*trkParameters,
486 measurement->localParameters(),
487 measurement->localCovariance()).release();
488 if (!unbiasedTrkParameters) {
489 ATH_MSG_INFO( "Could not get unbiased track parameters, use normal parameters" );
490 isUnbiased = false;
491 }
492 } else if (not m_alreadyWarned) {
493 // warn only once!
494 ATH_MSG_WARNING("TrackParameters contain no covariance, unbiased track states can not be calculated "
495 "(ie. pulls and residuals will be too small)" );
496 m_alreadyWarned = true;
497 isUnbiased = false;
498 } else {
499 isUnbiased = false;
500 } // end if no measured track parameter
501 }
502 return unbiasedTrkParameters;
503}
#define ATH_MSG_INFO(x)

◆ initialize()

StatusCode InDetPhysHitDecoratorAlg::initialize ( )
overridevirtual

Definition at line 34 of file InDetPhysHitDecoratorAlg.cxx.

34 {
35 ATH_CHECK(m_holeSearchTool.retrieve());
36 if (not (m_updatorHandle.empty())) {
37 ATH_CHECK(m_updatorHandle.retrieve());
38 }
39 ATH_CHECK(m_lorentzAngleTool.retrieve());
40
41 std::vector<std::string> float_decor_names(kNFloatDecorators);
42 std::vector<std::string> int_decor_names(kNIntDecorators);
43 std::vector<std::string> uint64_decor_names(kNUInt64Decorators);
44
45 int_decor_names[kDecorRegion]="measurement_region";
46 int_decor_names[kDecorDet]="measurement_det";
47 int_decor_names[kDecorILayer]="measurement_iLayer";
48 int_decor_names[kDecorType]="measurement_type";
49 int_decor_names[kDecorPhiWidth]="hitResiduals_phiWidth";
50 int_decor_names[kDecorEtaWidth]="hitResiduals_etaWidth";
51
52 float_decor_names[kDecorResidualLocX]="hitResiduals_residualLocX";
53 float_decor_names[kDecorPullLocX]="hitResiduals_pullLocX";
54 float_decor_names[kDecorMeasLocX]="measurementLocX";
55 float_decor_names[kDecorTrkParamLocX]="trackParamLocX";
56 float_decor_names[kDecorMeasLocCovX]="measurementLocCovX";
57
58 float_decor_names[kDecorResidualLocY]="hitResiduals_residualLocY";
59 float_decor_names[kDecorPullLocY]="hitResiduals_pullLocY";
60 float_decor_names[kDecorMeasLocY]="measurementLocY";
61 float_decor_names[kDecorTrkParamLocY]="trackParamLocY";
62 float_decor_names[kDecorMeasLocCovY]="measurementLocCovY";
63
64 float_decor_names[kDecorAngle]="angle";
65 float_decor_names[kDecorEtaLoc]="etaloc";
66
67 uint64_decor_names[kDecorID]="surfaceID";
68
69 ATH_CHECK( m_trkParticleName.initialize() );
73 assert( m_intDecor.size() == kNIntDecorators);
74 assert( m_uint64Decor.size() == kNUInt64Decorators);
75 assert( m_floatDecor.size() == kNFloatDecorators);
76
77 // Get the dictionary manager from the detector store
78 ATH_CHECK(detStore()->retrieve(m_idHelper, "AtlasID"));
79 ATH_CHECK(detStore()->retrieve(m_pixelID, "PixelID"));
80 ATH_CHECK(detStore()->retrieve(m_sctID, "SCT_ID"));
81 ATH_CHECK(detStore()->retrieve(m_trtID, "TRT_ID"));
82
83 if (m_residualPullCalculator.empty()) {
84 ATH_MSG_INFO("No residual/pull calculator for general hit residuals configured.");
85 ATH_MSG_INFO("It is recommended to give R/P calculators to the det-specific tool handle lists then.");
86 } else if (m_residualPullCalculator.retrieve().isFailure()) {
87 ATH_MSG_FATAL( "Could not retrieve " << m_residualPullCalculator << " (to calculate residuals and pulls) " );
88 } else {
89 ATH_MSG_INFO("Generic hit residuals & pulls will be calculated in one or both available local coordinates");
90 }
91 return StatusCode::SUCCESS;
92}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_FATAL(x)
const ServiceHandle< StoreGateSvc > & detStore() const
Gaudi::Property< std::string > m_prefix
void createDecoratorKeys(T_Parent &parent, const SG::ReadHandleKey< T_Cont > &container_key, const std::string &prefix, const std::vector< std::string > &decor_names, std::vector< SG::WriteDecorHandleKey< T_Cont > > &decor_out)
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

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

Member Data Documentation

◆ m_alreadyWarned

std::atomic<bool> InDetPhysHitDecoratorAlg::m_alreadyWarned {false}
mutableprivate

Definition at line 106 of file InDetPhysHitDecoratorAlg.h.

106{false};

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

std::vector<SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> > InDetPhysHitDecoratorAlg::m_floatDecor
private

Definition at line 101 of file InDetPhysHitDecoratorAlg.h.

◆ m_holeSearchTool

ToolHandle<Trk::ITrackHoleSearchTool> InDetPhysHitDecoratorAlg::m_holeSearchTool {this, "InDetTrackHoleSearchTool", "InDet::InDetTrackHoleSearchTool"}
private

Definition at line 57 of file InDetPhysHitDecoratorAlg.h.

58{this, "InDetTrackHoleSearchTool", "InDet::InDetTrackHoleSearchTool"};

◆ m_idHelper

const AtlasDetectorID* InDetPhysHitDecoratorAlg::m_idHelper {nullptr}
private

Definition at line 108 of file InDetPhysHitDecoratorAlg.h.

108{nullptr};

◆ m_intDecor

std::vector<SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> > InDetPhysHitDecoratorAlg::m_intDecor
private

Definition at line 99 of file InDetPhysHitDecoratorAlg.h.

◆ m_lorentzAngleTool

ToolHandle<ISiLorentzAngleTool> InDetPhysHitDecoratorAlg::m_lorentzAngleTool {this, "LorentzAngleTool", "SiLorentzAngleTool", "Tool to retrieve Lorentz angle"}
private

Definition at line 65 of file InDetPhysHitDecoratorAlg.h.

65{this, "LorentzAngleTool", "SiLorentzAngleTool", "Tool to retrieve Lorentz angle"};

◆ m_pixelID

const PixelID* InDetPhysHitDecoratorAlg::m_pixelID {nullptr}
private

Definition at line 109 of file InDetPhysHitDecoratorAlg.h.

109{nullptr};

◆ m_prefix

Gaudi::Property<std::string> InDetPhysHitDecoratorAlg::m_prefix {this, "Prefix", "", "Decoration prefix to avoid clashes."}
private

Definition at line 103 of file InDetPhysHitDecoratorAlg.h.

104{this, "Prefix", "", "Decoration prefix to avoid clashes."};

◆ m_residualPullCalculator

ToolHandle<Trk::IResidualPullCalculator> InDetPhysHitDecoratorAlg::m_residualPullCalculator
private
Initial value:
{this, "ResidualPullCalculator",
"Trk::ResidualPullCalculator/ResidualPullCalculator"}

Definition at line 62 of file InDetPhysHitDecoratorAlg.h.

63 {this, "ResidualPullCalculator",
64 "Trk::ResidualPullCalculator/ResidualPullCalculator"};

◆ m_sctID

const SCT_ID* InDetPhysHitDecoratorAlg::m_sctID {nullptr}
private

Definition at line 110 of file InDetPhysHitDecoratorAlg.h.

110{nullptr};

◆ m_trkParticleName

SG::ReadHandleKey<xAOD::TrackParticleContainer> InDetPhysHitDecoratorAlg::m_trkParticleName {this,"TrackParticleContainerName", "InDetTrackParticles",""}
private

Definition at line 96 of file InDetPhysHitDecoratorAlg.h.

97{this,"TrackParticleContainerName", "InDetTrackParticles",""};

◆ m_trtID

const TRT_ID* InDetPhysHitDecoratorAlg::m_trtID {nullptr}
private

Definition at line 111 of file InDetPhysHitDecoratorAlg.h.

111{nullptr};

◆ m_uint64Decor

std::vector<SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> > InDetPhysHitDecoratorAlg::m_uint64Decor
private

Definition at line 100 of file InDetPhysHitDecoratorAlg.h.

◆ m_updatorHandle

ToolHandle<Trk::IUpdator> InDetPhysHitDecoratorAlg::m_updatorHandle
private
Initial value:
{this, "Updator", "Trk::KalmanUpdator/TrkKalmanUpdator",
"Tool handle of updator for unbiased states"}

Definition at line 59 of file InDetPhysHitDecoratorAlg.h.

60 {this, "Updator", "Trk::KalmanUpdator/TrkKalmanUpdator",
61 "Tool handle of updator for unbiased states"};

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