|
ATLAS Offline Software
|
Go to the documentation of this file.
12 #ifndef TRKIPATFITTER_MATERIALALLOCATOR_H
13 #define TRKIPATFITTER_MATERIALALLOCATOR_H
21 #include "GaudiKernel/ServiceHandle.h"
22 #include "GaudiKernel/ToolHandle.h"
44 class TrackStateOnSurface;
76 std::vector<FitMeasurement*>& measurements)
const override;
97 std::vector<FitMeasurement*>& measurements)
const;
101 const std::vector<const TrackStateOnSurface*>* material,
106 const ToolHandle<IExtrapolator>& extrapolator,
112 void indetMaterial(std::vector<FitMeasurement*>& measurements,
119 const std::vector<const TrackStateOnSurface*>& material,
120 std::vector<FitMeasurement*>& measurements,
double particleMass)
const;
123 double particleMass)
const;
127 double outwardsEnergy,
128 double particleMass);
142 this,
"Extrapolator",
"Trk::Extrapolator/AtlasExtrapolator",
""};
144 this,
"Intersector",
"Trk::RungeKuttaIntersector/RungeKuttaIntersector",
147 this,
"TrackingGeometrySvc",
"",
""};
149 this,
"TrackingVolumesSvc",
"Trk::TrackingVolumesSvc/TrackingVolumesSvc",
152 this,
"STEP_Propagator",
"Trk::STEP_Propagator/AtlasSTEP_Propagator",
""};
155 this,
"TrackingGeometryReadKey",
"AtlasTrackingGeometry",
156 "Key of the TrackingGeometry conditions data."};
159 static const std::string vol_name =
"MuonSpectrometerEntrance";
200 const std::pair<double, FitMeasurement*>&
y)
const {
201 return x.first <
y.first;
208 #endif // TRKIPATFITTER_MATERIALALLOCATOR_H
void printMeasurements(std::vector< FitMeasurement * > &measurements) const
double m_scatteringLogCoeff
std::unique_ptr< MessageHelper > m_messageHelper
ToolHandle< IPropagator > m_stepPropagator
Trk::MagneticFieldProperties m_stepField
SG::ReadCondHandleKey< TrackingGeometry > m_trackingGeometryReadKey
virtual void allocateMaterial(std::vector< FitMeasurement * > &measurements, ParticleHypothesis particleHypothesis, FitParameters &fitParameters, const TrackParameters &startParameters, Garbage_t &garbage) const override
IMaterialAllocator interface: allocate material.
void spectrometerMaterial(std::vector< FitMeasurement * > &measurements, ParticleHypothesis particleHypothesis, FitParameters &fitParameters, const TrackParameters &startParameters, Garbage_t &garbage) const
const Trk::Volume * m_calorimeterVolume
virtual StatusCode initialize() override
virtual void addLeadingMaterial(std::vector< FitMeasurement * > &measurements, ParticleHypothesis particleHypothesis, FitParameters &fitParameters, Garbage_t &garbage) const override
IMaterialAllocator interface: add leading material effects to fit measurements and parameters.
double m_scatteringConstant
MaterialAllocator(const std::string &type, const std::string &name, const IInterface *parent)
static void deleteMaterial(const std::vector< const TrackStateOnSurface * > *material, Garbage_t &garbage)
virtual StatusCode finalize() override
virtual void orderMeasurements(std::vector< FitMeasurement * > &measurements, Amg::Vector3D startDirection, Amg::Vector3D startPosition) const override
IMaterialAllocator interface: clear temporary TSOS.
bool operator()(const std::pair< double, FitMeasurement * > &x, const std::pair< double, FitMeasurement * > &y) const
const Trk::Volume * m_indetVolume
::StatusCode StatusCode
StatusCode definition for legacy code.
double m_orderingTolerance
std::vector< std::unique_ptr< const TrackStateOnSurface > > Garbage_t
static FitMeasurement * measurementFromTSOS(const TrackStateOnSurface &tsos, double outwardsEnergy, double particleMass)
void addSpectrometerDelimiters(std::vector< FitMeasurement * > &measurements) const
ToolHandle< IIntersector > m_intersector
const Trk::TrackingVolume * getSpectrometerEntrance() const
Main Fitter tool providing the implementation for the different fitting, extension and refitting use ...
Ensure that the ATLAS eigen extensions are properly loaded.
represents the track state (measurement, material, fit parameters and quality) at a surface.
ServiceHandle< ITrackingGeometrySvc > m_trackingGeometrySvc
void indetMaterial(std::vector< FitMeasurement * > &measurements, ParticleHypothesis particleHypothesis, const TrackParameters &startParameters, Garbage_t &garbage) const
ServiceHandle< ITrackingVolumesSvc > m_trackingVolumesSvc
Eigen::Matrix< double, 3, 1 > Vector3D
virtual ~MaterialAllocator()=default
virtual bool reallocateMaterial(std::vector< FitMeasurement * > &measurements, FitParameters &fitParameters, Garbage_t &garbage) const override
IMaterialAllocator interface: has material been reallocated?
#define ATH_MSG_WARNING(x)
std::pair< FitMeasurement *, FitMeasurement * > materialAggregation(const std::vector< const TrackStateOnSurface * > &material, std::vector< FitMeasurement * > &measurements, double particleMass) const
ToolHandle< IExtrapolator > m_extrapolator
const TrackingVolume * trackingVolume(const std::string &name) const
return the tracking Volume by name, 0 if it doesn't exist
virtual void initializeScattering(std::vector< FitMeasurement * > &measurements) const override
IMaterialAllocator interface: initialize scattering (needs to know X0 integral)
const std::vector< const TrackStateOnSurface * > * extrapolatedMaterial(const ToolHandle< IExtrapolator > &extrapolator, const TrackParameters ¶meters, const Surface &surface, PropDirection dir, const BoundaryCheck &boundsCheck, ParticleHypothesis particleHypothesis, Garbage_t &garbage) const
virtual std::vector< const TrackStateOnSurface * > * leadingSpectrometerTSOS(const TrackParameters &spectrometerParameters, Garbage_t &garbage) const override
IMaterialAllocator interface: material TSOS between spectrometer entrance surface and parameters give...
const_pointer_type cptr()