![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
14 #ifndef __TRK_DISTRIBUTED_KALMAN_FILTER__
15 #define __TRK_DISTRIBUTED_KALMAN_FILTER__
18 #include "GaudiKernel/EventContext.h"
19 #include "GaudiKernel/ToolHandle.h"
40 class TrackStateOnSurface;
64 virtual std::unique_ptr<Track>
fit(
65 const EventContext& ctx,
70 virtual std::unique_ptr<Track>
fit(
const EventContext&,
80 virtual std::unique_ptr<Track>
fit(
81 const EventContext& ctx,
87 virtual std::unique_ptr<Track>
fit(
88 const EventContext& ctx,
94 virtual std::unique_ptr<Track>
fit(
95 const EventContext& ctx,
102 virtual std::unique_ptr<Track>
fit(
const EventContext&,
112 std::unique_ptr<Track>
fit(
113 const EventContext& ctx,
120 using PVPNodes = std::vector<std::unique_ptr<TrkBaseNode> >;
121 using PVPSurfaces = std::vector<std::unique_ptr<TrkPlanarSurface> >;
128 std::unique_ptr<Trk::TrkTrackState>
164 "Trk::RIO_OnTrackCreator/RIO_OnTrackCreator",
169 "Trk::Extrapolator/Extrapolator",
170 "Extrapolator Tool" };
174 "AtlasFieldCacheCondObj",
176 "Name of the Magnetic Field conditions object key"
194 for (
int i = 0;
i < 3;
i++)
void getMagneticField(double[3], double *, MagField::AtlasFieldCache &fieldCache) const
std::vector< const RIO_OnTrack * > RIO_OnTrackSet
vector of detector hits on a track
std::vector< const PrepRawData * > PrepRawDataSet
vector of clusters and drift circles
TrackStateOnSurface * createTrackStateOnSurface(TrkBaseNode *) const
virtual std::unique_ptr< Track > fit(const EventContext &, const Track &, const Track &, const RunOutlierRemoval, const ParticleHypothesis) const override
COMBINE TWO TRACKS BY REFITTING.
void report(char fileName[])
static void calculateLRsolution(PVPNodes &pvpNodes)
virtual StatusCode initialize() override
std::vector< double > m_option_sortingRefPoint
DistributedKalmanFilter(const std::string &, const std::string &, const IInterface *)
bool RunOutlierRemoval
switch to toggle quality processing after fit
double integrate(double Rk[5], TrkPlanarSurface *pSB, TrkPlanarSurface *pSE, double *Rf, MagField::AtlasFieldCache &fieldCache) const
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
virtual StatusCode finalize() override
bool runForwardKalmanFilter(PVPNodes &pvpNodes, PVPTrackStates &pvpTrackStates, TrkTrackState *, MagField::AtlasFieldCache &fieldCache) const
::StatusCode StatusCode
StatusCode definition for legacy code.
static int findOutliers(PVPNodes &pvpNodes, double)
ToolHandle< IRIO_OnTrackCreator > m_ROTcreator
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
Ensure that the ATLAS eigen extensions are properly loaded.
represents the track state (measurement, material, fit parameters and quality) at a surface.
ToolHandle< IExtrapolator > m_extrapolator
virtual ~DistributedKalmanFilter()
static void runSmoother(PVPTrackStates &pvpTrackStates)
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
virtual std::unique_ptr< Track > fit(const EventContext &, const Track &, const PrepRawDataSet &, const RunOutlierRemoval, const ParticleHypothesis) const override
RE-FIT A TRACK, ADDING A PRD SET.
virtual std::unique_ptr< Track > fit(const EventContext &ctx, const Track &, const RunOutlierRemoval runOutlier=false, const ParticleHypothesis matEffects=Trk::nonInteracting) const override
RE-FIT A TRACK.
void getField(const double *ATH_RESTRICT xyz, double *ATH_RESTRICT bxyz, double *ATH_RESTRICT deriv=nullptr)
get B field value at given position xyz[3] is in mm, bxyz[3] is in kT if deriv[9] is given,...
const AtlasDetectorID * m_idHelper
std::vector< std::unique_ptr< TrkTrackState > > PVPTrackStates
std::vector< std::unique_ptr< TrkBaseNode > > PVPNodes
std::unique_ptr< Trk::TrkTrackState > extrapolate(TrkTrackState *, TrkPlanarSurface *, TrkPlanarSurface *, MagField::AtlasFieldCache &fieldCache) const
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
std::vector< std::unique_ptr< TrkPlanarSurface > > PVPSurfaces