ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | List of all members
MeasurementSelectorWithDispatch< NMeasMax, derived_t, measurement_container_variant_t > Struct Template Reference

#include <MeasurementSelector.h>

Inheritance diagram for MeasurementSelectorWithDispatch< NMeasMax, derived_t, measurement_container_variant_t >:
Collaboration diagram for MeasurementSelectorWithDispatch< NMeasMax, derived_t, measurement_container_variant_t >:

Public Types

using Base = MeasurementSelectorBase< NMeasMax, MeasurementSelectorTraits< derived_t >::s_dimMax, derived_t >
 
using T_BoundState = typename Base::T_BoundState
 
using trajectory_t = typename Base::trajectory_t
 
using TrackStateProxy = typename Base::TrackStateProxy
 
using Config = Acts::GeometryHierarchyMap< AtlasMeasurementSelectorCuts >
 
using traits = MeasurementSelectorTraits< derived_t >
 

Public Member Functions

template<typename source_link_iterator_t >
Acts::Result< boost::container::small_vector< typename TrackStateProxy::IndexType, s_maxBranchesPerSurface > > createSourceLinkTrackStates (const Acts::GeometryContext &geometryContext, const Acts::CalibrationContext &calibrationContext, const Acts::Surface &surface, const T_BoundState &boundState, source_link_iterator_t sourceLinkBegin, source_link_iterator_t sourceLinkEnd, typename TrackStateProxy::IndexType prevTip, [[maybe_unused]] trajectory_t &trajectory_buffer, [[maybe_unused]] std::vector< TrackStateProxy > &trackStateCandidates, trajectory_t &trajectory, const Acts::Logger &logger) const
 
std::tuple< std::size_t, std::pair< float, float > > getCuts (const Acts::Surface &surface, const T_BoundState &boundState, const Acts::Logger &logger) const
 

Static Public Member Functions

static constexpr std::size_t dimMax ()
 

Public Attributes

Config m_config
 

Static Public Attributes

static constexpr std::size_t s_maxBranchesPerSurface = Base::s_maxBranchesPerSurface
 

Protected Member Functions

const derived_t & derived () const
 
Acts::Result< boost::container::small_vector< typename TrackStateProxy::IndexType, s_maxBranchesPerSurface > > selectMeasurementsCreateTrackStates (const Acts::GeometryContext &geometryContext, const Acts::CalibrationContext &calibrationContext, const Acts::Surface &surface, const T_BoundState &boundState, const source_link_iterator_t &sourceLinkBegin, const source_link_iterator_t &sourceLinkEnd, std::size_t prevTip, trajectory_t &trajectory, const Acts::Logger &logger, const std::size_t numMeasurementsCut, const std::pair< float, float > &maxChi2Cut, const T_Container &container) const
 

Static Protected Member Functions

static void createStates (std::size_t n_new_states, const T_BoundState &boundState, std::size_t prevTip, trajectory_t &trajectory, const Acts::BoundSubspaceIndices &subspaceIndices, boost::container::small_vector< typename TrackStateProxy::IndexType, s_maxBranchesPerSurface > &track_states, const Acts::Logger &logger, bool outlier_states)
 
static std::size_t getEtaBin (const parameters_t &boundParameters, const std::vector< float > &etaBins)
 

Detailed Description

template<std::size_t NMeasMax, typename derived_t, typename measurement_container_variant_t>
struct MeasurementSelectorWithDispatch< NMeasMax, derived_t, measurement_container_variant_t >

Definition at line 715 of file MeasurementSelector.h.

Member Typedef Documentation

◆ Base

template<std::size_t NMeasMax, typename derived_t , typename measurement_container_variant_t >
using MeasurementSelectorWithDispatch< NMeasMax, derived_t, measurement_container_variant_t >::Base = MeasurementSelectorBase< NMeasMax, MeasurementSelectorTraits<derived_t>::s_dimMax, derived_t>

Definition at line 717 of file MeasurementSelector.h.

◆ Config

using MeasurementSelectorBase< NMeasMax, DIMMAX, derived_t >::Config = Acts::GeometryHierarchyMap<AtlasMeasurementSelectorCuts>
inherited

Definition at line 302 of file MeasurementSelector.h.

◆ T_BoundState

template<std::size_t NMeasMax, typename derived_t , typename measurement_container_variant_t >
using MeasurementSelectorWithDispatch< NMeasMax, derived_t, measurement_container_variant_t >::T_BoundState = typename Base::T_BoundState

Definition at line 718 of file MeasurementSelector.h.

◆ TrackStateProxy

template<std::size_t NMeasMax, typename derived_t , typename measurement_container_variant_t >
using MeasurementSelectorWithDispatch< NMeasMax, derived_t, measurement_container_variant_t >::TrackStateProxy = typename Base::TrackStateProxy

Definition at line 720 of file MeasurementSelector.h.

◆ traits

using MeasurementSelectorBase< NMeasMax, DIMMAX, derived_t >::traits = MeasurementSelectorTraits<derived_t>
inherited

Definition at line 303 of file MeasurementSelector.h.

◆ trajectory_t

template<std::size_t NMeasMax, typename derived_t , typename measurement_container_variant_t >
using MeasurementSelectorWithDispatch< NMeasMax, derived_t, measurement_container_variant_t >::trajectory_t = typename Base::trajectory_t

Definition at line 719 of file MeasurementSelector.h.

Member Function Documentation

◆ createSourceLinkTrackStates()

template<std::size_t NMeasMax, typename derived_t , typename measurement_container_variant_t >
template<typename source_link_iterator_t >
Acts::Result<boost::container::small_vector< typename TrackStateProxy::IndexType, s_maxBranchesPerSurface> > MeasurementSelectorWithDispatch< NMeasMax, derived_t, measurement_container_variant_t >::createSourceLinkTrackStates ( const Acts::GeometryContext &  geometryContext,
const Acts::CalibrationContext &  calibrationContext,
const Acts::Surface &  surface,
const T_BoundState boundState,
source_link_iterator_t  sourceLinkBegin,
source_link_iterator_t  sourceLinkEnd,
typename TrackStateProxy::IndexType  prevTip,
[[maybe_unused] ] trajectory_t trajectory_buffer,
[[maybe_unused] ] std::vector< TrackStateProxy > &  trackStateCandidates,
trajectory_t trajectory,
const Acts::Logger &  logger 
) const
inline

Definition at line 730 of file MeasurementSelector.h.

740  {
741  Acts::Result<boost::container::small_vector< typename TrackStateProxy::IndexType, s_maxBranchesPerSurface> >
742  result = Acts::CombinatorialKalmanFilterError::MeasurementSelectionFailed;
743  if (sourceLinkBegin != sourceLinkEnd) {
744  auto [numMeasurementsCut, maxChi2Cut] = this->getCuts(surface,boundState, logger);
745  // numMeasurementsCut is == 0 in case getCuts failed
746  // anyway cannot select anything if numMeasurementsCut==0;
747  if (numMeasurementsCut>0) {
748  const std::vector<measurement_container_variant_t> &
749  measurementContainer = sourceLinkBegin.m_iterator.measurementContainerList();
750 
751  assert( sourceLinkBegin.m_iterator.containerIndex() == sourceLinkEnd.m_iterator.containerIndex() );
752  const measurement_container_variant_t &a_measurement_container_variant = measurementContainer.at(sourceLinkBegin.m_iterator.containerIndex());
753  result = std::visit( [this,
754  &geometryContext,
755  &calibrationContext,
756  &surface,
757  &boundState,
758  &sourceLinkBegin,
759  &sourceLinkEnd,
760  prevTip,
761  &trajectory,
762  &logger,
763  numMeasurementsCut,
764  &maxChi2Cut] (const auto &measurement_container_with_dimension) {
765  using ArgType = std::remove_cv_t<std::remove_reference_t< decltype(measurement_container_with_dimension) > >;
766  constexpr std::size_t DIM = ArgType::dimension();
767  return this->template selectMeasurementsCreateTrackStates<DIM>(geometryContext,
768  calibrationContext,
769  surface,
770  boundState,
771  sourceLinkBegin,
772  sourceLinkEnd,
773  prevTip,
774  trajectory,
775  logger,
776  numMeasurementsCut,
777  maxChi2Cut,
778  measurement_container_with_dimension.container());
779  },
780  a_measurement_container_variant);
781  }
782  }
783  return result;
784  }

◆ createStates()

static void MeasurementSelectorBase< NMeasMax, DIMMAX, derived_t >::createStates ( std::size_t  n_new_states,
const T_BoundState boundState,
std::size_t  prevTip,
trajectory_t trajectory,
const Acts::BoundSubspaceIndices &  subspaceIndices,
boost::container::small_vector< typename TrackStateProxy::IndexType, s_maxBranchesPerSurface > &  track_states,
const Acts::Logger &  logger,
bool  outlier_states 
)
inlinestaticprotectedinherited

Definition at line 339 of file MeasurementSelector.h.

346  {
347  // create track states for all compatible measurement candidates
348  const auto &boundParams = derived_t::boundParams(boundState);
349  const auto &pathLength = derived_t::pathLength(boundState);
350 
351  using PM = Acts::TrackStatePropMask;
352 
353  track_states.reserve( n_new_states );
354  std::optional<TrackStateProxy> firstTrackState{
355  std::nullopt};
356  for (unsigned int state_i=0; state_i<n_new_states; ++state_i) {
357  PM mask = PM::Predicted | PM::Filtered | PM::Jacobian | PM::Calibrated;
358 
359  if (firstTrackState.has_value()) {
360  // subsequent track states don't need storage for these as they will
361  // be shared
362  mask &= ~PM::Predicted & ~PM::Jacobian;
363  }
364 
365  if (outlier_states) {
366  // outlier won't have separate filtered parameters
367  mask &= ~PM::Filtered;
368  }
369 
370  TrackStateProxy trackState = trajectory.makeTrackState(mask, prevTip);
371  ACTS_VERBOSE("Create SourceLink output track state #"
372  << trackState.index() << " with mask: " << mask);
373 
374  if (firstTrackState.has_value()) {
375  trackState.shareFrom(*firstTrackState, PM::Predicted);
376  trackState.shareFrom(*firstTrackState, PM::Jacobian);
377  }
378  else {
379  // only set these for first
380  trackState.predicted() = boundParams.parameters();
381  if (boundParams.covariance()) {
382  trackState.predictedCovariance() = *boundParams.covariance();
383  }
384  trackState.jacobian() = derived_t::boundJacobiMatrix(boundState);
385  firstTrackState = trackState;
386  }
387  trackState.pathLength() = pathLength;
388 
389  trackState.setReferenceSurface(boundParams.referenceSurface().getSharedPtr());
390 
391  trackState.setBoundSubspaceIndices(subspaceIndices);
392 
393  Acts::TrackStateType typeFlags = trackState.typeFlags();
394  if (trackState.referenceSurface().surfaceMaterial() != nullptr) {
395  typeFlags.set(Acts::TrackStateFlag::MaterialFlag);
396  }
397  typeFlags.set(Acts::TrackStateFlag::ParameterFlag);
398 
399  // @TODO these track states still need some additional processing. Should there be a special
400  // flag for this ?
401  track_states.push_back( trackState.index());
402  }
403  }

◆ derived()

const derived_t& MeasurementSelectorBase< NMeasMax, DIMMAX, derived_t >::derived ( ) const
inlineprotectedinherited

Definition at line 313 of file MeasurementSelector.h.

313 { return *static_cast<const derived_t *>(this); }

◆ dimMax()

template<std::size_t NMeasMax, typename derived_t , typename measurement_container_variant_t >
static constexpr std::size_t MeasurementSelectorWithDispatch< NMeasMax, derived_t, measurement_container_variant_t >::dimMax ( )
inlinestaticconstexpr

Definition at line 724 of file MeasurementSelector.h.

724  {
726  }

◆ getCuts()

std::tuple< std::size_t, std::pair<float,float> > MeasurementSelectorBase< NMeasMax, DIMMAX, derived_t >::getCuts ( const Acts::Surface &  surface,
const T_BoundState boundState,
const Acts::Logger &  logger 
) const
inlineinherited

Definition at line 668 of file MeasurementSelector.h.

670  {
671  std::tuple< std::size_t, std::pair<float,float> > result;
672  std::size_t &numMeasurementsCut = std::get<0>(result);
673  std::pair<float,float> &maxChi2Cut = std::get<1>(result);
674  // Get geoID of this surface
675  auto geoID = surface.geometryId();
676  // Find the appropriate cuts
677  auto cuts = m_config.find(geoID);
678  if (cuts == m_config.end()) {
679  // indicats failure
680  numMeasurementsCut = 0;
681  }
682  else {
683  // num measurement Cut
684  // getchi2 cut
685  std::size_t eta_bin = getEtaBin(derived().boundParams(boundState), cuts->etaBins);
686  numMeasurementsCut = (!cuts->numMeasurementsCutOff.empty()
687  ? cuts->numMeasurementsCutOff[ std::min(cuts->numMeasurementsCutOff.size()-1, eta_bin) ]
688  : NMeasMax);
689  maxChi2Cut = ! cuts->chi2CutOff.empty()
690  ? cuts->chi2CutOff[ std::min(cuts->chi2CutOff.size()-1, eta_bin) ]
691  : std::make_pair<float,float>(std::numeric_limits<float>::max(),
693  ACTS_VERBOSE("Get cut for eta-bin="
694  << (eta_bin < cuts->etaBins.size() ? cuts->etaBins[eta_bin] : std::numeric_limits<float>::max())
695  << ": chi2 (max,max-outlier) " << maxChi2Cut.first << ", " << maxChi2Cut.second
696  << " max.meas." << numMeasurementsCut);
697  }
698  return result;
699  }

◆ getEtaBin()

static std::size_t MeasurementSelectorBase< NMeasMax, DIMMAX, derived_t >::getEtaBin ( const parameters_t &  boundParameters,
const std::vector< float > &  etaBins 
)
inlinestaticprotectedinherited

Definition at line 649 of file MeasurementSelector.h.

650  {
651  if (etaBins.empty()) {
652  return 0u; // shortcut if no etaBins
653  }
654  const float eta = std::abs(std::atanh(std::cos(boundParameters.parameters()[Acts::eBoundTheta])));
655  std::size_t bin = 0;
656  for (auto etaBin : etaBins) {
657  if (etaBin >= eta) {
658  break;
659  }
660  bin++;
661  }
662  return bin;
663  }

◆ selectMeasurementsCreateTrackStates()

Acts::Result<boost::container::small_vector< typename TrackStateProxy::IndexType, s_maxBranchesPerSurface> > MeasurementSelectorBase< NMeasMax, DIMMAX, derived_t >::selectMeasurementsCreateTrackStates ( const Acts::GeometryContext &  geometryContext,
const Acts::CalibrationContext &  calibrationContext,
const Acts::Surface &  surface,
const T_BoundState boundState,
const source_link_iterator_t &  sourceLinkBegin,
const source_link_iterator_t &  sourceLinkEnd,
std::size_t  prevTip,
trajectory_t trajectory,
const Acts::Logger &  logger,
const std::size_t  numMeasurementsCut,
const std::pair< float, float > &  maxChi2Cut,
const T_Container &  container 
) const
inlineprotectedinherited

Definition at line 449 of file MeasurementSelector.h.

460  {
461  Acts::Result<boost::container::small_vector< typename TrackStateProxy::IndexType, s_maxBranchesPerSurface> >
462  result = boost::container::small_vector< typename TrackStateProxy::IndexType, s_maxBranchesPerSurface>{};
463  using container_value_t = typename MeasurementSelectorTraits<derived_t>::template MeasurementContainerTraits<T_Container>::value_type;
464  using BaseElementType = std::remove_cv_t<std::remove_pointer_t< container_value_t > >;
465  // get calibrator
466  using TheMatchingMeasurement = MatchingMeasurement<DIM, container_value_t >;
467  using MeasCovPair = TheMatchingMeasurement::MeasCovPair;
468 
469  using Predicted = typename MeasurementSelectorTraits<derived_t>::template Predicted<DIM>;
470  using PredictedCovariance = typename MeasurementSelectorTraits<derived_t>::template PredictedCovariance<DIM>;
471 
472 
473 
474  // get prediction in the measurement domain
475  Acts::SubspaceIndices<DIM> parameter_map = derived().template parameterMap<DIM>(geometryContext,
476  calibrationContext,
477  surface);
478  auto predicted
479  = std::make_pair( project<DIM, Predicted>(parameter_map,
480  derived().boundParams(boundState).parameters()),
481  project<DIM, PredictedCovariance>(parameter_map,
482  derived().boundParams(boundState).covariance().value()));
483 
484  // select n measurents with the smallest chi2.
485  auto preCalibrator = derived().template preCalibrator<DIM, BaseElementType>();
486  TopCollection<NMeasMax, TheMatchingMeasurement > selected_measurements(numMeasurementsCut);
487  {
488  for ( const auto &measurement : MeasurementRange<T_Container>(container, sourceLinkBegin, sourceLinkEnd) ) {
489  TheMatchingMeasurement &matching_measurement=selected_measurements.slot();
490  matching_measurement.m_measurement = preCalibrator(geometryContext,
491  calibrationContext,
492  derived().template forwardToCalibrator(measurement),
493  derived().boundParams(boundState));
494  matching_measurement.m_chi2 = computeChi2(matching_measurement.m_measurement.first,
495  matching_measurement.m_measurement.second,
496  predicted.first,
497  predicted.second);
498  // only consider measurements which pass the outlier chi2 cut
499  if (matching_measurement.m_chi2<maxChi2Cut.second) {
500  matching_measurement.m_sourceLink=measurement;
501  selected_measurements.acceptAndSort([](const TheMatchingMeasurement &a,
502  const TheMatchingMeasurement &b) {
503  return a.m_chi2 < b.m_chi2;
504  });
505  }
506  }
507  }
508 
509  // apply final calibration to n-best measurements
510  auto postCalibrator = derived().template postCalibrator<DIM, BaseElementType>();
511  using post_calib_meas_cov_pair_t
513  typename MeasurementSelectorTraits<derived_t>::template CalibratedMeasurementCovariance<DIM> >;
514 
515  // need extra temporary buffer if the types to store "measurements" during measurement selection
516  // and calibrated measurements after the measurement selection are not identical
517  static constexpr bool pre_and_post_calib_types_agree
519  typename MeasurementSelectorTraits<derived_t>::template PreSelectionMeasurement<DIM> >::value
520  && std::is_same< typename MeasurementSelectorTraits<derived_t>::template CalibratedMeasurementCovariance<DIM>,
521  typename MeasurementSelectorTraits<derived_t>::template PreSelectionMeasurementCovariance<DIM> >::value;
522 
523  using Empty = struct {};
524  typename std::conditional< !pre_and_post_calib_types_agree,
525  std::array< post_calib_meas_cov_pair_t, NMeasMax>, // @TODO could use boost static_vector instead
526  Empty>::type calibrated;
527  if (postCalibrator) {
529 
530  // apply final calibration, recompute chi2
532  idx: selected_measurements) {
533  TheMatchingMeasurement &a_selected_measurement = selected_measurements.getSlot(idx);
534 
535  // helper to select the destination storage which is the extra temporary buffer
536  // if the measurement storage types during and after selection are different.
537  post_calib_meas_cov_pair_t &calibrated_measurement
538  = [&calibrated, &a_selected_measurement, calibrated_meas_cov_i]() -> post_calib_meas_cov_pair_t & {
539  if constexpr(pre_and_post_calib_types_agree) {
540  (void) calibrated;
541  (void) calibrated_meas_cov_i;
542  return a_selected_measurement.m_measurement;
543  }
544  else {
545  (void) a_selected_measurement;
546  assert(calibrated_meas_cov_i < calibrated.size());
547  return calibrated[calibrated_meas_cov_i];
548  }
549  }();
550 
551  // apply the calibration
552  calibrated_measurement = postCalibrator(geometryContext,
553  calibrationContext,
554  derived().template forwardToCalibrator(a_selected_measurement.m_sourceLink.value()),
555  derived().boundParams(boundState));
556  // update chi2 using calibrated measurement
557  a_selected_measurement.m_chi2 = computeChi2(calibrated_measurement.first,
558  calibrated_measurement.second,
559  predicted.first,
560  predicted.second);
561  // ... and set outlier flag
562  a_selected_measurement.m_isOutLier = (a_selected_measurement.m_chi2 >= maxChi2Cut.first);
563  if constexpr(!pre_and_post_calib_types_agree) {
564  ++calibrated_meas_cov_i;
565  }
566  }
567  }
568  else {
569  // if no final calibration is performed only the outlier flag still needs to be set
571  idx: selected_measurements) {
572  TheMatchingMeasurement &a_selected_measurement = selected_measurements.getSlot(idx);
573  a_selected_measurement.m_isOutLier = (a_selected_measurement.m_chi2 >= maxChi2Cut.first);
574  }
575  }
576 
577  // First Create states without setting information about the calibrated measurement for the selected measurements
578  // @TODO first create state then copy measurements, or crete state by state and set measurements ?
579  // the lastter has the "advantage" that the outlier flag can be set individually
580  // the former has the advantage that part of the state creation code is independent of the
581  // the measurement.
582 
583  Acts::BoundSubspaceIndices boundSubspaceIndices;
584  std::copy(parameter_map.begin(), parameter_map.end(), boundSubspaceIndices.begin());
585  createStates( selected_measurements.size(),
586  boundState,
587  prevTip,
588  trajectory,
589  boundSubspaceIndices,
590  *result,
591  logger,
592  (!selected_measurements.empty()
593  ? selected_measurements.getSlot( *(selected_measurements.begin())).m_isOutLier
594  : false) );
595  assert( result->size() == selected_measurements.size() );
596 
597  // helper to determine whether calibrated storeage is to be used
598  auto use_calibrated_storage = [&postCalibrator]() -> bool {
599  if constexpr(pre_and_post_calib_types_agree) {
600  (void) postCalibrator;
601  return false;
602  }
603  else {
604  // this is only known during runtime
605  // but it should not be tested if the types agree.
606  return postCalibrator;
607  }
608  };
609 
610  // copy selected measurements to pre-created states
611  unsigned int state_i=0;
613  idx: selected_measurements) {
614  assert( state_i < result->size());
615  TrackStateProxy trackState( trajectory.getTrackState( (*result)[state_i] ) );
616  TheMatchingMeasurement &a_selected_measurement = selected_measurements.getSlot(idx);
617  trackState.setUncalibratedSourceLink(derived().makeSourceLink(std::move(a_selected_measurement.m_sourceLink.value())));
618  // flag outliers accordingly, so that they are handled correctly by the post processing
619  trackState.typeFlags().set( a_selected_measurement.m_isOutLier
620  ? Acts::TrackStateFlag::OutlierFlag
621  : Acts::TrackStateFlag::MeasurementFlag );
622  trackState.allocateCalibrated(DIM);
623  if (use_calibrated_storage()) {
624  // if the final clibration is performed after the selection then
625  // copy these measurements and covariances to the track states
626  assert( use_calibrated_storage() == !pre_and_post_calib_types_agree);
627  if constexpr(!pre_and_post_calib_types_agree) {
628  assert( state_i < calibrated.size());
629  trackState.template calibrated<DIM>()
630  = MeasurementSelectorMatrixTraits::matrixTypeCast<typename MeasurementSelectorTraits<derived_t>::MatrixFloatType>(calibrated[state_i].first);
631  trackState.template calibratedCovariance<DIM>()
632  = MeasurementSelectorMatrixTraits::matrixTypeCast<typename MeasurementSelectorTraits<derived_t>::MatrixFloatType>(calibrated[state_i].second);
633  trackState.chi2() = a_selected_measurement.m_chi2;
634  }
635  }
636  else {
637  trackState.template calibrated<DIM>()
638  = MeasurementSelectorMatrixTraits::matrixTypeCast<typename MeasurementSelectorTraits<derived_t>::MatrixFloatType>(a_selected_measurement.m_measurement.first);
639  trackState.template calibratedCovariance<DIM>()
640  = MeasurementSelectorMatrixTraits::matrixTypeCast<typename MeasurementSelectorTraits<derived_t>::MatrixFloatType>(a_selected_measurement.m_measurement.second);
641  trackState.chi2() = a_selected_measurement.m_chi2;
642  }
643  ++state_i;
644  }
645  return result;
646  }

Member Data Documentation

◆ m_config

Config MeasurementSelectorBase< NMeasMax, DIMMAX, derived_t >::m_config
inherited

Definition at line 305 of file MeasurementSelector.h.

◆ s_maxBranchesPerSurface

template<std::size_t NMeasMax, typename derived_t , typename measurement_container_variant_t >
constexpr std::size_t MeasurementSelectorWithDispatch< NMeasMax, derived_t, measurement_container_variant_t >::s_maxBranchesPerSurface = Base::s_maxBranchesPerSurface
staticconstexpr

Definition at line 721 of file MeasurementSelector.h.


The documentation for this struct was generated from the following file:
MeasurementSelectorBase< NMeasMax, MeasurementSelectorTraits< derived_t >::s_dimMax, derived_t >::TrackStateProxy
typename MeasurementSelectorTraits< derived_t >::TrackStateProxy TrackStateProxy
Definition: MeasurementSelector.h:310
get_generator_info.result
result
Definition: get_generator_info.py:21
max
#define max(a, b)
Definition: cfImp.cxx:41
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
ConvertOldUJHistosToNewHistos.etaBins
list etaBins
Definition: ConvertOldUJHistosToNewHistos.py:145
taskman.template
dictionary template
Definition: taskman.py:317
bin
Definition: BinsDiffFromStripMedian.h:43
MeasurementSelectorBase< NMeasMax, MeasurementSelectorTraits< derived_t >::s_dimMax, derived_t >::getCuts
std::tuple< std::size_t, std::pair< float, float > > getCuts(const Acts::Surface &surface, const T_BoundState &boundState, const Acts::Logger &logger) const
Definition: MeasurementSelector.h:668
athena.value
value
Definition: athena.py:124
TopCollection::IndexType
unsigned short IndexType
Definition: MeasurementSelector.h:213
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:77
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
MeasurementSelectorBase< NMeasMax, MeasurementSelectorTraits< derived_t >::s_dimMax, derived_t >::derived
const derived_t & derived() const
Definition: MeasurementSelector.h:313
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
xAOD::etaBin
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap etaBin
Definition: L2StandAloneMuon_v1.cxx:148
MeasurementSelectorBase< NMeasMax, MeasurementSelectorTraits< derived_t >::s_dimMax, derived_t >::createStates
static void createStates(std::size_t n_new_states, const T_BoundState &boundState, std::size_t prevTip, trajectory_t &trajectory, const Acts::BoundSubspaceIndices &subspaceIndices, boost::container::small_vector< typename TrackStateProxy::IndexType, s_maxBranchesPerSurface > &track_states, const Acts::Logger &logger, bool outlier_states)
Definition: MeasurementSelector.h:339
plotBeamSpotVert.cuts
string cuts
Definition: plotBeamSpotVert.py:93
TopCollection::begin
std::array< IndexType, N+1 >::const_iterator begin()
Definition: MeasurementSelector.h:271
TopCollection::getSlot
const PayloadType & getSlot(IndexType idx) const
Definition: MeasurementSelector.h:235
min
#define min(a, b)
Definition: cfImp.cxx:40
doL1CaloHVCorrections.eta_bin
eta_bin
Definition: doL1CaloHVCorrections.py:368
TopCollection::size
IndexType size() const
Definition: MeasurementSelector.h:268
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
plotBeamSpotVxVal.bin
int bin
Definition: plotBeamSpotVxVal.py:83
MeasurementSelectorBase< NMeasMax, MeasurementSelectorTraits< derived_t >::s_dimMax, derived_t >::getEtaBin
static std::size_t getEtaBin(const parameters_t &boundParameters, const std::vector< float > &etaBins)
Definition: MeasurementSelector.h:649
MeasurementSelectorTraits
Definition: MeasurementSelector.h:44
a
TList * a
Definition: liststreamerinfos.cxx:10
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
calibdata.copy
bool copy
Definition: calibdata.py:27
computeChi2
double computeChi2(const measurement_vector_t &a, const measurement_cov_matrix_t &a_cov, const predicted_vector_t &b, const predicted_cov_matrix_t &b_cov)
Definition: MeasurementSelector.h:181
TopCollection
Definition: MeasurementSelector.h:212
Trk::TrackState::TrackStateType
TrackStateType
enum describing the role of track states during cleaning and outlier removal.
Definition: TrackStateDefs.h:51
MeasurementSelectorBase< NMeasMax, MeasurementSelectorTraits< derived_t >::s_dimMax, derived_t >::m_config
Config m_config
Definition: MeasurementSelector.h:305
python.iconfTool.gui.pad.logger
logger
Definition: pad.py:14
TopCollection::empty
bool empty() const
Definition: MeasurementSelector.h:264