12#ifndef TRKIPATFITTERUTILS_IMATERIALALLOCATOR_H
13#define TRKIPATFITTERUTILS_IMATERIALALLOCATOR_H
17#include "GaudiKernel/IAlgTool.h"
40 typedef std::vector<std::unique_ptr<const TrackStateOnSurface> >
Garbage_t;
65 std::vector<FitMeasurement*>& measurements)
const = 0;
Base class for MaterialAllocator AlgTool.
virtual void orderMeasurements(std::vector< FitMeasurement * > &measurements, Amg::Vector3D startDirection, Amg::Vector3D startPosition) const =0
IMaterialAllocator interface: clear temporary TSOS.
virtual void initializeScattering(std::vector< FitMeasurement * > &measurements) const =0
IMaterialAllocator interface: initialize scattering (needs to know X0 integral)
virtual void allocateMaterial(std::vector< FitMeasurement * > &measurements, ParticleHypothesis particleHypothesis, FitParameters &fitParameters, const TrackParameters &startParameters, Garbage_t &garbage) const =0
IMaterialAllocator interface: allocate material.
std::vector< std::unique_ptr< const TrackStateOnSurface > > Garbage_t
virtual void addLeadingMaterial(std::vector< FitMeasurement * > &measurements, ParticleHypothesis particleHypothesis, FitParameters &fitParameters, Garbage_t &garbage) const =0
IMaterialAllocator interface: add leading material effects to fit measurements and parameters.
virtual ~IMaterialAllocator()
Virtual destructor.
virtual std::vector< const TrackStateOnSurface * > * leadingSpectrometerTSOS(const TrackParameters &spectrometerParameters, Garbage_t &garbage) const =0
IMaterialAllocator interface: material TSOS between spectrometer entrance surface and parameters give...
static const InterfaceID & interfaceID()
AlgTool and IAlgTool interface methods.
virtual bool reallocateMaterial(std::vector< FitMeasurement * > &measurements, FitParameters &fitParameters, Garbage_t &garbage) const =0
IMaterialAllocator interface: has material been reallocated?
represents the track state (measurement, material, fit parameters and quality) at a surface.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
static const InterfaceID IID_IMaterialAllocator("IMaterialAllocator", 1, 0)
Interface ID for IMaterialAllocator.
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
ParametersBase< TrackParametersDim, Charged > TrackParameters