ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_TrackTimingTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
6// TRT_TrackTimingTool.h, (c) ATLAS Detector software
8
9#ifndef TRTTRACKTIMINGTOOL_H
10#define TRTTRACKTIMINGTOOL_H
11
12#include <vector>
13
14#include "GaudiKernel/ToolHandle.h"
17#include "TrkTrack/Track.h"
23
25
28
31
32class AtlasDetectorID;
33class Identifier;
34
35namespace Trk{
36 class ITrackFitter;
37}
38
43
44namespace InDet
45{
46
47 class IInDetCosmicsEventPhaseTool;
48
49class TRT_TrackTimingTool : virtual public ITRT_TrackTimingTool, public AthAlgTool {
50 public:
51 TRT_TrackTimingTool(const std::string&, const std::string&, const IInterface*);
52
54 virtual ~TRT_TrackTimingTool();
55
57 virtual StatusCode initialize();
58
60 virtual StatusCode finalize();
61
62 virtual std::vector<Trk::SpaceTimePoint*> timeMeasurements(const Trk::Track& trk, const Trk::SegmentCollection *sgmColl = 0) const;
63 virtual std::vector<Trk::SpaceTimePoint*> timeMeasurements(const Trk::TrackParticleBase& trk) const; // calls the above
64 virtual std::vector<Trk::SpaceTimePoint*> timeMeasurements(std::vector<const Trk::Segment*> segments) const; // will return empty vector!
65
67 float getTrackTimeFromDriftRadius(const Trk::Track* track, int &nHits) const;
68
69 private:
70
72 ToolHandle<Trk::ITrackFitter> m_ITrackFitter; // refit the ID track if measurements on track are not available
73 ToolHandle<InDet::IInDetCosmicsEventPhaseTool> m_eventPhaseTool; //<! Cosmics Event Phase tool
74
75 ToolHandle<ITRT_CalDbTool> m_caldbtool ;
76
78 bool m_debug;
80
81
82
84 float etaCorrection(const Trk::Track& track) const;
85
87 void trackInformation(const Trk::Track& track, Amg::Vector3D &position, int &nTRTdriftCircles, int &nMissingRDOs, int &nMissingTrackParameters, int &nUsedHits) const;
88
90 void debugMissingMeasurements(const Trk::Track& trk) const;
91
92 };
93
94}
95
96#endif
abstract interface to TRT calibration constants
static const uint32_t nHits
Property holding a SG store/key/clid from which a ReadHandle is made.
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...
Interface for tools that calculate the track time - only a wrapper such that it can be accessed in th...
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Current event.
ToolHandle< Trk::ITrackFitter > m_ITrackFitter
tools - this is the tool that actually does the work
float getTrackTimeFromDriftRadius(const Trk::Track *track, int &nHits) const
calculate the time from drift radius - when RDO hits are not available - for running on AODs
virtual StatusCode initialize()
standard Athena-Algorithm method
void trackInformation(const Trk::Track &track, Amg::Vector3D &position, int &nTRTdriftCircles, int &nMissingRDOs, int &nMissingTrackParameters, int &nUsedHits) const
get basic track info to know which function needs to be called, and calculate the position
ToolHandle< ITRT_CalDbTool > m_caldbtool
TRT Calibration DB tool.
virtual std::vector< Trk::SpaceTimePoint * > timeMeasurements(const Trk::Track &trk, const Trk::SegmentCollection *sgmColl=0) const
returns time measurements for a given track.
virtual ~TRT_TrackTimingTool()
default destructor
TRT_TrackTimingTool(const std::string &, const std::string &, const IInterface *)
virtual StatusCode finalize()
standard Athena-Algorithm method
ToolHandle< InDet::IInDetCosmicsEventPhaseTool > m_eventPhaseTool
float etaCorrection(const Trk::Track &track) const
eta-dependent corrections, called if m_doEtaCorrection == true
void debugMissingMeasurements(const Trk::Track &trk) const
private debugging function for commissioning phase
Property holding a SG store/key/clid from which a ReadHandle is made.
Provides the abstract interface for track fitting in the common ATLAS Tracking EDM.
Eigen::Matrix< double, 3, 1 > Vector3D
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
DataVector< Trk::Segment > SegmentCollection