ATLAS Offline Software
Loading...
Searching...
No Matches
IMaterialAllocator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
6// IMaterialAllocator
7// tool interface to allocate tracking geometry material onto indet and/or
8// muon spectrometer tracks
9//
11
12#ifndef TRKIPATFITTERUTILS_IMATERIALALLOCATOR_H
13#define TRKIPATFITTERUTILS_IMATERIALALLOCATOR_H
14
15#include <vector>
16
17#include "GaudiKernel/IAlgTool.h"
20
21namespace Trk {
22
24static const InterfaceID IID_IMaterialAllocator("IMaterialAllocator", 1, 0);
25
33
34class FitMeasurement;
35class FitParameters;
37
38class IMaterialAllocator : virtual public IAlgTool {
39 public:
40 typedef std::vector<std::unique_ptr<const TrackStateOnSurface> > Garbage_t;
41
44
46 static const InterfaceID& interfaceID() { return IID_IMaterialAllocator; }
47
50 virtual void addLeadingMaterial(std::vector<FitMeasurement*>& measurements,
51 ParticleHypothesis particleHypothesis,
52 FitParameters& fitParameters,
53 Garbage_t& garbage) const = 0;
54
56 virtual void allocateMaterial(std::vector<FitMeasurement*>& measurements,
57 ParticleHypothesis particleHypothesis,
58 FitParameters& fitParameters,
59 const TrackParameters& startParameters,
60 Garbage_t& garbage) const = 0;
61
65 std::vector<FitMeasurement*>& measurements) const = 0;
66
70 virtual std::vector<const TrackStateOnSurface*>* leadingSpectrometerTSOS(
71 const TrackParameters& spectrometerParameters,
72 Garbage_t& garbage) const = 0;
73
75 virtual void orderMeasurements(std::vector<FitMeasurement*>& measurements,
76 Amg::Vector3D startDirection,
77 Amg::Vector3D startPosition) const = 0;
78
80 virtual bool reallocateMaterial(std::vector<FitMeasurement*>& measurements,
81 FitParameters& fitParameters,
82 Garbage_t& garbage) const = 0;
83};
84
85} // namespace Trk
86
87#endif // TRKIPATFITTERUTILS_IMATERIALALLOCATOR_H
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