ATLAS Offline Software
TrackToTrackParticleCnvAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
5 
10 #include "Acts/Definitions/Units.hpp"
11 #include "Acts/Propagator/detail/JacobianEngine.hpp"
12 #include "ActsInterop/Logger.h"
13 
19 #include "GaudiKernel/PhysicalConstants.h"
20 
24 
25 #include <Acts/Definitions/TrackParametrization.hpp>
26 #include <tuple>
27 #include <sstream>
28 
29 namespace {
30 
37  template <typename T, class T_SquareMatrix>
38  inline void lowerTriangleToVector(const T_SquareMatrix& covMatrix,
39  std::vector<T>& vec, unsigned int n_rows_max) {
40  assert( covMatrix.rows() == covMatrix.cols());
41  vec.clear();
42  unsigned int n_rows = std::min(n_rows_max, static_cast<unsigned int>(covMatrix.rows()));
43  vec.reserve((n_rows+1)*n_rows/2);
44  for (unsigned int i = 0; i < n_rows; ++i) {
45  for (unsigned int j = 0; j <= i; ++j) {
46  vec.emplace_back(covMatrix(i, j));
47  }
48  }
49  }
50 
60  template <typename T, class T_SquareMatrix>
61  inline void lowerTriangleToVectorScaleLastRow(const T_SquareMatrix& covMatrix,
62  std::vector<T>& vec, unsigned int n_rows_max,
63  typename T_SquareMatrix::Scalar last_element_scale) {
64  assert( covMatrix.rows() == covMatrix.cols());
65  vec.clear();
66  unsigned int n_rows = std::min(n_rows_max, static_cast<unsigned int>(covMatrix.rows()));
67  vec.reserve((n_rows+1)*n_rows/2);
68  for (unsigned int i = 0; i < n_rows; ++i) {
69  for (unsigned int j = 0; j <= i; ++j) {
70  vec.emplace_back(covMatrix(i, j));
71  }
72  }
73  typename std::vector<T>::iterator cov_iter = vec.end();
74  --cov_iter;
75  *cov_iter *= last_element_scale; // apply scale twice to diagonal element
76  for (unsigned int i=0; i<n_rows_max; ++i) {
77  *cov_iter *= last_element_scale;
78  --cov_iter;
79  }
80  }
81 
87  void setSummaryValue(xAOD::TrackParticle &track_particle, uint8_t value, xAOD::SummaryType summary_type) {
88  uint8_t tmp = value;
89  track_particle.setSummaryValue(tmp, summary_type);
90  }
91 }
92 
93 namespace {
94  // Create lut to map neasurement types (pixel and strips only) to hit summary types.
95  std::array<unsigned short,ActsTrk::detail::to_underlying(xAOD::UncalibMeasType::nTypes)> makeMeasurementToSummaryTypeMap() {
97  for (unsigned short &elm : ret) {
99  }
102  return ret;
103  }
104 }
105 
106 namespace ActsTrk
107 {
108  std::vector<std::pair<Acts::PdgParticle, xAOD::ParticleHypothesis> > TrackToTrackParticleCnvAlg::s_actsHypothesisToxAOD;
109 
111  if (s_actsHypothesisToxAOD.empty()) {
112  s_actsHypothesisToxAOD.reserve(7);
113  s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::eElectron , xAOD::electron) );
114  s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::eMuon , xAOD::muon) );
115  s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::ePionPlus , xAOD::pion) );
116  s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::eProton , xAOD::proton) );
117  s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::ePionZero , xAOD::pi0) );
118  s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::eNeutron , xAOD::neutron) );
119  s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::eGamma , xAOD::photon) );
120  }
121  }
122 
123 
125  ISvcLocator *pSvcLocator)
126  : AthReentrantAlgorithm(name, pSvcLocator)
127  {
128  }
129 
131  {
132  std::vector<std::string> supportedStrategies {"BeamLine", "Vertex"};
133  bool isAllowedStrategy = false;
134  for (const std::string& strategy : supportedStrategies) {
135  if (m_perigeeExpression != strategy) continue;
136  isAllowedStrategy = true;
137  break;
138  }
139  ATH_MSG_DEBUG("- perigeeExpression: " << m_perigeeExpression.value());
140  if (not isAllowedStrategy) {
141  ATH_MSG_ERROR("Wrong configuration of the Track to Track Particle Cnv algorithm: perigeeExpression is not supported");
142  return StatusCode::FAILURE;
143  }
144 
148  else return StatusCode::FAILURE;
149 
150  ATH_CHECK(m_trackingGeometryTool.retrieve());
151  ATH_CHECK( m_tracksContainerKey.initialize() );
156 
159 
160  ATH_CHECK( m_extrapolationTool.retrieve() ); // for extrapolation to beamline
161 
162  // propagator for conversion to curvilnear parameters
163  {
164  auto logger = makeActsAthenaLogger(this, "Prop");
165 
166  Navigator::Config cfg{m_trackingGeometryTool->trackingGeometry()};
167  cfg.resolvePassive = false;
168  cfg.resolveMaterial = true;
169  cfg.resolveSensitive = true;
170  auto navigtor_logger = logger->cloneWithSuffix("Navigator");
171  m_propagator = std::make_unique<Propagator>(Stepper(std::make_shared<ATLASMagneticFieldWrapper>()),
172  Navigator(cfg,std::move(navigtor_logger)),
173  std::move(logger));
174  }
175 
176  // for layer/module-type information per hit
177  ATH_CHECK( m_siDetEleCollKey.initialize() );
178  if (m_siDetEleCollToMeasurementType.size() == m_siDetEleCollKey.size()) {
179  unsigned int collection_idx=0;
181  if (type <1 || type >2) {
182  ATH_MSG_ERROR("Invalid measurement type (" << type << ") given for collection " << collection_idx << " : "
183  << m_siDetEleCollKey[collection_idx].key()
184  << ". Expected 1 for pixel, 2 for strips.");
185  return StatusCode::FAILURE;
186  }
187  ++collection_idx;
188  }
189  }
190  else {
191  ATH_MSG_ERROR("Expected exactly one value in SiDetEleCollToMeasurementType per SiDetectorElementCollection. But got "
192  << m_siDetEleCollToMeasurementType.size() << " instead of " << m_siDetEleCollKey.size() << ".");
193  return StatusCode::FAILURE;
194  }
195 
197 
198  return StatusCode::SUCCESS;
199  }
200 
201  StatusCode TrackToTrackParticleCnvAlg::execute(const EventContext &ctx) const
202  {
204  if (wh_track_particles.record(std::make_unique<xAOD::TrackParticleContainer>(),
205  std::make_unique<xAOD::TrackParticleAuxContainer>()).isFailure()) {
206  ATH_MSG_ERROR("Failed to record track particle container with key " << m_trackParticlesOutKey.key() );
207  return StatusCode::FAILURE;
208  }
209 
211 
212  xAOD::TrackParticleContainer *track_particles = wh_track_particles.ptr();
213 
214  const InDet::BeamSpotData *beamspot_data {nullptr};
215  const xAOD::VertexContainer *vertexContainer {nullptr};
216  const xAOD::Vertex* primaryVertex {nullptr};
217 
220  ATH_CHECK(beamSpotHandle.isValid());
221  beamspot_data = beamSpotHandle.cptr();
222  }
223 
226  ATH_CHECK( vertexHandle.isValid() );
227  vertexContainer = vertexHandle.cptr();
228  if (vertexContainer->size() == 0) {
229  ATH_MSG_ERROR("Retrieved an empty vertex container. This is totally wrong!");
230  return StatusCode::FAILURE;
231  }
232 
233  for(const xAOD::Vertex* vtx : *vertexContainer) {
234  if(vtx->vertexType() == xAOD::VxType::PriVtx) {
235  primaryVertex = vtx;
236  break;
237  }
238  }
239 
240  if (not primaryVertex) {
241  ATH_MSG_WARNING("Requested to compute track particles wrt primary vertex, but no primary vertex is found. Using dummy vertex");
242  primaryVertex = vertexContainer->front();
243  }
244  }
245 
246  std::size_t nTracks = 0ul;
247  std::vector<const ActsTrk::TrackContainer *> trackContainers;
249  SG::ReadHandle<ActsTrk::TrackContainer> handle = SG::makeHandle( handleKey, ctx );
250  ATH_CHECK(handle.isValid());
251  trackContainers.push_back( handle.cptr() );
252  nTracks += trackContainers.back()->size();
253  }
254 
255  // Fast Insertion Trick
256  std::vector<xAOD::TrackParticle*> toAddParticles;
257  toAddParticles.reserve(nTracks);
258  for (std::size_t i(0); i<nTracks; ++i) {
259  toAddParticles.push_back( new xAOD::TrackParticle() );
260  }
261  track_particles->insert(track_particles->end(),
262  toAddParticles.begin(),
263  toAddParticles.end());
264 
266  ATH_CHECK(fieldHandle.isValid());
267  const AtlasFieldCacheCondObj *field_cond_data = fieldHandle.cptr();
268  MagField::AtlasFieldCache fieldCache;
269  field_cond_data->getInitializedCache(fieldCache);
270 
271  const ActsGeometryContext &gctx = m_trackingGeometryTool->getNominalGeometryContext();
272  std::shared_ptr<Acts::PerigeeSurface> perigee_surface {nullptr};
274  perigee_surface = makePerigeeSurface(beamspot_data);
276  perigee_surface = makePerigeeSurface(*primaryVertex);
277  }
278 
280  for (unsigned int idx=0; idx <m_siDetEleCollToMeasurementType.size(); ++idx ) {
282  ATH_CHECK(detHandle.isValid());
283  siDetEleColl[m_siDetEleCollToMeasurementType[idx] ] = detHandle.cptr();
284  }
285 
287  measurementToSummaryType ATLAS_THREAD_SAFE (makeMeasurementToSummaryTypeMap());
288 
289 
290 
291  // re-used temporaries
292  std::vector<float> tmp_cov_vector;
293  std::vector<ActsTrk::TrackStateBackend::ConstTrackStateProxy::IndexType > tmp_param_state_idx;
294  tmp_param_state_idx.reserve(30);
295  Amg::Vector3D magnFieldVect;
296  std::vector<std::vector<float>> parametersVec;
298 
299  unsigned int converted_track_states=0;
300 
301  std::size_t particleCounter = 0ul;
302  using namespace Acts::UnitLiterals;
303  for (const ActsTrk::TrackContainer *tracksContainer : trackContainers) {
304 
305  bool precalculatedLayerPattern = detail::ExpectedLayerPatternHelper::exists(*tracksContainer);
306 
307  for (const typename ActsTrk::TrackContainer::ConstTrackProxy track : *tracksContainer) {
308  xAOD::TrackParticle *track_particle = track_particles->at(particleCounter++);
309 
310  // convert defining parameters
311  // @TODO add support for other modes available in the legacy converter : wrt a vertex, origin, beamspot ?
312  Acts::BoundTrackParameters perigeeParam = [&] {
314  // If the strategy is "DontRecalculate", we will take the reference surface as is
315  // from the track finding without modification. Consult track finding configuration to
316  // find out what that is.
317  return track.createParametersAtReference();
318  }
319  else {
320  return parametersAtPerigee(ctx, track, *perigee_surface);
321  }
322  }();
323 
324  Acts::BoundVector boundParams = perigeeParam.parameters();
325  track_particle->setDefiningParameters(boundParams[Acts::eBoundLoc0],
326  boundParams[Acts::eBoundLoc1],
327  boundParams[Acts::eBoundPhi],
328  boundParams[Acts::eBoundTheta],
329  boundParams[Acts::eBoundQOverP] * 1_MeV);
330 
331  if (perigeeParam.covariance().has_value()) {
332  // only use the 5x5 sub-matrix of the full covariance matrix
333  lowerTriangleToVectorScaleLastRow(perigeeParam.covariance().value(),tmp_cov_vector,5, 1_MeV);
334  track_particle->setDefiningParametersCovMatrixVec(tmp_cov_vector);
335  }
336  // optional beam tilt
337  if (beamspot_data) {
338  track_particle->setBeamlineTiltX(beamspot_data->beamTilt(0));
339  track_particle->setBeamlineTiltY(beamspot_data->beamTilt(1));
340  }
341 
342  // fit info, quality
343  track_particle->setFitQuality(track.chi2(), track.nDoF());
344  track_particle->setPatternRecognitionInfo( (1ul << xAOD::SiSPSeededFinder) );
345  track_particle->setTrackFitter(xAOD::KalmanFitter);
346 
347  const Acts::ParticleHypothesis &hypothesis = track.particleHypothesis();
348  track_particle->setParticleHypothesis(convertParticleHypothesis( hypothesis.absolutePdg() ));
349  constexpr float inv_1_MeV = 1/1_MeV;
350  // gather track state indices for parameter conversion
351  // @TODO add support for muons
352 
353  // xAOD::UncalibMeasType::underlying_type is expected to be the number of UncalibMeasTypes
356 
358  gatherTrackSummaryData(*tracksContainer,
359  track,
360  siDetEleColl,
361  measurementToSummaryType,
362  chi2_stat,
363  hitInfo,
364  tmp_param_state_idx,
365  specialHitCounts);
366 
367  // Muon
368  // MdtDriftCircleType = 3
369  // RpcStripType = 4,
370  // TgcStripType = 5,
371  // MMClusterType = 6,
372  // sTgcStripType = 7,
373 
374  // pixel summaries
375  std::array< std::tuple< uint8_t, uint8_t, uint8_t, bool >, 4> copy_summary {
376  std::make_tuple(static_cast<uint8_t>(ActsTrk::detail::HitSummaryData::pixelTotal),
378  static_cast<uint8_t>(xAOD::numberOfPixelHits),
379  false),
380 
381  std::make_tuple(static_cast<uint8_t>(ActsTrk::detail::HitSummaryData::pixelBarrelFlat),
384  true),
385 
389  true),
390 
391  std::make_tuple(static_cast<uint8_t>(ActsTrk::detail::HitSummaryData::pixelEndcap),
393  static_cast<uint8_t>(xAOD::numberOfPixelEndcapHits),\
394  true) };
395 
396  for (auto [src_region, dest_xaod_summary_layer, dest_xaod_summary_hits, add_outlier] : copy_summary ) {
397  setSummaryValue(*track_particle,
398  hitInfo.contributingLayers( static_cast<ActsTrk::detail::HitSummaryData::DetectorRegion>(src_region)),
399  static_cast<xAOD::SummaryType>(dest_xaod_summary_layer));
400  setSummaryValue(*track_particle,
401  hitInfo.contributingHits(static_cast<ActsTrk::detail::HitSummaryData::DetectorRegion>(src_region))
402  + ( add_outlier
404  : 0),
405  static_cast<xAOD::SummaryType>(dest_xaod_summary_hits));
406  }
407  setSummaryValue(*track_particle,
411  setSummaryValue(*track_particle,
414  setSummaryValue(*track_particle,
420  setSummaryValue(*track_particle,
424  setSummaryValue(*track_particle,
427  setSummaryValue(*track_particle,
430  setSummaryValue(*track_particle,
433  setSummaryValue(*track_particle,
437  setSummaryValue(*track_particle,
440 
441 
442  std::array<unsigned int,4> expect_layer_pattern{};
443  if (precalculatedLayerPattern) {
444  // We have a pre-calculated layer pattern from track finding, use as is
445  expect_layer_pattern = detail::ExpectedLayerPatternHelper::get(track);
446  }
447  else {
448  // Only check if computeExpectedLayerPattern is true. TODO:: move this computation to the track finding to avoid calling propagator steps here.
449  // Do not expect pixel hits if there are not contributing pixel hits in the flat barrel and expectIfPixelContributes is true
450  expect_layer_pattern = (m_computeExpectedLayerPattern.value()
451  && (!m_expectIfPixelContributes.value()
455  perigeeParam,
457  : std::array<unsigned int,4> {0u,0u, 0u,0u} );
458  }
459 
460  // @TODO consider end-caps for inner most pixel hits ?
461  setSummaryValue(*track_particle,
462  static_cast<uint8_t>((expect_layer_pattern[0] & (1<<0)) != 0 ),
464  setSummaryValue(*track_particle,
465  static_cast<uint8_t>((expect_layer_pattern[0] & (1<<1)) != 0 ),
467  setSummaryValue(*track_particle,
470  setSummaryValue(*track_particle,
473  setSummaryValue(*track_particle,
476  setSummaryValue(*track_particle,
479  setSummaryValue(*track_particle,
482  setSummaryValue(*track_particle,
485 
486  // Strip summaries
487  setSummaryValue(*track_particle,
490  setSummaryValue(*track_particle,
493  setSummaryValue(*track_particle,
496  setSummaryValue(*track_particle,
499 
500  double biased_chi2_variance = chi2_stat.biasedVariance();
501  setSummaryValue(*track_particle,
502  static_cast<uint8_t> (biased_chi2_variance>0.
503  ? std::min(static_cast<unsigned int>(std::sqrt(biased_chi2_variance) * 100),255u)
504  : 0u),
506 
507  setSummaryValue(*track_particle,
511 
512 
513  // @TODO slect states for which parameters are stored
514  if (m_firstAndLastParamOnly && tmp_param_state_idx.size()>2) {
515  tmp_param_state_idx[1]=tmp_param_state_idx.back();
516  tmp_param_state_idx.erase(tmp_param_state_idx.begin()+2,tmp_param_state_idx.end());
517  }
518 
519  // store track parameters and covariances for slected states
520  parametersVec.clear();
521  parametersVec.reserve(tmp_param_state_idx.size());
522 
523  for(std::vector<ActsTrk::TrackStateBackend::ConstTrackStateProxy::IndexType>::const_reverse_iterator
524  idx_iter = tmp_param_state_idx.rbegin();
525  idx_iter != tmp_param_state_idx.rend();
526  ++idx_iter) {
527  // for(ActsTrk::TrackStateBackend::ConstTrackStateProxy::IndexType idx : tmp_param_state_idx) {
528  ActsTrk::TrackStateBackend::ConstTrackStateProxy
529  state = tracksContainer->trackStateContainer().getTrackState(*idx_iter);
530  const Acts::BoundTrackParameters actsParam = track.createParametersFromState(state);
531 
532  Acts::Vector3 position = actsParam.position(gctx.context());
533  Acts::Vector3 momentum = actsParam.momentum();
534 
535  // scaling from Acts momentume units (GeV) to Athena Units (MeV)
536  for (unsigned int i=0; i<momentum.rows(); ++i) {
537  momentum(i) *= inv_1_MeV;
538  }
539 
540 
541  if (actsParam.covariance()) {
542  Acts::MagneticFieldContext mfContext = m_extrapolationTool->getMagneticFieldContext(ctx);
543  Acts::GeometryContext tgContext = gctx.context();
544 
545  magnFieldVect.setZero();
546  fieldCache.getField(position.data(), magnFieldVect.data());
547  // scaling from Athena magnetic field units kT to Acts units T
548  {
549  using namespace Acts::UnitLiterals;
550  magnFieldVect *= 1000_T;
551  }
552 
553  auto curvilinear_cov_result = ActsTrk::detail::convertActsBoundCovToCurvilinearParam(tgContext, actsParam, magnFieldVect, hypothesis);
554  if (curvilinear_cov_result.has_value()) {
555  Acts::BoundSquareMatrix &curvilinear_cov = curvilinear_cov_result.value();
556 
557  // convert q/p components from GeV (Acts) to MeV (Athena)
558  for (unsigned int col_i=0; col_i<4; ++col_i) {
559  curvilinear_cov(col_i,4) *= 1_MeV;
560  curvilinear_cov(4,col_i) *= 1_MeV;
561  }
562  curvilinear_cov(4,4) *= (1_MeV * 1_MeV);
563 
564  std::size_t param_idx = parametersVec.size();
565  // only use the 5x5 sub-matrix of the full covariance matrix
566  lowerTriangleToVector(curvilinear_cov,tmp_cov_vector,5);
567  if (tmp_cov_vector.size() != 15) {
568  ATH_MSG_ERROR("Invalid size of lower triangle cov " << tmp_cov_vector.size() << " != 15"
569  << " input matrix : " << curvilinear_cov.rows() << " x " << curvilinear_cov.cols() );
570  }
571  track_particle->setTrackParameterCovarianceMatrix(param_idx, tmp_cov_vector);
572  }
573  }
574  parametersVec.emplace_back(std::vector<float>{
575  static_cast<float>(position[0]),static_cast<float>(position[1]),static_cast<float>(position[2]),
576  static_cast<float>(momentum[0]),static_cast<float>(momentum[1]),static_cast<float>(momentum[2]) });
577  ++converted_track_states;
578 
579 
580  }
581  for (const std::vector<float> &param : parametersVec) {
582  if (param.size() != 6) {
583  ATH_MSG_ERROR("Invalid size of param element " << param.size() << " != 6" );
584  }
585  }
586 
587  track_particle->setTrackParameters(parametersVec);
588 
589  // add element to link to the correspond track
590  trackLink(*track_particle)
591  = ElementLink<ActsTrk::TrackContainer>( tracksContainer,
592  track.index() );
593  ATH_CHECK( (trackLink(*track_particle)).isValid() );
594  }
595  }
596  ATH_MSG_DEBUG( "Converted " << nTracks << " acts tracks into " << track_particles->size()
597  << " track particles with parameters for " << converted_track_states << " track states.");
598 
599  return StatusCode::SUCCESS;
600  }
601 
602  std::shared_ptr<Acts::PerigeeSurface> TrackToTrackParticleCnvAlg::makePerigeeSurface(const InDet::BeamSpotData *beamspot_data) {
603  // @from TrackToVertex::trackAtBeamline
604  Acts::Vector3 beamspot(0., 0., 0.);
605  float tiltx = 0.0;
606  float tilty = 0.0;
607  if (beamspot_data) {
608  beamspot = Acts::Vector3(beamspot_data->beamVtx().position());
609  tiltx = beamspot_data->beamTilt(0);
610  tilty = beamspot_data->beamTilt(1);
611  }
612  Acts::Translation3 translation(beamspot);
613  Acts::Transform3 transform( translation * Acts::RotationMatrix3::Identity() );
614  transform *= Acts::AngleAxis3(tilty, Acts::Vector3(0.,1.,0.));
615  transform *= Acts::AngleAxis3(tiltx, Acts::Vector3(1.,0.,0.));
616  return Acts::Surface::makeShared<Acts::PerigeeSurface>(transform);
617  }
618 
619  std::shared_ptr<Acts::PerigeeSurface> TrackToTrackParticleCnvAlg::makePerigeeSurface(const xAOD::Vertex& vertex) {
620  Acts::Translation3 translation(Acts::Vector3(vertex.position()));
621  Acts::Transform3 transform( translation * Acts::RotationMatrix3::Identity() );
622  return Acts::Surface::makeShared<Acts::PerigeeSurface>(transform);
623  }
624 
625  Acts::BoundTrackParameters TrackToTrackParticleCnvAlg::parametersAtPerigee(const EventContext &ctx,
626  const typename ActsTrk::TrackContainer::ConstTrackProxy &track,
627  const Acts::PerigeeSurface &perigee_surface) const {
628  const Acts::BoundTrackParameters trackParam = track.createParametersAtReference();
629 
630  std::optional<const Acts::BoundTrackParameters>
631  perigeeParam = m_extrapolationTool->propagate(ctx,
632  trackParam,
633  perigee_surface,
634  Acts::Direction::Backward(), // @TODO try forward if backward fails ?
636  if (!perigeeParam.has_value()) {
637  ATH_MSG_WARNING( "Failed to extrapolate to perigee, started from \n" << trackParam << " " << trackParam.referenceSurface().name() );
638 
639  return trackParam;
640  }
641  else {
642  ATH_MSG_DEBUG( "Succeeded to extrapolate to perigee ");
643  return perigeeParam.value();
644  }
645  }
646 
647 }
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
xAOD::strategy
strategy
Definition: L2CombinedMuon_v1.cxx:108
xAOD::neutron
@ neutron
for Fatras usage
Definition: TrackingPrimitives.h:201
xAOD::numberOfPixelHoles
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
Definition: TrackingPrimitives.h:262
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:196
xAOD::TrackParticle_v1::setTrackFitter
void setTrackFitter(const TrackFitter fitter)
Method for setting the fitter, using the TrackFitter enum.
Definition: TrackParticle_v1.cxx:694
ActsTrk::TrackToTrackParticleCnvAlg::makePerigeeSurface
static std::shared_ptr< Acts::PerigeeSurface > makePerigeeSurface(const InDet::BeamSpotData *beamspotptr)
Definition: TrackToTrackParticleCnvAlg.cxx:602
ActsTrk::detail::convertActsBoundCovToCurvilinearParam
std::optional< Acts::BoundMatrix > convertActsBoundCovToCurvilinearParam(const Acts::GeometryContext &tgContext, const Acts::BoundTrackParameters &param, const Acts::Vector3 &magnFieldVect, const Acts::ParticleHypothesis &particle_hypothesis)
Convert the covariance of the given Acts track parameters into curvilinear parameterisation.
Definition: CurvilinearCovarianceHelper.h:61
ActsTrk::TrackContainer
Definition: TrackContainer.h:30
ActsTrk::TrackToTrackParticleCnvAlg::m_expectIfPixelContributes
Gaudi::Property< bool > m_expectIfPixelContributes
Definition: TrackToTrackParticleCnvAlg.h:105
ActsTrk::detail::SumOfValues
Helper class to gather statistics and compute the biased variance.
Definition: HitSummaryDataUtils.h:253
python.SystemOfUnits.mm
float mm
Definition: SystemOfUnits.py:98
xAOD::numberOfSCTSharedHits
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:273
ActsTrk::detail::gatherTrackSummaryData
void gatherTrackSummaryData(const ActsTrk::TrackContainer &tracksContainer, const typename ActsTrk::TrackContainer::ConstTrackProxy &track, const std::array< const InDetDD::SiDetectorElementCollection *, to_underlying(xAOD::UncalibMeasType::nTypes)> &siDetEleColl, const std::array< unsigned short, to_underlying(xAOD::UncalibMeasType::nTypes)> &measurement_to_summary_type, SumOfValues &chi2_stat_out, HitSummaryData &hit_info_out, std::vector< ActsTrk::TrackStateBackend::ConstTrackStateProxy::IndexType > &param_state_idx_out, std::array< std::array< uint8_t, to_underlying(HitCategory::N)>, to_underlying(xAOD::UncalibMeasType::nTypes)> &special_hit_counts_out)
Helper to gather track summary information from the track states of the specified track.
Definition: HitSummaryDataUtils.cxx:15
ActsTrk::TrackToTrackParticleCnvAlg::initialize
virtual StatusCode initialize() override
Definition: TrackToTrackParticleCnvAlg.cxx:130
ActsTrk::detail::HitSummaryData::contributingHits
uint8_t contributingHits(DetectorRegion region) const
return the number of hits in a certain detector region.
Definition: HitSummaryDataUtils.h:196
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:27
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
CurvilinearCovarianceHelper.h
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:558
xAOD::electron
@ electron
Definition: TrackingPrimitives.h:195
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
xAOD::TrackParticle_v1::setTrackParameters
void setTrackParameters(std::vector< std::vector< float > > &parameters)
Set the parameters via the passed vector of vectors.
Definition: TrackParticle_v1.cxx:568
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
ActsTrk::TrackToTrackParticleCnvAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: TrackToTrackParticleCnvAlg.cxx:201
ActsGeometryContext.h
ActsTrk::detail::to_underlying
constexpr std::underlying_type< T_EnumClass >::type to_underlying(T_EnumClass an_enum)
Helper to convert class enum into an integer.
Definition: HitSummaryDataUtils.h:24
xAOD::numberOfContribPixelBarrelInclinedLayers
@ numberOfContribPixelBarrelInclinedLayers
number of contributing barrel inclined layers of the pixel detector [unit8_t].
Definition: TrackingPrimitives.h:310
xAOD::numberOfInnermostPixelLayerSharedEndcapHits
@ numberOfInnermostPixelLayerSharedEndcapHits
number of Pixel 0th layer endcap hits shared by several tracks.
Definition: TrackingPrimitives.h:245
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
xAOD::UncalibMeasType::StripClusterType
@ StripClusterType
xAOD::short
short
Definition: Vertex_v1.cxx:165
ActsTrk::TrackToTrackParticleCnvAlg::m_trackingGeometryTool
PublicToolHandle< ActsTrk::ITrackingGeometryTool > m_trackingGeometryTool
Definition: TrackToTrackParticleCnvAlg.h:75
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
ActsTrk::TrackToTrackParticleCnvAlg::m_firstAndLastParamOnly
Gaudi::Property< bool > m_firstAndLastParamOnly
Definition: TrackToTrackParticleCnvAlg.h:101
ActsTrk::TrackToTrackParticleCnvAlg::m_expression_strategy
expressionStrategy m_expression_strategy
Definition: TrackToTrackParticleCnvAlg.h:114
ActsTrk::detail::HitSummaryData::Hit
@ Hit
Definition: HitSummaryDataUtils.h:96
ActsTrk::detail::HitSummaryData::contributingSharedHits
uint8_t contributingSharedHits(DetectorRegion region) const
return the number of shared hits in a certain detector region.
Definition: HitSummaryDataUtils.h:212
ActsTrk::detail::HitSummaryData::Outlier
@ Outlier
Definition: HitSummaryDataUtils.h:97
ActsTrk::detail::HitSummaryData::pixelEndcap
@ pixelEndcap
Definition: HitSummaryDataUtils.h:45
ActsTrk::TrackToTrackParticleCnvAlg::parametersAtPerigee
Acts::BoundTrackParameters parametersAtPerigee(const EventContext &ctx, const typename ActsTrk::TrackContainer::ConstTrackProxy &track, const Acts::PerigeeSurface &perigee_surface) const
Definition: TrackToTrackParticleCnvAlg.cxx:625
xAOD::numberOfContribPixelBarrelFlatLayers
@ numberOfContribPixelBarrelFlatLayers
number of contributing barrel flat layers of the pixel detector [unit8_t].
Definition: TrackingPrimitives.h:309
SG::ReadCondHandle::isValid
bool isValid()
Definition: ReadCondHandle.h:210
ATLASMagneticFieldWrapper.h
xAOD::pion
@ pion
Definition: TrackingPrimitives.h:197
xAOD::TrackParticle_v1::setDefiningParameters
void setDefiningParameters(float d0, float z0, float phi0, float theta, float qOverP)
Set the defining parameters.
Definition: TrackParticle_v1.cxx:178
HitSummaryDataUtils.h
athena.value
value
Definition: athena.py:124
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:260
xAOD::expectInnermostPixelLayerHit
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
Definition: TrackingPrimitives.h:237
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:9
InDet::BeamSpotData::beamVtx
const Trk::RecVertex & beamVtx() const noexcept
Definition: BeamSpotData.h:79
xAOD::TrackParticle_v1::setTrackParameterCovarianceMatrix
void setTrackParameterCovarianceMatrix(unsigned int index, std::vector< float > &cov)
Set the cov matrix of the parameter at 'index', using a vector of floats.
Definition: TrackParticle_v1.cxx:639
isValid
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Definition: AtlasPID.h:872
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SG::ReadHandleKey< ActsTrk::TrackContainer >
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:77
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
xAOD::numberOfInnermostPixelLayerEndcapOutliers
@ numberOfInnermostPixelLayerEndcapOutliers
number of 0th layer endcap outliers
Definition: TrackingPrimitives.h:244
xAOD::TrackParticle_v1::setBeamlineTiltY
void setBeamlineTiltY(float tiltY)
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:274
makeActsAthenaLogger
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
Definition: Tracking/Acts/ActsInterop/src/Logger.cxx:64
ActsGeometryContext::context
Acts::GeometryContext context() const
Definition: ActsGeometryContext.h:45
xAOD::TrackParticle_v1::setFitQuality
void setFitQuality(float chiSquared, float numberDoF)
Set the 'Fit Quality' information.
Definition: TrackParticle_v1.cxx:535
xAOD::numberOfContribPixelEndcap
@ numberOfContribPixelEndcap
number of contributing endcap layers of the pixel detector [unit8_t].
Definition: TrackingPrimitives.h:311
GeoPrimitives.h
xAOD::numberOfInnermostPixelLayerOutliers
@ numberOfInnermostPixelLayerOutliers
number of 0th layer barrel outliers
Definition: TrackingPrimitives.h:239
xAOD::numberOfNextToInnermostPixelLayerSharedEndcapHits
@ numberOfNextToInnermostPixelLayerSharedEndcapHits
number of Pixel 1st layer endcap hits shared by several tracks.
Definition: TrackingPrimitives.h:256
xAOD::numberOfInnermostPixelLayerEndcapHits
@ numberOfInnermostPixelLayerEndcapHits
these are the hits in the 0th pixel layer endcap [unit8_t].
Definition: TrackingPrimitives.h:243
xAOD::numberOfPixelSharedHits
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:263
AtlasFieldCacheCondObj::getInitializedCache
void getInitializedCache(MagField::AtlasFieldCache &cache) const
get B field cache for evaluation as a function of 2-d or 3-d position.
Definition: AtlasFieldCacheCondObj.h:32
ActsTrk::detail::HitSummaryData
Helper class to gather hit summary information for e.g.
Definition: HitSummaryDataUtils.h:38
ActsTrk::detail::HitSummaryData::contributingOutlierHits
uint8_t contributingOutlierHits(DetectorRegion region) const
return the number of outliers in a certain detector region.
Definition: HitSummaryDataUtils.h:204
ActsTrk::TrackToTrackParticleCnvAlg::Navigator
Acts::Navigator Navigator
Definition: TrackToTrackParticleCnvAlg.h:63
xAOD::SummaryType
SummaryType
Enumerates the different types of information stored in Summary.
Definition: TrackingPrimitives.h:229
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAOD::expectNextToInnermostPixelLayerHit
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
Definition: TrackingPrimitives.h:248
xAOD::numberOfPixelBarrelFlatHits
@ numberOfPixelBarrelFlatHits
these are the pixel hits, in the barrel flat layers [unit8_t].
Definition: TrackingPrimitives.h:312
TrackParticleAuxContainer.h
ParticleGun_EoverP_Config.momentum
momentum
Definition: ParticleGun_EoverP_Config.py:63
ActsTrk::TrackToTrackParticleCnvAlg::initParticleHypothesisMap
static void initParticleHypothesisMap()
Definition: TrackToTrackParticleCnvAlg.cxx:110
lumiFormat.i
int i
Definition: lumiFormat.py:85
ActsTrk::detail::ExpectedLayerPatternHelper::exists
static bool exists(track_container_t &trackContainer)
Definition: ExpectedHitUtils.h:43
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SG::WriteHandle::ptr
pointer_type ptr()
Dereference the pointer.
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::covMatrix
covMatrix
Definition: TrackMeasurement_v1.cxx:19
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
ActsTrk::detail::HitSummaryData::contributingLayers
uint8_t contributingLayers(DetectorRegion region) const
return the number of layers contributing to the hit collection in the given detector region.
Definition: HitSummaryDataUtils.h:188
ActsTrk::TrackToTrackParticleCnvAlg::m_decorator_actsTracks
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_decorator_actsTracks
Definition: TrackToTrackParticleCnvAlg.h:96
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
xAOD::VxType::PriVtx
@ PriVtx
Primary vertex.
Definition: TrackingPrimitives.h:572
AtlasFieldCache.h
ActsTrk::detail::HitCategory::N
@ N
Definition: HitSummaryDataUtils.h:32
xAOD::numberOfPixelOutliers
@ numberOfPixelOutliers
these are the pixel outliers, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:261
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DataVector::insert
iterator insert(iterator position, value_type pElem)
Add a new element to the collection.
detail::ul
unsigned long ul
Definition: PrimitiveHelpers.h:46
xAOD::standardDeviationOfChi2OS
@ standardDeviationOfChi2OS
100 times the standard deviation of the chi2 from the surfaces [unit8_t].
Definition: TrackingPrimitives.h:299
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
Trk::Vertex::position
const Amg::Vector3D & position() const
return position of vertex
Definition: Vertex.cxx:72
ActsTrk::detail::HitSummaryData::pixelBarrelFlat
@ pixelBarrelFlat
Definition: HitSummaryDataUtils.h:43
xAOD::numberOfSCTHoles
@ numberOfSCTHoles
number of SCT holes [unit8_t].
Definition: TrackingPrimitives.h:271
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
ActsTrk::TrackToTrackParticleCnvAlg::m_computeExpectedLayerPattern
Gaudi::Property< bool > m_computeExpectedLayerPattern
Definition: TrackToTrackParticleCnvAlg.h:103
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
xAOD::TrackParticle_v1::setParticleHypothesis
void setParticleHypothesis(const ParticleHypothesis hypo)
Method for setting the particle type, using the ParticleHypothesis enum.
Definition: TrackParticle_v1.cxx:724
xAOD::numberOfTrackSummaryTypes
@ numberOfTrackSummaryTypes
Definition: TrackingPrimitives.h:320
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
xAOD::numberOfNextToInnermostPixelLayerEndcapHits
@ numberOfNextToInnermostPixelLayerEndcapHits
these are the hits in the 0.5th and 1st pixel layer endcap rings [unit8_t].
Definition: TrackingPrimitives.h:254
lumiFormat.array
array
Definition: lumiFormat.py:91
ActsTrk::TrackToTrackParticleCnvAlg::m_trackParticlesOutKey
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_trackParticlesOutKey
Definition: TrackToTrackParticleCnvAlg.h:93
ActsTrk::detail::HitSummaryData::sum
uint8_t sum(DetectorRegion region, uint8_t layer) const
return the total number of hits, outliers, and/or shared hits in the givrn detector region and layer.
Definition: HitSummaryDataUtils.h:222
xAOD::UncalibMeasType::nTypes
@ nTypes
xAOD::KalmanFitter
@ KalmanFitter
tracks produced by the Kalman Fitter
Definition: TrackingPrimitives.h:48
xAOD::numberOfNextToInnermostPixelLayerOutliers
@ numberOfNextToInnermostPixelLayerOutliers
number of 1st pixel layer barrel outliers
Definition: TrackingPrimitives.h:250
xAOD::numberOfNextToInnermostPixelLayerHits
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
Definition: TrackingPrimitives.h:249
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
xAOD::proton
@ proton
Definition: TrackingPrimitives.h:199
ActsTrk::TrackToTrackParticleCnvAlg::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: TrackToTrackParticleCnvAlg.h:83
ActsTrk::TrackToTrackParticleCnvAlg::expressionStrategy::Vertex
@ Vertex
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
WriteCaloSwCorrections.cfg
cfg
Definition: WriteCaloSwCorrections.py:23
xAOD::ParticleHypothesis
ParticleHypothesis
Definition: TrackingPrimitives.h:193
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
xAOD::pi0
@ pi0
for Fatras usage
Definition: TrackingPrimitives.h:202
SiDetectorElement.h
ActsTrk::detail::HitSummaryData::stripTotal
@ stripTotal
Definition: HitSummaryDataUtils.h:50
xAOD::numberOfPixelBarrelInclinedHits
@ numberOfPixelBarrelInclinedHits
these are the pixel hits, in the barrel inclined layers [unit8_t].
Definition: TrackingPrimitives.h:313
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
xAOD::TrackParticle_v1::setDefiningParametersCovMatrixVec
void setDefiningParametersCovMatrixVec(const std::vector< float > &cov)
Definition: TrackParticle_v1.cxx:461
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:73
xAOD::TrackParticle_v1::setSummaryValue
void setSummaryValue(uint8_t &value, const SummaryType &information)
Set method for TrackSummary values.
Definition: TrackParticle_v1.cxx:753
ActsTrk::detail::HitSummaryData::pixelBarrelInclined
@ pixelBarrelInclined
Definition: HitSummaryDataUtils.h:44
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
xAOD::numberOfOutliersOnTrack
@ numberOfOutliersOnTrack
number of measurements flaged as outliers in TSOS [unit8_t].
Definition: TrackingPrimitives.h:298
InDet::BeamSpotData
Definition: BeamSpotData.h:21
ActsTrk::detail::expectedLayerPattern
std::array< unsigned int, 4 > expectedLayerPattern(const EventContext &ctx, const IActsExtrapolationTool &extrapolator, const Acts::BoundTrackParameters &perigee_parameters, double pathLimit)
Extrapolate from the perigee outwards and gather information which detector layers should have hits.
Definition: ExpectedHitUtils.cxx:14
xAOD::photon
@ photon
Definition: TrackingPrimitives.h:200
ActsTrk::TrackToTrackParticleCnvAlg::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: TrackToTrackParticleCnvAlg.h:81
ActsTrk::TrackToTrackParticleCnvAlg::Stepper
Acts::EigenStepper<> Stepper
Definition: TrackToTrackParticleCnvAlg.h:62
SG::WriteDecorHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
xAOD::numberOfSCTOutliers
@ numberOfSCTOutliers
number of SCT outliers [unit8_t].
Definition: TrackingPrimitives.h:270
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ActsTrk::detail::SumOfValues::biasedVariance
double biasedVariance() const
Definition: HitSummaryDataUtils.h:274
xAOD::numberOfNextToInnermostPixelLayerEndcapOutliers
@ numberOfNextToInnermostPixelLayerEndcapOutliers
number of 1st layer endcap disk outliers
Definition: TrackingPrimitives.h:255
ActsTrk::detail::HitSummaryData::SharedHit
@ SharedHit
Definition: HitSummaryDataUtils.h:99
MagField::AtlasFieldCache
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: AtlasFieldCache.h:43
ITrackingGeometryTool.h
ActsTrk::TrackToTrackParticleCnvAlg::m_perigeeExpression
Gaudi::Property< std::string > m_perigeeExpression
Definition: TrackToTrackParticleCnvAlg.h:111
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
ActsTrk::TrackToTrackParticleCnvAlg::m_pixelExpectLayerPathLimitInMM
Gaudi::Property< double > m_pixelExpectLayerPathLimitInMM
Definition: TrackToTrackParticleCnvAlg.h:108
xAOD::numberOfInnermostPixelLayerSharedHits
@ numberOfInnermostPixelLayerSharedHits
number of Pixel 0th layer barrel hits shared by several tracks.
Definition: TrackingPrimitives.h:240
xAOD::SiSPSeededFinder
@ SiSPSeededFinder
Tracks from SiSPSeedFinder.
Definition: TrackingPrimitives.h:86
MagField::AtlasFieldCache::getField
void getField(const double *ATH_RESTRICT xyz, double *ATH_RESTRICT bxyz, double *ATH_RESTRICT deriv=nullptr)
get B field value at given position xyz[3] is in mm, bxyz[3] is in kT if deriv[9] is given,...
Definition: AtlasFieldCache.cxx:42
ActsTrk::TrackToTrackParticleCnvAlg::m_propagator
std::unique_ptr< Propagator > m_propagator
Definition: TrackToTrackParticleCnvAlg.h:116
xAOD::numberOfContribPixelLayers
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector [unit8_t].
Definition: TrackingPrimitives.h:231
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:269
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MSTrackingVolumeBuilder.cxx:25
xAOD::numberOfPixelEndcapHits
@ numberOfPixelEndcapHits
these are the pixel hits, in the endcap layers [unit8_t].
Definition: TrackingPrimitives.h:314
ActsTrk::TrackToTrackParticleCnvAlg::m_tracksContainerKey
SG::ReadHandleKeyArray< ActsTrk::TrackContainer > m_tracksContainerKey
Definition: TrackToTrackParticleCnvAlg.h:79
ActsTrk::TrackToTrackParticleCnvAlg::m_paramExtrapolationParLimit
Gaudi::Property< double > m_paramExtrapolationParLimit
Definition: TrackToTrackParticleCnvAlg.h:99
ActsTrk::TrackToTrackParticleCnvAlg::expressionStrategy::BeamLine
@ BeamLine
ActsTrk::detail::ExpectedLayerPatternHelper::get
static std::array< unsigned int, 4 > get(const track_proxy_t &track)
Definition: ExpectedHitUtils.h:63
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
ActsTrk::TrackToTrackParticleCnvAlg::m_extrapolationTool
ToolHandle< IActsExtrapolationTool > m_extrapolationTool
Definition: TrackToTrackParticleCnvAlg.h:73
ActsTrk::detail::HitCategory::Hole
@ Hole
Definition: HitSummaryDataUtils.h:31
ActsTrk::detail::HitSummaryData::pixelTotal
@ pixelTotal
Definition: HitSummaryDataUtils.h:49
ActsTrk::TrackToTrackParticleCnvAlg::m_vertexHandle
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexHandle
Definition: TrackToTrackParticleCnvAlg.h:91
ActsTrk::TrackToTrackParticleCnvAlg::m_siDetEleCollToMeasurementType
Gaudi::Property< std::vector< unsigned int > > m_siDetEleCollToMeasurementType
Definition: TrackToTrackParticleCnvAlg.h:88
TrackToTrackParticleCnvAlg.h
Logger.h
ActsTrk::TrackToTrackParticleCnvAlg::ATLAS_THREAD_SAFE
static std::vector< std::pair< Acts::PdgParticle, xAOD::ParticleHypothesis > > s_actsHypothesisToxAOD ATLAS_THREAD_SAFE
Definition: TrackToTrackParticleCnvAlg.h:118
ActsTrk::detail::HitSummaryData::DetectorRegion
DetectorRegion
Regions for which hit counts are computed.
Definition: HitSummaryDataUtils.h:42
ActsTrk::TrackToTrackParticleCnvAlg::m_siDetEleCollKey
SG::ReadCondHandleKeyArray< InDetDD::SiDetectorElementCollection > m_siDetEleCollKey
Definition: TrackToTrackParticleCnvAlg.h:86
xAOD::numberOfNextToInnermostPixelLayerSharedHits
@ numberOfNextToInnermostPixelLayerSharedHits
number of Pixel 1st layer barrel hits shared by several tracks.
Definition: TrackingPrimitives.h:251
ExpectedHitUtils.h
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
Decorator.h
Helper class to provide type-safe access to aux data.
xAOD::TrackParticle_v1::setBeamlineTiltX
void setBeamlineTiltX(float tiltX)
python.iconfTool.gui.pad.logger
logger
Definition: pad.py:14
ActsTrk::TrackToTrackParticleCnvAlg::expressionStrategy::DontRecalculate
@ DontRecalculate
ActsTrk::TrackToTrackParticleCnvAlg::convertParticleHypothesis
static xAOD::ParticleHypothesis convertParticleHypothesis(Acts::PdgParticle abs_pdg_id)
Definition: TrackToTrackParticleCnvAlg.h:125
xAOD::UncalibMeasType::PixelClusterType
@ PixelClusterType
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:238
InDet::BeamSpotData::beamTilt
float beamTilt(int i) const noexcept
Returns the beam sigma for the i+3-th error matrix element (the 'tilt')
Definition: BeamSpotData.h:74
xAOD::TrackParticle_v1::setPatternRecognitionInfo
void setPatternRecognitionInfo(const std::bitset< xAOD::NumberOfTrackRecoInfo > &patternReco)
Method setting the pattern recognition algorithm, using a bitset.
Definition: TrackParticle_v1.cxx:719
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
SG::ReadCondHandle::cptr
const_pointer_type cptr()
Definition: ReadCondHandle.h:71
ActsTrk::TrackToTrackParticleCnvAlg::TrackToTrackParticleCnvAlg
TrackToTrackParticleCnvAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TrackToTrackParticleCnvAlg.cxx:124