ATLAS Offline Software
Loading...
Searching...
No Matches
TrigInDetTrackFitter.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGINDETTRACKFITTER_TRIGINDETTRACKFITTER_H
6#define TRIGINDETTRACKFITTER_TRIGINDETTRACKFITTER_H
7
9#include "GaudiKernel/ToolHandle.h"
10#include "GaudiKernel/ServiceHandle.h"
11
15// MagField cache
18
19
20namespace Trk {
21 class TrkBaseNode;
22 class TrkTrackState;
23 class TrkPlanarSurface;
24 class Track;
26}
27
28class AtlasDetectorID;
29class PixelID;
30class SCT_ID;
32
34{
35 public:
36 TrigInDetTrackFitter( const std::string&, const std::string&, const IInterface* );
37 virtual StatusCode initialize();
38 virtual StatusCode finalize();
39std::pair<Trk::Track*,Trk::Track*> fitTrack(const Trk::Track&, MagField::AtlasFieldCache&, const EventContext& ctx, const Trk::ParticleHypothesis& matEffects = Trk::pion, const bool addTPtoTSoS=false) const;
40 void fit(const TrackCollection&, TrackCollection&, const EventContext&, const Trk::ParticleHypothesis& matEffects = Trk::pion) const;
41 void fit(const TrackCollection&, TrackCollection&, TrackCollection&, const EventContext&, const Trk::ParticleHypothesis& matEffects = Trk::pion, const bool addTPtoTSoS=false) const;
42 StatusCode getUnbiasedResiduals(const Trk::Track&, std::vector<TrigL2HitResidual>&, const EventContext&) const;
43
44private:
45
50 void getMagneticField(double[3],double*, MagField::AtlasFieldCache&) const;
51
53
54 Trk::TrackStateOnSurface* createTrackStateOnSurface(Trk::TrkBaseNode* pN, const bool, const EventContext& ctx) const;
55
56 //counters
57 mutable std::atomic<size_t> m_nTracksTotal;
58 mutable std::atomic<size_t> m_fitErrorsUnresolved;
59 mutable std::atomic<size_t> m_fitErrorsDivergence;
60 mutable std::atomic<size_t> m_fitErrorsLowPt;
61
62 double m_DChi2;
66 ToolHandle<ITrigDkfTrackMakerTool> m_trackMaker;
67 ToolHandle<Trk::IRIO_OnTrackCreator> m_ROTcreator;
68 SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
69 const PixelID* m_pixelId = nullptr;
70 const SCT_ID* m_sctId = nullptr;
71 const AtlasDetectorID* m_idHelper = nullptr;
72};
73
74#endif
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:67
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
std::atomic< size_t > m_nTracksTotal
StatusCode getUnbiasedResiduals(const Trk::Track &, std::vector< TrigL2HitResidual > &, const EventContext &) const
ToolHandle< Trk::IRIO_OnTrackCreator > m_ROTcreator
TrigInDetTrackFitter(const std::string &, const std::string &, const IInterface *)
const AtlasDetectorID * m_idHelper
std::atomic< size_t > m_fitErrorsUnresolved
void fit(const TrackCollection &, TrackCollection &, const EventContext &, const Trk::ParticleHypothesis &matEffects=Trk::pion) const
ToolHandle< ITrigDkfTrackMakerTool > m_trackMaker
virtual StatusCode finalize()
Trk::TrkTrackState * extrapolate(Trk::TrkTrackState *, Trk::TrkPlanarSurface *, Trk::TrkPlanarSurface *, MagField::AtlasFieldCache &) const
Trk::TrackStateOnSurface * createTrackStateOnSurface(Trk::TrkBaseNode *pN, const bool, const EventContext &ctx) const
std::atomic< size_t > m_fitErrorsLowPt
std::atomic< size_t > m_fitErrorsDivergence
void correctScale(Trk::TrkTrackState *) const
void getMagneticField(double[3], double *, MagField::AtlasFieldCache &) const
std::pair< Trk::Track *, Trk::Track * > fitTrack(const Trk::Track &, MagField::AtlasFieldCache &, const EventContext &ctx, const Trk::ParticleHypothesis &matEffects=Trk::pion, const bool addTPtoTSoS=false) const
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
virtual StatusCode initialize()
represents the track state (measurement, material, fit parameters and quality) at a surface.
Ensure that the ATLAS eigen extensions are properly loaded.
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.