ATLAS Offline Software
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
ActsTrk Namespace Reference

The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout geometry to cache the final transformations of the sensor surfaces associated to one particular detector technology (Pixel, Sct, etc.). More...

Namespaces

 Cache
 
 detail
 
 details
 
 FitterHelperFunctions
 
 HitCategory
 
 ParticleHypothesis
 

Classes

class  ActsToTrkConverterTool
 
class  ActsToTrkConvertorAlg
 
class  AdaptiveMultiPriVtxFinderTool
 
class  AlignStoreProviderAlg
 
class  AmbiguityResolutionAlg
 
class  AnalogueClusteringToolImpl
 
struct  ATLASSourceLinkSurfaceAccessor
 
struct  ATLASUncalibSourceLinkSurfaceAccessor
 
class  CaloBasedRoICreatorTool
 
class  ClusterizationAlg
 
class  ConstTrackContainerHandlesHelper
 
class  CoreStripSpacePointFormationTool
 
struct  DataLinkHolder
 
class  DataPreparationAlg
 
class  DetectorAlignCondAlg
 
class  DetectorAlignStore
 
class  DetectorVolumeSvc
 
class  DummyRDOList
 
class  EstimatedTrackParamsAnalysisAlg
 
class  FullScanRoICreatorTool
 
class  GaussianSumFitter
 
class  GeometryContextAlg
 
struct  has_rdoList
 
struct  has_rdoList< Object, std::void_t< rdoListFunc_t< Object > > >
 
class  HgtdClusterAnalysisAlg
 
class  HgtdClusterValidationPlots
 
class  HitCounterArray
 
class  HitCountsPerTrack
 Container for hit counts per track Contains hit counts per associated truth particle and the total hit counts As last element in the container. More...
 
class  HitSummaryData
 Helper class to gather hit summary information for e.g. More...
 
class  IActsToTrkConverterTool
 
class  IDetectorElement
 
class  IDetectorVolumeBuilderTool
 
class  IDetectorVolumeSvc
 Interface of the service providing the Acts::Detector which implements the navigation delegate paradigm and eventually replace the legacy tracking geometry. More...
 
class  IFitterTool
 
class  IOnTrackCalibratorTool
 
class  IPixelClusteringTool
 
class  IPixelSpacePointFormationTool
 
class  IProtoTrackCreatorTool
 
class  IRoICreatorTool
 
class  ISeedingTool
 
class  IStripClusteringTool
 
class  IStripSpacePointFormationTool
 
class  IterativePriVtxFinderTool
 
class  ITkAnalogueClusteringTool
 
class  ITrackParamsEstimationTool
 
class  KalmanFitter
 
class  MeasurementCalibratorBase
 
class  MeasurementToTruthAssociationAlg
 Algorithm template to associate measurements of a certain type to a xAOD truth particles using a sim data collection where the sim data collection contains associates RDOs to truth particles and there energy/charge disposition. More...
 
class  MultiTrajectory
 Read only version of MTJ The implementation is separate as the details are significantly different and in addition only const methods are ever needed. More...
 
class  MuonDetectorBuilderTool
 
class  MutableMultiTrajectory
 Athena implementation of ACTS::MultiTrajectory (ReadWrite version) The data is stored in 4 external backends. More...
 
struct  MutableTrackContainer
 
class  MutableTrackContainerHandlesHelper
 
class  MutableTrackSummaryContainer
 
class  NoDeletePtr
 
class  OnTrackCalibrator
 
class  OrthogonalSeedingTool
 
class  PhysValTool
 
class  PixelCacheClusterizationAlg
 
class  PixelCacheSpacePointFormationAlg
 
class  PixelClusterAnalysisAlg
 
class  PixelClusterCacheDataPreparationAlg
 
class  PixelClusterDataPreparationAlg
 
class  PixelClusteringTool
 
class  PixelClusterizationAlg
 
class  PixelClusterToTruthAssociationAlg
 
class  PixelClusterValidationPlots
 
class  PixelSpacePointFormationAlg
 
class  PixelSpacePointFormationAlgBase
 
class  PixelSpacePointFormationTool
 
class  PixelSpacePointValidationPlots
 
struct  PRDSourceLink
 
struct  PRDSourceLinkCalibrator
 
struct  PRDSourceLinkSurfaceAccessor
 
struct  ProtoTrack
 
class  ProtoTrackCreationAndFitAlg
 
class  ProtoTrackReportingAlg
 Very lightweight algorithm to print out the results of the EF track finding. More...
 
class  RandomProtoTrackCreator
 
class  ReFitterAlg
 
class  RegionsOfInterestCreatorAlg
 
class  SeedAnalysisAlg
 
class  SeedingAlg
 
class  SeedingAlgorithmAnalysisAlg
 
class  SeedingTool
 
class  SimpleCylinderDetBuilderTool
 
class  SiSpacePointsSeedMaker
 
class  SpacePointAnalysisAlg
 
class  SpacePointCacheDataPreparationAlg
 
class  SpacePointDataPreparationAlg
 
class  SpacePointReader
 
class  StripCacheClusterizationAlg
 
class  StripCacheSpacePointFormationAlg
 
class  StripClusterAnalysisAlg
 
class  StripClusterCacheDataPreparationAlg
 
class  StripClusterDataPreparationAlg
 
class  StripClusteringTool
 
class  StripClusterizationAlg
 
class  StripClusterToTruthAssociationAlg
 
class  StripClusterValidationPlots
 
class  StripInformationHelper
 
struct  StripSP
 
class  StripSpacePointFormationAlg
 
class  StripSpacePointFormationAlgBase
 
class  StripSpacePointFormationTool
 
class  StripSpacePointValidationPlots
 
class  SumOfValues
 Helper class to gather statistics and compute the biased variance. More...
 
class  SurfaceBoundSet
 
class  SurfaceCache
 : Helper class to connect the aligned transformations of each active sensor(layer) with the Acts::Surfaces. More...
 
class  TestRoICreatorTool
 
class  TrackAnalysisAlg
 
class  TrackContainer
 
class  TrackContainerReader
 
class  TrackFindingAlg
 
class  TrackFindingValidationAlg
 
class  TrackMergerAlg
 
class  TrackParamsEstimationTool
 
class  TrackParticleAnalysisAlg
 
class  TrackStatePrinter
 
class  TrackSummaryContainer
 
class  TrackToTrackParticleCnvAlg
 
class  TrackToTruthAssociationAlg
 
class  TransformCache
 
class  TransformCacheDetEle
 
class  TrkMeasurementCalibrator
 
class  TrkToActsConvertorAlg
 Algorithm convert Trk::Track to ACTS multistate objects. More...
 
class  TruthGuidedProtoTrackCreator
 
class  TruthParticleHitCountAlg
 

Typedefs

using IndexType = std::uint32_t
 
using ParticleVector = boost::container::small_vector< const xAOD::TruthParticle *, NTruthParticlesPerMeasurement >
 
using MeasurementToTruthParticleAssociation = std::vector< ParticleVector >
 
using StoredSurface = std::variant< const Acts::Surface *, std::shared_ptr< const Acts::Surface > >
 
typedef Acts::Seed< xAOD::SpacePointSeed
 
typedef DataVector< Acts::Seed< xAOD::SpacePoint > > SeedContainer
 
using MutableTrackBackend = ActsTrk::MutableTrackSummaryContainer
 
using TrackBackend = ActsTrk::TrackSummaryContainer
 
using MutableTrackStateBackend = ActsTrk::MutableMultiTrajectory
 
using TrackStateBackend = ActsTrk::MultiTrajectory
 
using TrackContainerBase = Acts::TrackContainer< ActsTrk::TrackBackend, ActsTrk::TrackStateBackend, ActsTrk::DataLinkHolder >
 
typedef DataVector< Acts::BoundTrackParameters > BoundTrackParametersContainer
 
using ConstParameters = Acts::TrackStateTraits< 3 >::Parameters
 
using ConstCovariance = Acts::TrackStateTraits< 3 >::Covariance
 
using Parameters = Acts::TrackStateTraits< 3, false >::Parameters
 
using Covariance = Acts::TrackStateTraits< 3, false >::Covariance
 
using TrackToTruthParticleAssociation = std::vector< HitCountsPerTrack >
 
using TruthParticleHitCounts = std::unordered_map< const xAOD::TruthParticle *, HitCounterArray >
 
using ATLASSourceLink = const Trk::MeasurementBase *
 
using ATLASUncalibSourceLink = const xAOD::UncalibratedMeasurement *
 
using TicketCounterArr = DetectorAlignStore::TrackingAlignStore::TicketCounterArr
 
using ReturnedTicketArr = DetectorAlignStore::TrackingAlignStore::ReturnedTicketArr
 
using ReturnedHintArr = DetectorAlignStore::TrackingAlignStore::ReturnedHintArr
 
template<class BoundType >
using SurfaceBoundSetPtr = std::shared_ptr< SurfaceBoundSet< BoundType > >
 Aberivation to create a new SurfaceBoundSetPtr. More...
 
using SurfaceCacheSet = std::set< std::unique_ptr< SurfaceCache >, std::less<> >
 
using StripRDORawData = SCT_RDORawData
 
template<typename Object >
using rdoListFunc_t = decltype(std::declval< Object >().rdoList())
 

Enumerations

enum  NeighbourIndices {
  ThisOne, Opposite, PhiMinus, PhiPlus,
  EtaMinus, EtaPlus, nNeighbours
}
 Total number of neightbours and indices. More...
 
enum  DetectorType : unsigned short {
  DetectorType::Pixel, DetectorType::Sct, DetectorType::Trt, DetectorType::Hgtd,
  DetectorType::Mdt, DetectorType::Rpc, DetectorType::Tgc, DetectorType::Csc,
  DetectorType::Mm, DetectorType::sTgc, DetectorType::UnDefined
}
 Simple enum to Identify the Type of the ACTS sub detector. More...
 

Functions

void clusterAddCell (PixelClusteringTool::Cluster &cl, const PixelClusteringTool::Cell &cell)
 
template<typename IFACE , typename AUX >
std::unique_ptr< IFACE > makeInterfaceContainer (const AUX *aux)
 helper to construct interface container for already filled Aux container TODO maybe should be moved to xAOD area More...
 
void encodeSurface (xAOD::TrackSurfaceAuxContainer *backend, size_t index, const Acts::Surface *surface, const Acts::GeometryContext &geoContext)
 Prepares persistifiable representation of surface into xAOD::TrackSurface object. More...
 
void encodeSurface (xAOD::TrackSurface *backend, const Acts::Surface *surface, const Acts::GeometryContext &geoContext)
 As above, but works on xAOD::TrackSurface object. More...
 
std::shared_ptr< const Acts::Surface > decodeSurface (const xAOD::TrackSurface *backend, const Acts::GeometryContext &geoContext)
 Creates transient Acts Surface objects given a surface backend implementation should be exact mirror of encodeSurface. More...
 
std::shared_ptr< const Acts::Surface > decodeSurface (const xAOD::TrackSurfaceAuxContainer *backend, size_t i, const Acts::GeometryContext &geoContext)
 As above, but takes data from Aux container at an index i. More...
 
std::string prefixFromTrackContainerName (const std::string &tracks)
 Parse TrackContainer name to get the prefix for backends The name has to contain XYZTracks, the XYZ is returned. More...
 
void encodeSurface (xAOD::SurfaceType &surfaceType, std::vector< float > &translation, std::vector< float > &rotation, std::vector< float > &boundValues, const Acts::Surface *surface, const Acts::GeometryContext &geoContext)
 
std::shared_ptr< const Acts::Surface > decodeSurface (const xAOD::SurfaceType surfaceType, const std::vector< float > &translation, const std::vector< float > &rotation, const std::vector< float > &boundValues, const Acts::GeometryContext &)
 
template<typename T , typename IFACE , typename AUX >
void recordxAOD (const SG::WriteHandleKey< T > &key, IFACE &iface, AUX &aux, const EventContext &context)
 
const xAOD::UncalibratedMeasurementgetUncalibratedMeasurement (const ATLASUncalibSourceLink &source_link)
 
ATLASUncalibSourceLink makeATLASUncalibSourceLink (const xAOD::UncalibratedMeasurementContainer *container, std::size_t index, [[maybe_unused]] const EventContext &ctx)
 
ATLASUncalibSourceLink makeATLASUncalibSourceLink ([[maybe_unused]] const xAOD::UncalibratedMeasurementContainer *container, const xAOD::UncalibratedMeasurement *measurement, [[maybe_unused]] const EventContext &ctx)
 
ATLASUncalibSourceLink makeATLASUncalibSourceLink (const xAOD::UncalibratedMeasurementContainer *container, std::size_t index)
 
ATLASUncalibSourceLink makeATLASUncalibSourceLink (const xAOD::UncalibratedMeasurement *measurement)
 
float localXFromSourceLink (const ATLASUncalibSourceLink &source_link)
 
float localYFromSourceLink (const ATLASUncalibSourceLink &source_link)
 
std::string to_string (const DetectorType &type)
 
bool operator< (const std::unique_ptr< SurfaceCache > &a, const std::unique_ptr< SurfaceCache > &b)
 Comparison operators. More...
 
bool operator< (const IdentifierHash &a, const std::unique_ptr< SurfaceCache > &b)
 
bool operator< (const std::unique_ptr< SurfaceCache > &a, const IdentifierHash &b)
 
Acts::Logging::Level actsLevelVector (MSG::Level lvl)
 
MSG::Level athLevelVector (Acts::Logging::Level lvl)
 
double computeDtDs (const Acts::ParticleHypothesis &hypothesis, double qop)
 Helper function to compute dt/ds Helper function to compute the derivative of the time as function of the path length. More...
 
Acts::FreeToPathMatrix computeFreeToPathDerivatives (const Acts::Vector3 &direction, double qop, const Acts::Vector3 &bfield, const Acts::ParticleHypothesis &particle_hypothesis)
 Compute the path length derivatives for the free/bound to curvilinear paramter transform. More...
 
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. More...
 
std::array< unsigned int, 4 > expectedLayerPattern (const EventContext &ctx, const IActsExtrapolationTool &extrapolator, Acts::BoundTrackParameters perigee_parameters, const Acts::CylinderSurface &extrapolation_volume)
 Extrapolate from the perigee outwards and gather information which detector layers should have hits. More...
 
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. More...
 
template<typename T_EnumClass >
constexpr std::underlying_type< T_EnumClass >::type to_underlying (T_EnumClass an_enum)
 Helper to convert class enum into an integer. More...
 
template<class T >
auto getRDOList (const T &a)
 
template<class T_TruthEventCollection >
auto makeDepositToTruthParticleMap (const T_TruthEventCollection *truth_particle_links)
 
template<class T_TruthEventCollection >
const char * getInTruthPropertyName ()
 
template<class T_SimDataCollection , class T_SimDataIterator >
auto getSimDataDeposits (const T_SimDataCollection &sim_data_collection, T_SimDataIterator sim_data_iter_for_identifier)
 
template<class T_Deposit >
float getDepositedEnergy (const T_Deposit &)
 
MsgStream & operator<< (MsgStream &out, const ActsUtils::Stat &stat)
 

Variables

constexpr double ONE_TWELFTH = 1./12.
 
constexpr unsigned int NTruthParticlesPerMeasurement = 5
 
constexpr unsigned int NHitCounter = static_cast< std::underlying_type<xAOD::UncalibMeasType>::type >(xAOD::UncalibMeasType::nTypes) - 1u
 
constexpr unsigned int NTruthParticlesPerTrack = 5
 
constexpr bool TrackFindingValidationDebugHists = false
 
constexpr bool TrackToTruthParticleAssociationDebugHists = false
 
constexpr bool TruthParticleHitCountDebugHists = false
 

Detailed Description

The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout geometry to cache the final transformations of the sensor surfaces associated to one particular detector technology (Pixel, Sct, etc.).

: The NoDeletePtr is a shared_ptr with disabled deleter.

Includes the GeoPrimitives.

Load ATLAS Eigen library with custom geometry functions.

Put first the GeoPrimitives.

small non-persistent data class to wrap the output of the EF-tracking development pattern finding placeholder

The DetectorAlignCondAlg loads the rigid alignment corrections and pipes them through the readout geometry to cache the final transformations of the sensor surfaces associated to one particular detector technology (Pixel, Sct, etc.).

The transformations are cached in the DetectorAlignmentStore which is later propagated to the ActsGeometryContext.

The ActsFromGeoAlignStore is an adaptor to go from the GeoModel world caching the rigid transformations of the detector elements to the Acts world where transformations

Then load the Acts TypeDef definitions for Eigen

In AthSimulation, the Acts core library is not available yet

ATLAS extension of the Acts::DetectorElementBase. The extension provides extra methods to identify the element within the ATLAS identifier scheme and also the enum indicating to which tracking subsystem the DetectorElement belongs to. Finally, the detector element provides the interface to optionally precache the aligned transformations in the external AlignmentStore of the geometry context.

Typedef Documentation

◆ ATLASSourceLink

Definition at line 24 of file ATLASSourceLink.h.

◆ ATLASUncalibSourceLink

Definition at line 25 of file ATLASSourceLink.h.

◆ BoundTrackParametersContainer

typedef DataVector< Acts::BoundTrackParameters > ActsTrk::BoundTrackParametersContainer

◆ ConstCovariance

using ActsTrk::ConstCovariance = typedef Acts::TrackStateTraits<3>::Covariance

◆ ConstParameters

using ActsTrk::ConstParameters = typedef Acts::TrackStateTraits<3>::Parameters

◆ Covariance

using ActsTrk::Covariance = typedef Acts::TrackStateTraits<3, false>::Covariance

◆ IndexType

typedef std::uint32_t ActsTrk::IndexType

Definition at line 13 of file Decoration.h.

◆ MeasurementToTruthParticleAssociation

Definition at line 13 of file MeasurementToTruthParticleAssociation.h.

◆ MutableTrackBackend

Definition at line 12 of file TrackContainer.h.

◆ MutableTrackStateBackend

Definition at line 14 of file TrackContainer.h.

◆ Parameters

using ActsTrk::Parameters = typedef Acts::TrackStateTraits<3, false>::Parameters

◆ ParticleVector

using ActsTrk::ParticleVector = typedef boost::container::small_vector<const xAOD::TruthParticle *, NTruthParticlesPerMeasurement>

Definition at line 12 of file MeasurementToTruthParticleAssociation.h.

◆ rdoListFunc_t

template<typename Object >
using ActsTrk::rdoListFunc_t = typedef decltype(std::declval<Object>().rdoList())

Definition at line 94 of file MeasurementToTruthAssociationAlg.h.

◆ ReturnedHintArr

Definition at line 16 of file DetectorAlignStore.cxx.

◆ ReturnedTicketArr

Definition at line 15 of file DetectorAlignStore.cxx.

◆ Seed

typedef Acts::Seed< xAOD::SpacePoint > ActsTrk::Seed

Definition at line 13 of file Seed.h.

◆ SeedContainer

Definition at line 14 of file Seed.h.

◆ StoredSurface

using ActsTrk::StoredSurface = typedef std::variant<const Acts::Surface*, std::shared_ptr<const Acts::Surface> >

Definition at line 68 of file MultiTrajectory.h.

◆ StripRDORawData

Definition at line 21 of file IStripClusteringTool.h.

◆ SurfaceBoundSetPtr

template<class BoundType >
using ActsTrk::SurfaceBoundSetPtr = typedef std::shared_ptr<SurfaceBoundSet<BoundType> >

Aberivation to create a new SurfaceBoundSetPtr.

Definition at line 50 of file SurfaceBoundSet.h.

◆ SurfaceCacheSet

using ActsTrk::SurfaceCacheSet = typedef std::set<std::unique_ptr<SurfaceCache>, std::less<> >

◆ TicketCounterArr

Definition at line 14 of file DetectorAlignStore.cxx.

◆ TrackBackend

Definition at line 13 of file TrackContainer.h.

◆ TrackContainerBase

Definition at line 26 of file TrackContainer.h.

◆ TrackStateBackend

Definition at line 15 of file TrackContainer.h.

◆ TrackToTruthParticleAssociation

Definition at line 69 of file TrackToTruthParticleAssociation.h.

◆ TruthParticleHitCounts

Definition at line 19 of file TruthParticleHitCounts.h.

Enumeration Type Documentation

◆ DetectorType

enum ActsTrk::DetectorType : unsigned short
strong

Simple enum to Identify the Type of the ACTS sub detector.

Enumerator
Pixel 

Inner detector legacy.

Sct 
Trt 

Maybe the Sct / Pixel for Itk become seperate entries?

Hgtd 
Mdt 

MuonSpectrometer.

Rpc 

Monitored Drift Tubes.

Tgc 

Resitive Plate Chambers.

Csc 

Thin gap champers.

Mm 

Maybe not needed in the migration.

sTgc 

Micromegas (NSW)

UnDefined 

Small Thing Gap chambers (NSW)

Definition at line 17 of file GeometryDefs.h.

17  : unsigned short {
19  Pixel,
20  Sct,
22  Trt,
23  Hgtd,
25  Mdt,
26  Rpc,
27  Tgc,
28  Csc,
29  Mm,
30  sTgc,
31  UnDefined
32  };

◆ NeighbourIndices

Total number of neightbours and indices.

Enumerator
ThisOne 
Opposite 
PhiMinus 
PhiPlus 
EtaMinus 
EtaPlus 
nNeighbours 

Definition at line 13 of file StripInformationHelper.h.

Function Documentation

◆ actsLevelVector()

Acts::Logging::Level ActsTrk::actsLevelVector ( MSG::Level  lvl)

Definition at line 9 of file LoggerUtils.cxx.

9  {
10  // MSG::NIL and MSG::ALWAYS are not available in Acts. Need to protect against these
11  // For MSG::NIL we can return a Acts::Logging::Level::FATAL;
12  // For MSG::ALWAYS we can return a Acts::Logging::Level::VERBOSE
13 
14  // Gaudi definitions are +1 w.r.t. Acts definitions
15  static const std::array<Acts::Logging::Level, 8> actsLevelVector{
16  Acts::Logging::Level::FATAL, // MSG::NIL
23  Acts::Logging::Level::VERBOSE // MSG::ALWAYS
24  };
25 
26  return actsLevelVector[static_cast<int>(lvl)];
27  }

◆ athLevelVector()

MSG::Level ActsTrk::athLevelVector ( Acts::Logging::Level  lvl)

Definition at line 29 of file LoggerUtils.cxx.

29  {
30  // All Acts log levels are available in Gaudi, no need for protections
31  static const std::array<MSG::Level, 6> athLevelVector{
33  MSG::DEBUG,
34  MSG::INFO,
35  MSG::WARNING,
36  MSG::ERROR,
38  };
39  return athLevelVector[static_cast<int>(lvl)];
40  }

◆ clusterAddCell()

void ActsTrk::clusterAddCell ( PixelClusteringTool::Cluster cl,
const PixelClusteringTool::Cell cell 
)

Definition at line 21 of file PixelClusteringTool.cxx.

23 {
24  cl.ids.push_back(cell.ID);
25  cl.tots.push_back(cell.TOT);
26  if (cell.LVL1 < cl.lvl1min)
27  cl.lvl1min = cell.LVL1;
28 }

◆ computeDtDs()

double ActsTrk::computeDtDs ( const Acts::ParticleHypothesis &  hypothesis,
double  qop 
)
inline

Helper function to compute dt/ds Helper function to compute the derivative of the time as function of the path length.

Definition at line 15 of file CurvilinearCovarianceHelper.h.

15  {
16  return std::hypot(1.,hypothesis.mass() / hypothesis.extractMomentum(qop));
17  }

◆ computeFreeToPathDerivatives()

Acts::FreeToPathMatrix ActsTrk::computeFreeToPathDerivatives ( const Acts::Vector3 &  direction,
double  qop,
const Acts::Vector3 &  bfield,
const Acts::ParticleHypothesis &  particle_hypothesis 
)
inline

Compute the path length derivatives for the free/bound to curvilinear paramter transform.

Parameters
directionthe direction of trajectory at the location in question
qopq/p of the particle at the location in question in Acts units
bfieldthe magnetic field at the location in question in Acts units
particle_hypothesisthe particle hypothesis e.g. Acts::ParticleHypothesis::pion()
Returns
path length derivatives ( dr(...)/ds, dt/ds, dr(...)/ds2, d qop/ds [== 0] )

Definition at line 26 of file CurvilinearCovarianceHelper.h.

30  {
31  Acts::FreeToPathMatrix path_length_deriv;
32  static_assert(path_length_deriv.cols() == 8); // ensure that all elements are initialized
33  path_length_deriv.segment<3>(Acts::eFreePos0) = direction;
34  path_length_deriv(0,Acts::eFreeTime) = computeDtDs(particle_hypothesis,qop);
35  path_length_deriv.segment<3>(Acts::eFreeDir0) = (qop * direction.cross(bfield)).transpose();
36  path_length_deriv(0,Acts::eFreeQOverP) = 0.;
37  return path_length_deriv;
38  }

◆ convertActsBoundCovToCurvilinearParam()

std::optional<Acts::BoundMatrix> ActsTrk::convertActsBoundCovToCurvilinearParam ( const Acts::GeometryContext &  tgContext,
const Acts::BoundTrackParameters &  param,
const Acts::Vector3 &  magnFieldVect,
const Acts::ParticleHypothesis &  particle_hypothesis 
)
inline

Convert the covariance of the given Acts track parameters into curvilinear parameterisation.

Parameters
tgContextthe current geometry context
paramthe Acts track parameters
magnFieldVectthe vector of the magnetic field at the position of the track parameters in Acts units
particle_hypothesisthe particle hypothesis e.g. Acts::ParticleHypothesis::pion() Usage:
  
     using namespace Acts::UnitLiterals;
     MagField::AtlasFieldCache fieldCache;
     ...
     Amg::Vector3D magnFieldVect;
     fieldCache.getField(param.position(tgContext).data(), magnFieldVect.data());
     magnFieldVect *= 1000_T;
     auto cov = convertActsBoundCovToCurvilinearParam(tgContext, param, magnFieldVect);
     if (cov.has_value()) { ... }
  

Definition at line 60 of file CurvilinearCovarianceHelper.h.

64  {
65  if (param.covariance().has_value()) {
66  Acts::FreeVector freeParams = Acts::transformBoundToFreeParameters(
67  param.referenceSurface(), tgContext, param.parameters());
68  Acts::Vector3 position = freeParams.segment<3>(Acts::eFreePos0);
69  Acts::Vector3 direction = freeParams.segment<3>(Acts::eFreeDir0);
70  Acts::BoundMatrix b2c;
71  Acts::detail::boundToCurvilinearTransportJacobian(direction, // magnFieldVect.normalized(),
72  param.referenceSurface().boundToFreeJacobian(tgContext, position, direction),
73  Acts::FreeMatrix::Identity(),
75  param.parameters()[Acts::eBoundQOverP],
76  magnFieldVect,
77  particle_hypothesis),
78  b2c);
79 
80  return b2c * param.covariance().value() * b2c.transpose();
81  }
82  else {
83  return {};
84  }
85  }

◆ decodeSurface() [1/3]

std::shared_ptr<const Acts::Surface> ActsTrk::decodeSurface ( const xAOD::SurfaceType  surfaceType,
const std::vector< float > &  translation,
const std::vector< float > &  rotation,
const std::vector< float > &  boundValues,
const Acts::GeometryContext &   
)

Definition at line 74 of file SurfaceEncoding.cxx.

77  {
78 
79  // Translation and rotation
80 
81  // create the transformation matrix
82  auto transform = Acts::Transform3(
83  Acts::Translation3(translation[0], translation[1], translation[2]));
84  transform *=
85  Acts::AngleAxis3(rotation[0], Acts::Vector3(0., 0., 1.)); // rotZ
86  transform *=
87  Acts::AngleAxis3(rotation[1], Acts::Vector3(0., 1., 0.)); // rotY
88  transform *=
89  Acts::AngleAxis3(rotation[2], Acts::Vector3(1., 0., 0.)); // rotX
90 
91  // cone
92  if (surfaceType == xAOD::Cone) {
93  auto surface = Acts::Surface::makeShared<Acts::ConeSurface>(
94  transform, boundValues[0], boundValues[1], boundValues[2],
95  boundValues[3]);
96  return surface;
97  }
98  // Cylinder
99  else if (surfaceType == xAOD::Cylinder) {
100  // phi/2 must be slightly < Pi to avoid crashing
101  float fixedPhi =
102  boundValues[2] > M_PI - 0.001 ? M_PI - 0.001 : boundValues[2];
103  auto surface = Acts::Surface::makeShared<Acts::CylinderSurface>(
104  transform, boundValues[0], boundValues[1], fixedPhi, boundValues[3],
105  boundValues[4]);
106  return surface;
107  }
108  // Disc
109  else if (surfaceType == xAOD::Disc) {
110  auto surface = Acts::Surface::makeShared<Acts::DiscSurface>(
111  transform, boundValues[0], boundValues[1], boundValues[2]);
112  return surface;
113  }
114  // Perigee
115  else if (surfaceType == xAOD::Perigee) {
116  auto surface = Acts::Surface::makeShared<Acts::PerigeeSurface>(transform);
117  return surface;
118  }
119  // Plane
120  else if (surfaceType == xAOD::Plane) {
121  Acts::Vector2 min(boundValues[0], boundValues[1]),
122  max(boundValues[2], boundValues[3]);
123  auto rBounds = std::make_shared<const Acts::RectangleBounds>(min, max);
124  auto surface =
125  Acts::Surface::makeShared<Acts::PlaneSurface>(transform, rBounds);
126  return surface;
127  }
128  // Straw
129  else if (surfaceType == xAOD::Straw) {
130  auto surface = Acts::Surface::makeShared<Acts::StrawSurface>(
131  transform, boundValues[0], boundValues[1]);
132  return surface;
133  } else {
134  throw std::out_of_range(
135  "encodeSurface this type " +
136  std::to_string(static_cast<int>(surfaceType)) +
137  " of Acts Surface can not be saved in xAOD::TrackSurface");
138  return nullptr;
139  }
140  return nullptr;
141 }

◆ decodeSurface() [2/3]

std::shared_ptr< const Acts::Surface > ActsTrk::decodeSurface ( const xAOD::TrackSurface backend,
const Acts::GeometryContext &  geoContext 
)

Creates transient Acts Surface objects given a surface backend implementation should be exact mirror of encodeSurface.

Definition at line 143 of file SurfaceEncoding.cxx.

144  {
145  return decodeSurface(s->surfaceType(), s->translation(), s->rotation(),
146  s->boundValues(), geo);
147 }

◆ decodeSurface() [3/3]

std::shared_ptr< const Acts::Surface > ActsTrk::decodeSurface ( const xAOD::TrackSurfaceAuxContainer backend,
size_t  i,
const Acts::GeometryContext &  geoContext 
)

As above, but takes data from Aux container at an index i.

Definition at line 149 of file SurfaceEncoding.cxx.

151  {
152  return decodeSurface(s->surfaceType[i], s->translation[i], s->rotation[i],
153  s->boundValues[i], geo);
154 }

◆ encodeSurface() [1/3]

void ActsTrk::encodeSurface ( xAOD::SurfaceType surfaceType,
std::vector< float > &  translation,
std::vector< float > &  rotation,
std::vector< float > &  boundValues,
const Acts::Surface *  surface,
const Acts::GeometryContext &  geoContext 
)

Definition at line 7 of file SurfaceEncoding.cxx.

12  {
13  // return if surf is a nullptr
14  if (surface == nullptr) {
15  return;
16  }
17 
18  // surface type specifics
19  if (surface->type() == Acts::Surface::Cone) {
20  surfaceType = xAOD::SurfaceType::Cone;
21  } else if (surface->type() == Acts::Surface::Cylinder) {
22  surfaceType = xAOD::SurfaceType::Cylinder;
23  } else if (surface->type() == Acts::Surface::Disc) {
24  surfaceType = xAOD::SurfaceType::Disc;
25  } else if (surface->type() == Acts::Surface::Perigee) {
26  surfaceType = xAOD::SurfaceType::Perigee;
27  } else if (surface->type() == Acts::Surface::Plane) {
28  surfaceType = xAOD::SurfaceType::Plane;
29  } else if (surface->type() == Acts::Surface::Straw) {
30  surfaceType = xAOD::SurfaceType::Straw;
31  } else {
32  throw std::out_of_range(
33  "encodeSurface this type " +
34  std::to_string(static_cast<int>(surface->type())) +
35  " of Acts Surface can not be saved in xAOD::TrackSurface");
36  return;
37  }
38 
39  Acts::RotationMatrix3 lRotation =
40  surface->transform(geoContext).rotation();
41  Acts::Vector3 eulerAngles = lRotation.eulerAngles(2, 1, 0);
42  Acts::Vector3 lTranslation = surface->center(geoContext);
43 
44  for (int i = 0; i < 3; i++) {
45  rotation.push_back(eulerAngles[i]);
46  translation.push_back(lTranslation[i]);
47  }
48 
49  // Transforming double->float
50  const std::vector<double> values = surface->bounds().values();
51  for (unsigned int i = 0; i < size(values); i++)
52  boundValues.push_back(values[i]);
53 }

◆ encodeSurface() [2/3]

void ActsTrk::encodeSurface ( xAOD::TrackSurface backend,
const Acts::Surface *  surface,
const Acts::GeometryContext &  geoContext 
)

As above, but works on xAOD::TrackSurface object.

Definition at line 62 of file SurfaceEncoding.cxx.

63  {
64  xAOD::SurfaceType surfaceType;
65  std::vector<float> translation, rotation, bounds;
66  encodeSurface(surfaceType, translation, rotation, bounds, surface, geo);
67 
68  s->setSurfaceType(surfaceType);
69  s->setTranslation(translation);
70  s->setRotation(rotation);
71  s->setBoundValues(bounds);
72 }

◆ encodeSurface() [3/3]

void ActsTrk::encodeSurface ( xAOD::TrackSurfaceAuxContainer backend,
size_t  index,
const Acts::Surface *  surface,
const Acts::GeometryContext &  geoContext 
)

Prepares persistifiable representation of surface into xAOD::TrackSurface object.

Warning
supports only few types, unhandled surface type results in a exception
  • backend - container to store surface data
  • index - index under which the data needs to be recorded

Definition at line 55 of file SurfaceEncoding.cxx.

57  {
58  encodeSurface(s->surfaceType[i], s->translation[i], s->rotation[i],
59  s->boundValues[i], surface, geo);
60 }

◆ expectedLayerPattern()

std::array< unsigned int, 4 > ActsTrk::expectedLayerPattern ( const EventContext &  ctx,
const IActsExtrapolationTool extrapolator,
Acts::BoundTrackParameters  perigee_parameters,
const Acts::CylinderSurface &  extrapolation_volume 
)

Extrapolate from the perigee outwards and gather information which detector layers should have hits.

Parameters
ctxthe current athena EvetContext @paran extrapolator referece to the Acts extrapolation tool
perigee_parametersthe Acts defining track parameters (parameters at the perigee).
extrapolation_volumethe volume around the perigee which is considered (e.g. pixel detector volume).
Returns
array of layer pattern words: two pairs for pixel and strips containing the barrel and end caps bit pattern with one bit per detector layer. Will extrapolate from the perigee to the given cylinder volume surface and gather the layers which are crossed and on which hits are expected.

Definition at line 14 of file ExpectedHitUtils.cxx.

17  {
18 
20  perigee_parameters,
21  extrapolation_volume,
22  Acts::Direction::Forward);
23  std::array<unsigned int,4> expected_layer_pattern {0u,0u,0u,0u};
24  for (const Acts::detail::Step &step : result.first ) {
25  // @TODO boundary check ?, does layer number match layer numbering in athena ?
26  // @TODO filter out dead modules
27  if (step.geoID.sensitive()) {
28  if (step.surface && step.surface->associatedDetectorElement()) {
29  const ActsDetectorElement *
30  actsDetEl = dynamic_cast<const ActsDetectorElement *>(step.surface->associatedDetectorElement());
31  if (actsDetEl) {
33  detEl = dynamic_cast<const InDetDD::SiDetectorElement *>(actsDetEl->upstreamDetectorElement());
34  if (detEl) {
35  if (detEl->isPixel()) {
37  unsigned int pattern_idx = type==InDetDD::PixelBarrel ? 0 : 1;
38  const PixelID* pixel_id = static_cast<const PixelID *>(detEl->getIdHelper());
39  expected_layer_pattern[pattern_idx] |= (1<< pixel_id->layer_disk(detEl->identify()) );
40  }
41  else if (detEl->isSCT()) {
42  // @TODO SCT/strip layer number should be shifted by total number of pixel layers ...
43  const SCT_ID* sct_id = static_cast<const SCT_ID *>(detEl->getIdHelper());
44  unsigned int pattern_idx = detEl->isBarrel() ? 2 : 3;
45  expected_layer_pattern[pattern_idx] |= (1<< sct_id->layer_disk(detEl->identify()) );
46  }
47  }
48  }
49  }
50  }
51  }
52  return expected_layer_pattern;
53  }

◆ gatherTrackSummaryData()

void ActsTrk::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.

Parameters
tracksContainerthe Acts track container
tracka track of the given acts track container for which the summary information is to be gathered
siDetEleCollarray of SiDetectorElement collections per measurement type.
measurement_to_summary_typea LUT to map measurement types to the corresponding summary type for the measurement counts
chi2_stat_outoutput of the per track state chi-squared sums and squared sums to compute the per state chi2 variance.
hit_info_outoutput of the gathered measurement statistics per detector region, layer, ... .
param_state_idx_outoutput vector to be filled with the state index of all track states which are not holes.
special_hit_counts_outarrays to count holes (and @TODO dead sensors) per measurement type.

Definition at line 16 of file HitSummaryDataUtils.cxx.

27  {
28  chi2_stat_out.reset();
29 
30  hit_info_out.reset();
31  param_state_idx_out.clear();
32 
33  const auto lastMeasurementIndex = track.tipIndex();
34  tracksContainer.trackStateContainer().visitBackwards(
35  lastMeasurementIndex,
36  [&siDetEleColl,
37  &measurement_to_summary_type,
38  &chi2_stat_out,
39  &hit_info_out,
40  &param_state_idx_out,
41  &special_hit_counts_out
42  ](const typename ActsTrk::TrackStateBackend::ConstTrackStateProxy &state) -> void
43  {
44 
45  auto flag = state.typeFlags();
46  if (flag.test(Acts::TrackStateFlag::HoleFlag)) {
47  xAOD::UncalibMeasType det_type = xAOD::UncalibMeasType::Other;
48  if (state.hasReferenceSurface()) {
49  if (state.referenceSurface().associatedDetectorElement()) {
50  const ActsDetectorElement *
51  actsDetEl = dynamic_cast<const ActsDetectorElement *>(state.referenceSurface().associatedDetectorElement());
52  if (actsDetEl) {
53  const InDetDD::SiDetectorElement *
54  detEl = dynamic_cast<const InDetDD::SiDetectorElement *>(actsDetEl->upstreamDetectorElement());
55  if (detEl) {
56  if (detEl->isPixel()) {
57  det_type = xAOD::UncalibMeasType::PixelClusterType;
58  }
59  else if (detEl->isSCT()) {
60  det_type = xAOD::UncalibMeasType::StripClusterType;
61  }
62  }
63  }
64  }
65  }
66 
67  Acts::BoundaryCheck bcheck(//check local0 ?
69  || state.referenceSurface().bounds().type() != Acts::SurfaceBounds::eAnnulus),
70  // check local1
72  || state.referenceSurface().bounds().type() == Acts::SurfaceBounds::eAnnulus)
73  // @TODO tolerances ?
74  );
75  Acts::Vector2 localPos(state.predicted()[Acts::eBoundLoc0],state.predicted()[Acts::eBoundLoc1]);
76  if (state.referenceSurface().insideBounds(localPos,bcheck)) {
77  // @TODO check whether detector element is dead..
78  // if (dead) {
79  // ++specialHitCounts.at(to_underlying(det_type)).at(HitCategory::DeadSensor);
80  // } else {
81  ++special_hit_counts_out.at(to_underlying(det_type)).at(HitCategory::Hole);
82  }
83 
84  }
85  else if (flag.test(Acts::TrackStateFlag::MeasurementFlag)) {
86  // do not consider material states
87  param_state_idx_out.push_back(state.index());
88  }
89  // @TODO dead elements
90 
91  if (state.hasUncalibratedSourceLink()) {
92  auto sl = state.getUncalibratedSourceLink().template get<ActsTrk::ATLASUncalibSourceLink>();
93  assert( sl.isValid() && *sl);
94  const xAOD::UncalibratedMeasurement &uncalibMeas = getUncalibratedMeasurement(sl);
95  if (measurement_to_summary_type.at(to_underlying(uncalibMeas.type())) < xAOD::numberOfTrackSummaryTypes ) {
96  if (static_cast<unsigned int>(to_underlying(uncalibMeas.type())) < siDetEleColl.size()) {
97  hit_info_out.addHit(siDetEleColl[to_underlying(uncalibMeas.type())],
98  uncalibMeas.identifierHash(),
99  (flag.test(Acts::TrackStateFlag::OutlierFlag)
100  ? HitSummaryData::Outlier
101  : HitSummaryData::Hit));
102  }
103  }
104  if (state.calibratedSize()>0 && !flag.test(Acts::TrackStateFlag::OutlierFlag)) {
105  // from Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx
106  // processTrackState
107  double chi2add = std::min(state.chi2(),1e5f) / state.calibratedSize();
108  chi2_stat_out.add(chi2add );
109  }
110  }
111 
112  });
113  hit_info_out.computeSummaries();
114  }

◆ getDepositedEnergy()

template<class T_Deposit >
float ActsTrk::getDepositedEnergy ( const T_Deposit &  )

◆ getInTruthPropertyName()

template<class T_TruthEventCollection >
const char* ActsTrk::getInTruthPropertyName ( )
inline

◆ getRDOList()

template<class T >
auto ActsTrk::getRDOList ( const T &  a)

Definition at line 109 of file MeasurementToTruthAssociationAlg.h.

109  {
110  if constexpr(has_rdoList<T>::value) {
111  return a.rdoList();
112  }
113  else {
114  return DummyRDOList(a);
115  }
116  }

◆ getSimDataDeposits()

template<class T_SimDataCollection , class T_SimDataIterator >
auto ActsTrk::getSimDataDeposits ( const T_SimDataCollection &  sim_data_collection,
T_SimDataIterator  sim_data_iter_for_identifier 
)

◆ getUncalibratedMeasurement()

const xAOD::UncalibratedMeasurement& ActsTrk::getUncalibratedMeasurement ( const ATLASUncalibSourceLink source_link)
inline

Definition at line 27 of file ATLASSourceLink.h.

27  {
28  assert(source_link);
29  return *source_link;
30  }

◆ localXFromSourceLink()

float ActsTrk::localXFromSourceLink ( const ATLASUncalibSourceLink source_link)
inline

Definition at line 54 of file ATLASSourceLink.h.

54  {
55  const xAOD::UncalibratedMeasurement &uncalib_meas = getUncalibratedMeasurement(source_link);
56  return uncalib_meas.type() == xAOD::UncalibMeasType::PixelClusterType
57  ? uncalib_meas.localPosition<2>()[Trk::locX]
58  : uncalib_meas.localPosition<1>()[Trk::locX];
59  }

◆ localYFromSourceLink()

float ActsTrk::localYFromSourceLink ( const ATLASUncalibSourceLink source_link)
inline

Definition at line 61 of file ATLASSourceLink.h.

61  {
62  const xAOD::UncalibratedMeasurement &uncalib_meas = getUncalibratedMeasurement(source_link);
63  assert(uncalib_meas.type() == xAOD::UncalibMeasType::PixelClusterType );
64  return uncalib_meas.localPosition<2>()[Trk::locY];
65  }

◆ makeATLASUncalibSourceLink() [1/4]

ATLASUncalibSourceLink ActsTrk::makeATLASUncalibSourceLink ( [[maybe_unused] ] const xAOD::UncalibratedMeasurementContainer container,
const xAOD::UncalibratedMeasurement measurement,
[[maybe_unused] ] const EventContext &  ctx 
)
inline

Definition at line 37 of file ATLASSourceLink.h.

39  {
40  assert( container == measurement->container());
41  assert( container && measurement->index() < container->size() );
42  return measurement;
43  }

◆ makeATLASUncalibSourceLink() [2/4]

ATLASUncalibSourceLink ActsTrk::makeATLASUncalibSourceLink ( const xAOD::UncalibratedMeasurement measurement)
inline

Definition at line 50 of file ATLASSourceLink.h.

50  {
51  assert(measurement && measurement->container() && measurement->index() < measurement->container()->size_v());
52  return measurement;
53  }

◆ makeATLASUncalibSourceLink() [3/4]

ATLASUncalibSourceLink ActsTrk::makeATLASUncalibSourceLink ( const xAOD::UncalibratedMeasurementContainer container,
std::size_t  index 
)
inline

Definition at line 44 of file ATLASSourceLink.h.

45  {
46  assert(container && index < container->size());
47  return container->at(index);
48  }

◆ makeATLASUncalibSourceLink() [4/4]

ATLASUncalibSourceLink ActsTrk::makeATLASUncalibSourceLink ( const xAOD::UncalibratedMeasurementContainer container,
std::size_t  index,
[[maybe_unused] ] const EventContext &  ctx 
)
inline

Definition at line 31 of file ATLASSourceLink.h.

33  {
34  assert(container && index < container->size());
35  return container->at(index);
36  }

◆ makeDepositToTruthParticleMap()

template<class T_TruthEventCollection >
auto ActsTrk::makeDepositToTruthParticleMap ( const T_TruthEventCollection *  truth_particle_links)

◆ makeInterfaceContainer()

template<typename IFACE , typename AUX >
std::unique_ptr<IFACE> ActsTrk::makeInterfaceContainer ( const AUX *  aux)

helper to construct interface container for already filled Aux container TODO maybe should be moved to xAOD area

Definition at line 490 of file MultiTrajectory.h.

490  {
491  auto interface = std::make_unique<IFACE>();
492  for ( size_t i = 0, sz = aux->size(); i < sz; ++i) {
493  interface->emplace_back( new std::remove_pointer_t<typename IFACE::value_type>() );
494  }
495  interface->setStore(aux);
496  return interface;
497 }

◆ operator<() [1/3]

bool ActsTrk::operator< ( const IdentifierHash a,
const std::unique_ptr< SurfaceCache > &  b 
)
inline

Definition at line 57 of file Tracking/Acts/ActsGeoUtils/ActsGeoUtils/SurfaceCache.h.

57  {
58  return a < b->hash();
59  }

◆ operator<() [2/3]

bool ActsTrk::operator< ( const std::unique_ptr< SurfaceCache > &  a,
const IdentifierHash b 
)
inline

Definition at line 60 of file Tracking/Acts/ActsGeoUtils/ActsGeoUtils/SurfaceCache.h.

60  {
61  return a->hash() < b;
62  }

◆ operator<() [3/3]

bool ActsTrk::operator< ( const std::unique_ptr< SurfaceCache > &  a,
const std::unique_ptr< SurfaceCache > &  b 
)
inline

Comparison operators.

Definition at line 53 of file Tracking/Acts/ActsGeoUtils/ActsGeoUtils/SurfaceCache.h.

54  {
55  return a->hash() < b->hash();
56  }

◆ operator<<()

MsgStream & ActsTrk::operator<< ( MsgStream &  out,
const ActsUtils::Stat stat 
)
inline

Definition at line 125 of file TrackFindingValidationAlg.cxx.

125  {
127  return out;
128  }

◆ prefixFromTrackContainerName()

std::string ActsTrk::prefixFromTrackContainerName ( const std::string &  tracks)

Parse TrackContainer name to get the prefix for backends The name has to contain XYZTracks, the XYZ is returned.

Definition at line 13 of file TrackContainerHandlesHelper.cxx.

13  {
14  std::regex word_regex("(.*)Tracks$");
15  std::smatch match_regex;
16 
17  if ( not std::regex_search(tracks, match_regex, word_regex) or match_regex.size() < 2) {
18  throw std::runtime_error(
19  std::string("prefixFromTrackContainerName: key does not contain "
20  "Tracks in the name ") + tracks);
21  }
22 
23  return match_regex[1].str();
24 }

◆ recordxAOD()

template<typename T , typename IFACE , typename AUX >
void ActsTrk::recordxAOD ( const SG::WriteHandleKey< T > &  key,
IFACE &  iface,
AUX &  aux,
const EventContext &  context 
)

Definition at line 27 of file TrackContainerHandlesHelper.cxx.

28  {
29  SG::WriteHandle<T> handle = SG::makeHandle(key, context);
30  if (handle.record(std::move(iface), std::move(aux)).isFailure()) {
31  throw std::runtime_error(
32  std::string("MutableTrackContainerHandlesHelper::recordxAOD, can't record ") + key.key() + " backend");
33  }
34 }

◆ to_string()

std::string ActsTrk::to_string ( const DetectorType type)
inline

Definition at line 34 of file GeometryDefs.h.

34  {
36  return "Pixel";
37  else if (type == DetectorType::Sct)
38  return "Sct";
39  else if (type == DetectorType::Trt)
40  return "Trt";
41  else if (type == DetectorType::Hgtd)
42  return "Hgtd";
43  else if (type == DetectorType::Mdt)
44  return "Mdt";
45  else if (type == DetectorType::Rpc)
46  return "Rpc";
47  else if (type == DetectorType::Tgc)
48  return "Tgc";
49  else if (type == DetectorType::Csc)
50  return "Csc";
51  else if (type == DetectorType::Mm)
52  return "Mm";
53  else if (type == DetectorType::sTgc)
54  return "sTgc";
55  return "Unknown";
56  }

◆ to_underlying()

template<typename T_EnumClass >
constexpr std::underlying_type<T_EnumClass>::type ActsTrk::to_underlying ( T_EnumClass  an_enum)
constexpr

Helper to convert class enum into an integer.

Definition at line 24 of file HitSummaryDataUtils.h.

24  {
25  return static_cast<typename std::underlying_type<T_EnumClass>::type>(an_enum);
26  }

Variable Documentation

◆ NHitCounter

constexpr unsigned int ActsTrk::NHitCounter = static_cast< std::underlying_type<xAOD::UncalibMeasType>::type >(xAOD::UncalibMeasType::nTypes) - 1u
constexpr

Definition at line 17 of file TrackToTruthParticleAssociation.h.

◆ NTruthParticlesPerMeasurement

constexpr unsigned int ActsTrk::NTruthParticlesPerMeasurement = 5
constexpr

Definition at line 9 of file MeasurementToTruthParticleAssociation.h.

◆ NTruthParticlesPerTrack

constexpr unsigned int ActsTrk::NTruthParticlesPerTrack = 5
constexpr

Definition at line 18 of file TrackToTruthParticleAssociation.h.

◆ ONE_TWELFTH

constexpr double ActsTrk::ONE_TWELFTH = 1./12.
constexpr

Definition at line 17 of file StripClusteringTool.cxx.

◆ TrackFindingValidationDebugHists

constexpr bool ActsTrk::TrackFindingValidationDebugHists = false
constexpr

Definition at line 43 of file TrackFindingValidationAlg.h.

◆ TrackToTruthParticleAssociationDebugHists

constexpr bool ActsTrk::TrackToTruthParticleAssociationDebugHists = false
constexpr

Definition at line 42 of file TrackToTruthAssociationAlg.h.

◆ TruthParticleHitCountDebugHists

constexpr bool ActsTrk::TruthParticleHitCountDebugHists = false
constexpr

Definition at line 42 of file TruthParticleHitCountAlg.h.

ActsTrk::decodeSurface
std::shared_ptr< const Acts::Surface > decodeSurface(const xAOD::SurfaceType surfaceType, const std::vector< float > &translation, const std::vector< float > &rotation, const std::vector< float > &boundValues, const Acts::GeometryContext &)
Definition: SurfaceEncoding.cxx:74
ActsTrk::EtaMinus
@ EtaMinus
Definition: StripInformationHelper.h:13
beamspotPlotBcids.sz
sz
Definition: beamspotPlotBcids.py:521
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
get_generator_info.result
result
Definition: get_generator_info.py:21
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
max
#define max(a, b)
Definition: cfImp.cxx:41
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
Trk::locX
@ locX
Definition: ParamDefs.h:43
Trk::locY
@ locY
local cartesian
Definition: ParamDefs.h:44
make_unique
std::unique_ptr< T > make_unique(Args &&... args)
Definition: SkimmingToolEXOT5.cxx:23
index
Definition: index.py:1
xAOD::SurfaceType
SurfaceType
Definition: TrackingPrimitives.h:551
ActsTrk::DetectorType::UnDefined
@ UnDefined
Small Thing Gap chambers (NSW)
ActsTrk::DetectorType::Tgc
@ Tgc
Resitive Plate Chambers.
python.Constants.ERROR
int ERROR
Definition: Control/AthenaCommon/python/Constants.py:18
ActsDetectorElement::upstreamDetectorElement
const GeoVDetectorElement * upstreamDetectorElement() const
Returns the underllying GeoModel detectorelement that this one is based on.
Definition: ActsDetectorElement.cxx:288
M_PI
#define M_PI
Definition: ActiveFraction.h:11
ActsTrk::computeDtDs
double computeDtDs(const Acts::ParticleHypothesis &hypothesis, double qop)
Helper function to compute dt/ds Helper function to compute the derivative of the time as function of...
Definition: CurvilinearCovarianceHelper.h:15
athena.value
value
Definition: athena.py:122
ActsTrk::actsLevelVector
Acts::Logging::Level actsLevelVector(MSG::Level lvl)
Definition: LoggerUtils.cxx:9
ActsTrk::DetectorType::Sct
@ Sct
ActsTrk::DetectorType::sTgc
@ sTgc
Micromegas (NSW)
ActsTrk::Opposite
@ Opposite
Definition: StripInformationHelper.h:13
ActsTrk::EtaPlus
@ EtaPlus
Definition: StripInformationHelper.h:13
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
InDetDD::SolidStateDetectorElementBase::getIdHelper
const AtlasDetectorID * getIdHelper() const
Returns the id helper (inline)
python.Bindings.values
values
Definition: Control/AthenaPython/python/Bindings.py:797
PrepareReferenceFile.regex
regex
Definition: PrepareReferenceFile.py:43
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:269
xAOD::Cone
@ Cone
Definition: TrackingPrimitives.h:552
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
xAOD::UncalibratedMeasurement_v1
Definition: UncalibratedMeasurement_v1.h:13
ActsTrk::encodeSurface
void encodeSurface(xAOD::SurfaceType &surfaceType, std::vector< float > &translation, std::vector< float > &rotation, std::vector< float > &boundValues, const Acts::Surface *surface, const Acts::GeometryContext &geoContext)
Definition: SurfaceEncoding.cxx:7
ActsUtils::dumpStat
void dumpStat(T_Stream &out, const Stat &stat)
Dump the given statistics object to the given output stream.
Definition: StatUtils.h:62
DetType::Pixel
@ Pixel
Definition: DetType.h:13
InDetDD::DetectorType
DetectorType
Definition: DetectorDesign.h:45
ActsTrk::DetectorType::Mm
@ Mm
Maybe not needed in the migration.
xAOD::UncalibratedMeasurement_v1::type
virtual xAOD::UncalibMeasType type() const =0
Returns the type of the measurement type as a simple enumeration.
lumiFormat.i
int i
Definition: lumiFormat.py:92
ActsTrk::DetectorType::Csc
@ Csc
Thin gap champers.
xAOD::rotation
rotation
Definition: TrackSurface_v1.cxx:15
master.flag
bool flag
Definition: master.py:29
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
xAOD::Disc
@ Disc
Definition: TrackingPrimitives.h:554
InDetDD::DetectorDesign::type
virtual DetectorType type() const
Type of element.
Definition: DetectorDesign.cxx:101
ActsTrk::PhiPlus
@ PhiPlus
Definition: StripInformationHelper.h:13
ActsTrk::DetectorType::Trt
@ Trt
Maybe the Sct / Pixel for Itk become seperate entries?
ActsDetectorElement
Definition: ActsDetectorElement.h:42
python.Constants.WARNING
int WARNING
Definition: Control/AthenaCommon/python/Constants.py:17
SG::AuxElement::index
size_t index() const
Return the index of this element within its container.
xAOD::Perigee
@ Perigee
Definition: TrackingPrimitives.h:555
xAOD::UncalibratedMeasurement_v1::localPosition
ConstVectorMap< N > localPosition() const
Returns the local position of the measurement.
beamspotman.stat
stat
Definition: beamspotman.py:266
min
#define min(a, b)
Definition: cfImp.cxx:40
InDetDD::SiDetectorElement::isPixel
bool isPixel() const
PixelID::layer_disk
int layer_disk(const Identifier &id) const
Definition: PixelID.h:626
ActsTrk::DetectorType::Mdt
@ Mdt
MuonSpectrometer.
xAOD::Straw
@ Straw
Definition: TrackingPrimitives.h:557
xAOD::Cylinder
@ Cylinder
Definition: TrackingPrimitives.h:553
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
ActsTrk::DetectorType::Hgtd
@ Hgtd
InDetDD::PixelBarrel
@ PixelBarrel
Definition: DetectorDesign.h:46
ActsTrk::getUncalibratedMeasurement
const xAOD::UncalibratedMeasurement & getUncalibratedMeasurement(const ATLASUncalibSourceLink &source_link)
Definition: ATLASSourceLink.h:27
SCT_ID::layer_disk
int layer_disk(const Identifier &id) const
Definition: SCT_ID.h:734
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
InDetDD::SiDetectorElement::isBarrel
bool isBarrel() const
test_pythinning.out
out
Definition: test_pythinning.py:94
python.Dumpers.typename
def typename(t)
Definition: Dumpers.py:194
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
a
TList * a
Definition: liststreamerinfos.cxx:10
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
ActsTrk::PhiMinus
@ PhiMinus
Definition: StripInformationHelper.h:13
SCT_ID
Definition: SCT_ID.h:68
python.Constants.INFO
int INFO
Definition: Control/AthenaCommon/python/Constants.py:16
ActsTrk::ThisOne
@ ThisOne
Definition: StripInformationHelper.h:13
LArCellConditions.geo
bool geo
Definition: LArCellConditions.py:46
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DEBUG
#define DEBUG
Definition: page_access.h:11
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:569
ActsTrk::DetectorType::Rpc
@ Rpc
Monitored Drift Tubes.
LArCellBinning.step
step
Definition: LArCellBinning.py:158
InDetDD::SiDetectorElement::isSCT
bool isSCT() const
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
SG::AuxElement::container
const SG::AuxVectorData * container() const
Return the container holding this element.
IActsExtrapolationTool::propagationSteps
virtual ActsPropagationOutput propagationSteps(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, Acts::Direction navDir=Acts::Direction::Forward, double pathLimit=std::numeric_limits< double >::max()) const =0
ActsTrk::athLevelVector
MSG::Level athLevelVector(Acts::Logging::Level lvl)
Definition: LoggerUtils.cxx:29
xAOD::Plane
@ Plane
Definition: TrackingPrimitives.h:556
InDetDD::SiDetectorElement::design
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
PixelID
Definition: PixelID.h:67
ActsTrk::computeFreeToPathDerivatives
Acts::FreeToPathMatrix computeFreeToPathDerivatives(const Acts::Vector3 &direction, double qop, const Acts::Vector3 &bfield, const Acts::ParticleHypothesis &particle_hypothesis)
Compute the path length derivatives for the free/bound to curvilinear paramter transform.
Definition: CurvilinearCovarianceHelper.h:26
dq_make_web_display.cl
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Definition: dq_make_web_display.py:26
ActsTrk::nNeighbours
@ nNeighbours
Definition: StripInformationHelper.h:13
InDetDD::SolidStateDetectorElementBase::identify
virtual Identifier identify() const override final
identifier of this detector element (inline)
SG::AuxVectorData::size_v
virtual size_t size_v() const =0
Return the size of the container.
ActsPropagationOutput
std::pair< std::vector< Acts::detail::Step >, ActsRecordedMaterial > ActsPropagationOutput
Finally the output of the propagation test.
Definition: IActsExtrapolationTool.h:25
xAOD::UncalibMeasType::PixelClusterType
@ PixelClusterType
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37