ATLAS Offline Software
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 
20 namespace Trk {
21  class TrkBaseNode;
22  class TrkTrackState;
23  class TrkPlanarSurface;
24  class Track;
25  class TrackStateOnSurface;
26 }
27 
28 class AtlasDetectorID;
29 class PixelID;
30 class SCT_ID;
31 class TrigL2HitResidual;
32 
34 {
35  public:
36  TrigInDetTrackFitter( const std::string&, const std::string&, const IInterface* );
37  virtual StatusCode initialize();
38  virtual StatusCode finalize();
39 std::pair<Trk::Track*,Trk::Track*> fitTrack(const Trk::Track&, MagField::AtlasFieldCache&, 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 
44 private:
45 
50  void getMagneticField(double[3],double*, MagField::AtlasFieldCache&) const;
51 
52  void correctScale(Trk::TrkTrackState*) const;
53 
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;
64  bool m_doBremm;
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
TrigInDetTrackFitter::m_idHelper
const AtlasDetectorID * m_idHelper
Definition: TrigInDetTrackFitter.h:71
TrigInDetTrackFitter
Definition: TrigInDetTrackFitter.h:34
ITrigInDetTrackFitter.h
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
TrkTrackState
Definition: Trigger/TrigAccel/TrigCudaFitter/src/TrkTrackState.h:17
TrigInDetTrackFitter::m_DChi2
double m_DChi2
Definition: TrigInDetTrackFitter.h:62
AtlasFieldCacheCondObj.h
TrigInDetTrackFitter::m_nTracksTotal
std::atomic< size_t > m_nTracksTotal
Definition: TrigInDetTrackFitter.h:57
IRIO_OnTrackCreator.h
TrigInDetTrackFitter::m_fieldCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Definition: TrigInDetTrackFitter.h:68
Trk::TrkTrackState
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkTrackState.h:24
TrigInDetTrackFitter::initialize
virtual StatusCode initialize()
Definition: TrigInDetTrackFitter.cxx:76
Trk::TrkPlanarSurface
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkPlanarSurface.h:25
TrigInDetTrackFitter::fit
void fit(const TrackCollection &, TrackCollection &, const EventContext &, const Trk::ParticleHypothesis &matEffects=Trk::pion) const
Definition: TrigInDetTrackFitter.cxx:560
TrigInDetTrackFitter::m_sctId
const SCT_ID * m_sctId
Definition: TrigInDetTrackFitter.h:70
TrigInDetTrackFitter::m_doBremm
bool m_doBremm
Definition: TrigInDetTrackFitter.h:64
TrigInDetTrackFitter::createTrackStateOnSurface
Trk::TrackStateOnSurface * createTrackStateOnSurface(Trk::TrkBaseNode *pN, const bool) const
Definition: TrigInDetTrackFitter.cxx:811
TrigInDetTrackFitter::m_ROTcreator
ToolHandle< Trk::IRIO_OnTrackCreator > m_ROTcreator
Definition: TrigInDetTrackFitter.h:67
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
TrkPlanarSurface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/TrkPlanarSurface.h:15
TrigInDetTrackFitter::finalize
virtual StatusCode finalize()
Definition: TrigInDetTrackFitter.cxx:91
Trk::TrkBaseNode
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkBaseNode.h:23
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ITrigDkfTrackMakerTool.h
TrigInDetTrackFitter::fitTrack
std::pair< Trk::Track *, Trk::Track * > fitTrack(const Trk::Track &, MagField::AtlasFieldCache &, const Trk::ParticleHypothesis &matEffects=Trk::pion, const bool addTPtoTSoS=false) const
Definition: TrigInDetTrackFitter.cxx:592
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
AthAlgTool.h
AtlasFieldCache.h
TrigInDetTrackFitter::correctScale
void correctScale(Trk::TrkTrackState *) const
Definition: TrigInDetTrackFitter.cxx:111
TrigInDetTrackFitter::m_pixelId
const PixelID * m_pixelId
Definition: TrigInDetTrackFitter.h:69
DataVector< Trk::Track >
TrigInDetTrackFitter::m_correctClusterPos
bool m_correctClusterPos
Definition: TrigInDetTrackFitter.h:65
TrigInDetTrackFitter::m_fitErrorsLowPt
std::atomic< size_t > m_fitErrorsLowPt
Definition: TrigInDetTrackFitter.h:60
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
TrigInDetTrackFitter::extrapolate
Trk::TrkTrackState * extrapolate(Trk::TrkTrackState *, Trk::TrkPlanarSurface *, Trk::TrkPlanarSurface *, MagField::AtlasFieldCache &) const
Definition: TrigInDetTrackFitter.cxx:133
TrkBaseNode
Definition: Trigger/TrigAccel/TrigCudaFitter/src/TrkBaseNode.h:18
TrigInDetTrackFitter::TrigInDetTrackFitter
TrigInDetTrackFitter(const std::string &, const std::string &, const IInterface *)
Definition: TrigInDetTrackFitter.cxx:58
TrigL2HitResidual
Definition: TrigL2HitResidual.h:24
TrigInDetTrackFitter::m_trackMaker
ToolHandle< ITrigDkfTrackMakerTool > m_trackMaker
Definition: TrigInDetTrackFitter.h:66
SG::ReadCondHandleKey< AtlasFieldCacheCondObj >
TrigInDetTrackFitter::m_fitErrorsUnresolved
std::atomic< size_t > m_fitErrorsUnresolved
Definition: TrigInDetTrackFitter.h:58
SCT_ID
Definition: SCT_ID.h:68
TrigInDetTrackFitter::getMagneticField
void getMagneticField(double[3], double *, MagField::AtlasFieldCache &) const
Definition: TrigInDetTrackFitter.cxx:104
MagField::AtlasFieldCache
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: AtlasFieldCache.h:43
TrigInDetTrackFitter::m_doMultScatt
bool m_doMultScatt
Definition: TrigInDetTrackFitter.h:63
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
TrigInDetTrackFitter::getUnbiasedResiduals
StatusCode getUnbiasedResiduals(const Trk::Track &, std::vector< TrigL2HitResidual > &, const EventContext &) const
Definition: TrigInDetTrackFitter.cxx:882
AthAlgTool
Definition: AthAlgTool.h:26
TrigInDetTrackFitter::m_fitErrorsDivergence
std::atomic< size_t > m_fitErrorsDivergence
Definition: TrigInDetTrackFitter.h:59
PixelID
Definition: PixelID.h:67
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57
ITrigInDetTrackFitter
Definition: ITrigInDetTrackFitter.h:21