ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_DriftCircle.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_DriftCircle.h
7// Header file for class TRT_DriftCircle
9// (c) ATLAS Detector software
11// Class to implement DriftCircle for TRT
13// Version 7.0 15/07/2007 Peter Hansen
15
16#ifndef TRKPREPRAWDATA_TRT_DRIFTCIRCLE_H
17#define TRKPREPRAWDATA_TRT_DRIFTCIRCLE_H
18
19// Base class
23#include <iosfwd>
24
27class MsgStream;
28
29namespace InDet {
30
32{
33 friend class ::TRT_DriftCircleContainerCnv;
35 friend class ::TRT_DriftCircleContainerCnv_p0;
37 // Public methods:
39public:
45 virtual ~TRT_DriftCircle() = default;
53 const Amg::Vector2D& driftRadius,
54 std::vector<Identifier>&& rdoList,
55 Amg::MatrixX&& errDriftRadius,
56 const InDetDD::TRT_BaseElement* detEl,
57 const unsigned int word = 0);
58
59 TRT_DriftCircle(const Identifier& clusId,
60 const Amg::Vector2D& driftRadius,
61 Amg::MatrixX&& errDriftRadius,
62 const InDetDD::TRT_BaseElement* detEl,
63 const unsigned int word = 0);
64
66 unsigned int getWord() const;
67
70 int driftTimeBin() const;
71
73 int trailingEdge() const;
74
76 bool highLevel() const;
77
79 bool firstBinHigh() const;
80
82 bool lastBinHigh() const;
83
85 double timeOverThreshold() const;
86
89
93 double rawDriftTime() const;
94
98 double driftTime(bool& valid) const;
99
101 bool driftTimeValid() const;
102
105 const override final;
106
108 virtual Trk::PrepRawDataType prdType() const override final;
109
110 // modifiers
111
113 void setDriftTimeValid(bool valid);
114
115 // analysers
116
122
123 // debug printers
124
126 virtual MsgStream& dump(MsgStream& stream) const override final;
127
129 virtual std::ostream& dump(std::ostream& stream) const override final;
130
131private:
132 // not owning plain ptr
133 const InDetDD::TRT_BaseElement* m_detEl;
134 unsigned int m_word;
135 CxxUtils::CachedValue<Island> m_island{};
136};
137
138MsgStream&
139operator<<(MsgStream& stream, const TRT_DriftCircle& prd);
140std::ostream&
141operator<<(std::ostream& stream, const TRT_DriftCircle& prd);
142}
143
145#endif // TRKPREPRAWDATA_TRT_DRIFTCIRCLE_H
146
Virtual base class of TRT readout elements.
friend class TRT_DriftCircleContainerCnv_p1
unsigned int getWord() const
returns the TRT dataword
bool driftTimeValid() const
return true if the corrected drift time is OK
int driftTimeBin() const
returns the leading edge bin defined as in TRT_LoLumRawData to be the first 0-1 transition
CxxUtils::CachedValue< Island > m_island
bool isNoise() const
returns true if the hit is caused by noise with a high probability.
TRT_LoLumRawData::Island Island
bool lastBinHigh() const
returns true if the last bin is high
const InDetDD::TRT_BaseElement * m_detEl
TRT_DriftCircle & operator=(TRT_DriftCircle &&)=default
bool firstBinHigh() const
returns true if the first bin is high
virtual Trk::PrepRawDataType prdType() const override final
Interface method checking the type.
void setDriftTimeValid(bool valid)
set driftTimeValid flag
bool highLevel() const
returns true if the high level threshold was passed
double rawDriftTime() const
returns the raw driftTime
int numberOfHighsBetweenEdges() const
returns number of high bins between LE and TE (these included)
double timeOverThreshold() const
returns Time over threshold in ns
TRT_DriftCircle(const TRT_DriftCircle &)=default
int trailingEdge() const
returns the trailing edge bin
TRT_DriftCircle & operator=(const TRT_DriftCircle &)=default
double driftTime(bool &valid) const
returns the raw driftTime, the passed boolean indicates if the drift time is valid or not.
int numberOfLowsBetweenEdges() const
returns number of low bins between LE and TE (these included)
virtual ~TRT_DriftCircle()=default
virtual const InDetDD::TRT_BaseElement * detectorElement() const override final
return the detector element corresponding to this PRD
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
STL class.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 2, 1 > Vector2D
Message Stream Member.
Primary Vertex Finder.
MsgStream & operator<<(MsgStream &, const GNNTrackFinderTritonTool &)
Ensure that the ATLAS eigen extensions are properly loaded.
-event-from-file
STL namespace.
#define private