ATLAS Offline Software
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 
27 class MsgStream;
28 
29 namespace InDet {
30 
31 class TRT_DriftCircle final : public Trk::PrepRawData
32 {
33  friend class ::TRT_DriftCircleContainerCnv;
35  friend class ::TRT_DriftCircleContainerCnv_p0;
37  // Public methods:
39 public:
42  TRT_DriftCircle(const TRT_DriftCircle&) = default;
45  virtual ~TRT_DriftCircle() = default;
52  TRT_DriftCircle(const Identifier& Id,
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,
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 bool type(Trk::PrepRawDataType type) const override final;
109 
110  // modifiers
111 
114 
115  // analysers
116 
121  bool isNoise() const;
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 
131 private:
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 
138 MsgStream&
139 operator<<(MsgStream& stream, const TRT_DriftCircle& prd);
140 std::ostream&
141 operator<<(std::ostream& stream, const TRT_DriftCircle& prd);
142 }
143 
145 #endif // TRKPREPRAWDATA_TRT_DRIFTCIRCLE_H
146 
InDet::TRT_DriftCircle::~TRT_DriftCircle
virtual ~TRT_DriftCircle()=default
InDet::operator<<
MsgStream & operator<<(MsgStream &, const GNNTrackReaderTool &)
Trk::PrepRawDataType
PrepRawDataType
Definition: PrepRawData.h:39
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:27
InDet::TRT_DriftCircleContainerCnv_p1
Definition: TRT_DriftCircleContainerCnv_p1.h:28
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::TRT_DriftCircle::timeOverThreshold
double timeOverThreshold() const
returns Time over threshold in ns
InDet::TRT_DriftCircle::TRT_DriftCircle
TRT_DriftCircle()
Definition: TRT_DriftCircle.cxx:48
InDet::TRT_DriftCircle::detectorElement
virtual const InDetDD::TRT_BaseElement * detectorElement() const override final
return the detector element corresponding to this PRD
InDet::TRT_DriftCircle::numberOfLowsBetweenEdges
int numberOfLowsBetweenEdges() const
returns number of low bins between LE and TE (these included)
InDet::TRT_DriftCircle::operator=
TRT_DriftCircle & operator=(TRT_DriftCircle &&)=default
Trk::PrepRawData::rdoList
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
InDet::TRT_DriftCircle::TRT_DriftCircle
TRT_DriftCircle(const TRT_DriftCircle &)=default
InDet::TRT_DriftCircle::m_detEl
const InDetDD::TRT_BaseElement * m_detEl
Definition: TRT_DriftCircle.h:133
TRT_LoLumRawData::Island
Definition: TRT_LoLumRawData.h:92
InDet::TRT_DriftCircle::m_island
CxxUtils::CachedValue< Island > m_island
Definition: TRT_DriftCircle.h:135
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
InDet::TRT_DriftCircle::driftTimeBin
int driftTimeBin() const
returns the leading edge bin defined as in TRT_LoLumRawData to be the first 0-1 transition
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
PrepRawData.h
InDet::TRT_DriftCircle
Definition: TRT_DriftCircle.h:32
calibdata.valid
list valid
Definition: calibdata.py:45
TRT_DriftCircle.icc
InDet::TRT_DriftCircle::driftTime
double driftTime(bool &valid) const
returns the raw driftTime, the passed boolean indicates if the drift time is valid or not.
TRT_DriftCircleContainerCnv
Definition: TRT_DriftCircleContainerCnv.h:24
InDet::TRT_DriftCircle::isNoise
bool isNoise() const
returns true if the hit is caused by noise with a high probability.
InDet::TRT_DriftCircle::operator=
TRT_DriftCircle & operator=(const TRT_DriftCircle &)=default
Trk::driftRadius
@ driftRadius
trt, straws
Definition: ParamDefs.h:53
CxxUtils
Definition: aligned_vector.h:29
InDet::TRT_DriftCircle::numberOfHighsBetweenEdges
int numberOfHighsBetweenEdges() const
returns number of high bins between LE and TE (these included)
InDet::TRT_DriftCircle::trailingEdge
int trailingEdge() const
returns the trailing edge bin
Trk::RIO_OnTrackType::TRT_DriftCircle
@ TRT_DriftCircle
Definition: RIO_OnTrack.h:59
Trk::PrepRawData
Definition: PrepRawData.h:62
TRT_BaseElement.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
InDet::TRT_DriftCircle::lastBinHigh
bool lastBinHigh() const
returns true if the last bin is high
InDet::TRT_DriftCircle::highLevel
bool highLevel() const
returns true if the high level threshold was passed
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDet::TRT_DriftCircle::type
virtual bool type(Trk::PrepRawDataType type) const override final
Interface method checking the type.
InDet::TRT_DriftCircle::driftTimeValid
bool driftTimeValid() const
return true if the corrected drift time is OK
InDet::TRT_DriftCircle::setDriftTimeValid
void setDriftTimeValid(bool valid)
set driftTimeValid flag
InDet::TRT_DriftCircle::dump
virtual MsgStream & dump(MsgStream &stream) const override final
dump information about the PRD object.
Definition: TRT_DriftCircle.cxx:57
TRT_DriftCircleContainerCnv_p0
Definition: TRT_DriftCircleContainerCnv_p0.h:21
InDet::TRT_DriftCircle::m_word
unsigned int m_word
Definition: TRT_DriftCircle.h:134
InDet::TRT_DriftCircle::rawDriftTime
double rawDriftTime() const
returns the raw driftTime
InDet::TRT_DriftCircle::getWord
unsigned int getWord() const
returns the TRT dataword
InDet::TRT_DriftCircle::firstBinHigh
bool firstBinHigh() const
returns true if the first bin is high
InDetDD::TRT_BaseElement
Definition: TRT_BaseElement.h:57
TRT_LoLumRawData.h
Identifier
Definition: IdentifierFieldParser.cxx:14