ATLAS Offline Software
TRT_DriftCircleTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Implementation file for class TRT_DriftCircleTool
8 // (c) ATLAS Detector software
10 // AlgTool used for TRT RDI collection production
12 // Version 1.0 18/02/2003 I.Gavrilenko
14 
15 #include "GaudiKernel/ISvcLocator.h"
16 #include "GaudiKernel/DataSvc.h"
17 #include "GaudiKernel/SmartDataPtr.h"
22 
24 #include "InDetIdentifier/TRT_ID.h"
26 
30 
33 // Constructior
35 
37  const std::string& n,
38  const IInterface* p ):
39  AthAlgTool(t,n,p),
40  m_driftFunctionTool("TRT_DriftFunctionTool"),
41  m_ConditionsSummary("TRT_StrawStatusSummaryTool",this),
42  m_useConditionsStatus(false),
43  m_useConditionsHTStatus(false),
44  m_useToTCorrection(false),
45  m_useHTCorrection(false),
46  m_trtid(nullptr),
47  m_reject_if_first_bit(false),
48  m_reject_if_first_bit_argon(true),
49  m_min_trailing_edge(11.0*CLHEP::ns),
50  m_min_trailing_edge_argon(11.0*CLHEP::ns),
51  m_max_drift_time(60*CLHEP::ns),
52  m_max_drift_time_argon(60*CLHEP::ns),
53  m_out_of_time_supression(false),
54  m_out_of_time_supression_argon(false),
55  m_validity_gate_suppression(false),
56  m_validity_gate_suppression_argon(false),
57  m_low_gate(18.0*CLHEP::ns),
58  m_low_gate_argon(18.0*CLHEP::ns),
59  m_high_gate(38.0*CLHEP::ns),
60  m_high_gate_argon(38.0*CLHEP::ns)
61 {
62  declareInterface<ITRT_DriftCircleTool>(this);
63  declareProperty("TRTDriftFunctionTool", m_driftFunctionTool);
64  declareProperty("ConditionsSummaryTool",m_ConditionsSummary);
65  declareProperty("UseConditionsStatus",m_useConditionsStatus);
66  declareProperty("UseConditionsHTStatus",m_useConditionsHTStatus);
67  declareProperty("useDriftTimeToTCorrection",m_useToTCorrection);
68  declareProperty("useDriftTimeHTCorrection",m_useHTCorrection);
69  declareProperty("RejectIfFirstBit",m_reject_if_first_bit);
70  declareProperty("RejectIfFirstBitArgon",m_reject_if_first_bit_argon);
71  declareProperty("MinTrailingEdge",m_min_trailing_edge);
72  declareProperty("MinTrailingEdgeArgon",m_min_trailing_edge_argon);
73  declareProperty("MaxDriftTime",m_max_drift_time);
74  declareProperty("MaxDriftTimeArgon",m_max_drift_time_argon);
75  declareProperty("SimpleOutOfTimePileupSupression",m_out_of_time_supression);
76  declareProperty("SimpleOutOfTimePileupSupressionArgon",m_out_of_time_supression_argon);
77  declareProperty("ValidityGateSuppression",m_validity_gate_suppression);
78  declareProperty("ValidityGateSuppressionArgon",m_validity_gate_suppression_argon);
79  declareProperty("LowGate",m_low_gate);
80  declareProperty("LowGateArgon",m_low_gate_argon);
81  declareProperty("HighGate",m_high_gate);
82  declareProperty("HighGateArgon",m_high_gate_argon);
83 }
84 
86 // Destructor
88 
90 
92 // Initialisation
94 
96 {
97 
99 
100  // Get DriftFunction tool servise
101  //
102  if ( m_driftFunctionTool.retrieve().isFailure() ) {
103  ATH_MSG_FATAL( m_driftFunctionTool.propertyName() << ": Failed to retrieve tool " << m_driftFunctionTool.type() );
104  return StatusCode::FAILURE;
105  }
106  ATH_MSG_DEBUG( m_driftFunctionTool.propertyName() << ": Retrieved tool " << m_driftFunctionTool.type() );
107 
109  if ( m_ConditionsSummary.retrieve().isFailure() ) {
110  ATH_MSG_FATAL( "Failed to retrieve "<< m_ConditionsSummary);
111  return StatusCode::FAILURE;
112  }
113  ATH_MSG_DEBUG( "Retrieved tool " << m_ConditionsSummary);
114  }
115 
116  // Get TRT ID helper
117  sc = detStore()->retrieve(m_trtid,"TRT_ID");
118  if ( sc.isFailure() ) {
119  ATH_MSG_FATAL( "Could not retrieve TRT ID helper." );
120  return sc;
121  }
122 
124  if (m_lumiDataKey.key().empty()) {
125  ATH_MSG_DEBUG("Luminosity conditions data key not set. No mu correction." );
126  }
127 
128  // Initialize readCondHandle key
130 
131  return sc;
132 }
133 
135 // Finalize
137 
139 {
140  StatusCode sc = AthAlgTool::finalize(); return sc;
141 }
142 
144 // Test validity gate
146 bool InDet::TRT_DriftCircleTool::passValidityGate(unsigned int word, float lowGate, float highGate, float t0) const
147 {
148  bool foundInterval = false;
149  unsigned mask = 0x02000000;
150  int i = 0;
151  while ( !foundInterval && (i < 24) ) {
152  if (word & mask) {
153  float thisTime = ((0.5+i)*3.125)-t0;
154  if (thisTime >= lowGate && thisTime <= highGate) foundInterval = true;
155  }
156  mask >>= 1;
157  if (i == 7 || i == 15)
158  mask >>= 1;
159  i++;
160  }
161  return foundInterval;
162 }
163 
164 
166 // Trk::TRT_DriftCircles collection production
168 
171  int Mode,
173  const EventContext& ctx,
174  DataPool<TRT_DriftCircle>* dataItemsPool,
175  const bool getTRTBadChannel) const
176 {
177 
178  //Initialise a new TRT_DriftCircleCollection
179  InDet::TRT_DriftCircleCollection* rio = nullptr;
180 
181  if (!rdo) {
182  ATH_MSG_ERROR("empty TRT raw data collection");
183  return rio;
184  }
185 
187  const InDetDD::TRT_DetElementCollection* elements(trtDetEleHandle->getElements());
188  if (not trtDetEleHandle.isValid() or elements==nullptr) {
189  ATH_MSG_FATAL(m_trtDetEleContKey.fullKey() << " is not available.");
190  return rio;
191  }
192 
193  float mu = 0;
194  if (!m_lumiDataKey.empty()) {
196  mu = lumiData->lbAverageInteractionsPerCrossing();
197  }
198 
200 
201  //Get the BaseElement and initialize the RIO collection
202  IdentifierHash IHc = rdo ->identifyHash();
203  const InDetDD::TRT_BaseElement* pE = elements->getDetectorElement(IHc);
204  rio = new InDet::TRT_DriftCircleCollection(IHc);
205  rio->setIdentifier(rdo->identify());
206  rio->reserve( std::distance(rb, re) );
207  //DataPool will own them if there.
208  if (dataItemsPool) {
209  rio->clear(SG::VIEW_ELEMENTS);
210  }
211 
212  bool isArgonStraw = false;
213  bool isGasSet = false;
214 
215  // Loop through all RDOs in the collection
216  //
217  for(r=rb; r!=re; ++r) {
218 
219  // raw data
220  Identifier id = (*r)->identify();
221  int LTbin = (*r)->driftTimeBin();
222  bool isOK =true;
223  double t0 =0.;
224  double rawTime = m_driftFunctionTool->rawTime(LTbin);
225  unsigned int word = (*r)->getWord();
226 
227  // Gas status - assumed same for all rdo's in the collection
228  if (m_useConditionsHTStatus && !isGasSet) {
229  if (m_ConditionsSummary->getStatusHT(id, ctx) == TRTCond::StrawStatus::Argon ||
230  m_ConditionsSummary->getStatusHT(id, ctx) == TRTCond::StrawStatus::Dead) {
231  isArgonStraw = true;
232  }
233  isGasSet = true;
234  }
235 
236 
237  // ToT and HT Corrections
238  if (m_useToTCorrection) {
239  rawTime -= m_driftFunctionTool->driftTimeToTCorrection((*r)->timeOverThreshold(), id, isArgonStraw);
240  }
241  if (m_useHTCorrection && (*r)->highLevel()) {
242  rawTime += m_driftFunctionTool->driftTimeHTCorrection(id, isArgonStraw);
243  }
244 
245  // calibrated data
246  double radius = 0.;
247  double driftTime = 0.;
248  if( LTbin==0 || LTbin==24) {
249  isOK=false;
250  } else {
251  bool dummy=false;
252  radius = m_driftFunctionTool->driftRadius(rawTime,id,t0,dummy,word);
253  driftTime = rawTime-t0;
254  }
255  if(!isOK) word &= 0xF7FFFFFF;
256  else word |= 0x08000000;
257 
258  // test validity gate
259  rawTime = (0.5+LTbin)*3.125; //redefine rawTime in order to keep Tier0 frozen
260  if (!isArgonStraw) {
262  // reject if first bit true
263  if ((word & 0x02000000) && m_reject_if_first_bit) continue;
264  // or if trailing edge (which is drift time + ToT) is less than min trailing edge
265  if ((rawTime + (*r)->timeOverThreshold()) < m_min_trailing_edge) continue;
266  // if leading edge is too large
267  if (rawTime > m_max_drift_time) continue;
268  }
269 
271  if(!passValidityGate(word, m_low_gate, m_high_gate, t0)) continue;
272  }
273  } else { // is argon straw, in case we want to do anything different for argon straws
275  // reject if first bit true
276  if ((word & 0x02000000) && m_reject_if_first_bit_argon) continue;
277  // or if trailing edge (which is drift time + ToT) is less than min trailing edge
278  if ((rawTime + (*r)->timeOverThreshold()) < m_min_trailing_edge_argon) continue;
279  // or if leading edge is too large
280  if (rawTime > m_max_drift_time_argon) continue;
281  }
282 
285  continue;
286  }
287  }
288 
289  // Require good straw status
290  if (m_useConditionsStatus && getTRTBadChannel) {
291  if (m_ConditionsSummary->getStatus(id,ctx) != TRTCond::StrawStatus::Good)
292  continue;
293  }
294 
295  // Error on Drift Radius
296  double error = 0;
297  // LE out of range. Make tube hit.
298  if (!isOK || Mode > 1) {
299  ATH_MSG_VERBOSE(" Making tube hit.");
300  radius = 0.;
301  error = 4. / sqrt(12.);
302  } else {
303  error =
304  m_driftFunctionTool->errorOfDriftRadius(driftTime, id, mu, word);
305  }
306 
307  // Fill the RIO collection with TRT_DriftCircle's
308  auto errmat = Amg::MatrixX(1,1);
309  errmat(0,0) = error*error;
310  Amg::Vector2D loc(radius, 0.);
311 
312  InDet::TRT_DriftCircle* tdc = nullptr;
313  //
314  if (dataItemsPool) {
315  tdc = dataItemsPool->nextElementPtr();
316  (*tdc) = InDet::TRT_DriftCircle(id, loc, std::move(errmat), pE, word);
317  } else {
318  tdc = new InDet::TRT_DriftCircle(id, loc, std::move(errmat), pE, word);
319  }
320  //
321  if (tdc) {
322  tdc->setHashAndIndex(rio->identifyHash(), rio->size());
323  rio->push_back(tdc);
324 
326  " accept hit id "
327  << m_trtid->barrel_ec(id) << " " << m_trtid->layer_or_wheel(id) << " "
328  << m_trtid->phi_module(id) << " " << m_trtid->straw_layer(id) << " "
329  << m_trtid->straw(id) << " data word " << MSG::hex << tdc->getWord()
330  << MSG::dec << " data word raw " << MSG::hex << (*r)->getWord()
331  << MSG::dec << " radius " << radius << " err " << error);
332 
333  ATH_MSG_VERBOSE(" driftTime " << tdc->rawDriftTime() << " t0 " << t0
334  << " raw time " << (0.5 + LTbin) * 3.125
335  << " ToT " << tdc->timeOverThreshold()
336  << " OK? " << isOK << " Noise? "
337  << tdc->isNoise() << " isArgon? "
338  << isArgonStraw);
339  } else {
340  ATH_MSG_ERROR("Could not create InDet::TRT_DriftCircle object !");
341  }
342  } // end loop over rdo's in the rdo collection
343 
344  return rio;
345 }
346 
InDet::TRT_DriftCircleTool::passValidityGate
virtual bool passValidityGate(unsigned int word, float lowGate, float highGate, float t0) const override
test validity gate for corrected drift times
Definition: TRT_DriftCircleTool.cxx:146
beamspotman.r
def r
Definition: beamspotman.py:676
InDet::TRT_DriftCircleTool::convert
virtual InDet::TRT_DriftCircleCollection * convert(int, const InDetRawDataCollection< TRT_RDORawData > *, const EventContext &ctx, DataPool< TRT_DriftCircle > *dataItemsPool, const bool CTBBadChannels) const override
make the conversion from RDOs to DriftCircles
Definition: TRT_DriftCircleTool.cxx:170
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
InDet::TRT_DriftCircleTool::m_useToTCorrection
bool m_useToTCorrection
Shall the Time over Threshold correction be used?
Definition: TRT_DriftCircleTool.h:89
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
InDet::TRT_DriftCircleTool::m_trtDetEleContKey
SG::ReadCondHandleKey< InDetDD::TRT_DetElementContainer > m_trtDetEleContKey
Definition: TRT_DriftCircleTool.h:80
WriteCellNoiseToCool.rb
rb
Definition: WriteCellNoiseToCool.py:229
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDet::TRT_DriftCircleTool::m_trtid
const TRT_ID * m_trtid
ID helper.
Definition: TRT_DriftCircleTool.h:91
InDet::TRT_DriftCircle::timeOverThreshold
double timeOverThreshold() const
returns Time over threshold in ns
initialize
void initialize()
Definition: run_EoverP.cxx:894
ALFA_EventTPCnv_Dict::t0
std::vector< ALFA_RawData_p1 > t0
Definition: ALFA_EventTPCnvDict.h:42
InDetRawDataCollection::identify
virtual Identifier identify() const override final
TRT_ID.h
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
InDet::TRT_DriftCircleTool::m_useConditionsStatus
bool m_useConditionsStatus
Shall the ConditionsSummaryTool be used?
Definition: TRT_DriftCircleTool.h:87
SG::ReadCondHandle::isValid
bool isValid()
Definition: ReadCondHandle.h:205
InDet::TRT_DriftCircleTool::m_ConditionsSummary
ToolHandle< ITRT_StrawStatusSummaryTool > m_ConditionsSummary
The ConditionsSummaryTool.
Definition: TRT_DriftCircleTool.h:85
InDet::TRT_DriftCircleTool::m_out_of_time_supression
bool m_out_of_time_supression
Turn this on to turn on the OOT options!
Definition: TRT_DriftCircleTool.h:98
TRT_RDORawData.h
InDet::TRT_DriftCircleTool::finalize
virtual StatusCode finalize() override
finalize
Definition: TRT_DriftCircleTool.cxx:138
InDet::TRT_DriftCircleTool::m_useHTCorrection
bool m_useHTCorrection
Shall the High Threshold correction be used?
Definition: TRT_DriftCircleTool.h:90
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
TRTCond::StrawStatus::Dead
@ Dead
Definition: StrawStatus.h:18
InDet::TRT_DriftCircleTool::m_high_gate_argon
float m_high_gate_argon
High value for gate.
Definition: TRT_DriftCircleTool.h:105
InDet::TRT_DriftCircle
Definition: TRT_DriftCircle.h:32
ReadCondHandle.h
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
InDetRawDataCollection::identifyHash
virtual IdentifierHash identifyHash() const override final
InDet::TRT_DriftCircleTool::m_out_of_time_supression_argon
bool m_out_of_time_supression_argon
Turn this on to turn on the OOT options!
Definition: TRT_DriftCircleTool.h:99
GeoPrimitives.h
InDet::TRT_DriftCircleTool::initialize
virtual StatusCode initialize() override
initialize needed services
Definition: TRT_DriftCircleTool.cxx:95
TRT_ID::straw
int straw(const Identifier &id) const
Definition: TRT_ID.h:902
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TRT::Hit::driftTime
@ driftTime
Definition: HitInfo.h:43
TRT_DriftCircleTool.h
InDet::TRT_DriftCircleTool::~TRT_DriftCircleTool
virtual ~TRT_DriftCircleTool()
destructor
ITRT_StrawStatusSummaryTool.h
abstract interface to TRT straw status constants
InDet::TRT_DriftCircle::isNoise
bool isNoise() const
returns true if the hit is caused by noise with a high probability.
lumiFormat.i
int i
Definition: lumiFormat.py:92
Trk::PrepRawData::setHashAndIndex
void setHashAndIndex(unsigned short collHash, unsigned short objIndex)
TEMP for testing: might make some classes friends later ...
InDet::TRT_DriftCircleTool::m_validity_gate_suppression_argon
bool m_validity_gate_suppression_argon
Turn on suppression using validity gates.
Definition: TRT_DriftCircleTool.h:101
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::TRT_DriftCircleTool::m_min_trailing_edge_argon
float m_min_trailing_edge_argon
Min raw trailing edge position to not reject this DC.
Definition: TRT_DriftCircleTool.h:95
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
InDetRawDataCollection
Definition: InDetRawDataCollection.h:31
InDet::TRT_DriftCircleTool::m_low_gate_argon
float m_low_gate_argon
Low value for gate.
Definition: TRT_DriftCircleTool.h:103
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TRT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: TRT_ID.h:866
TRT_ID::straw_layer
int straw_layer(const Identifier &id) const
Definition: TRT_ID.h:893
DataPool::nextElementPtr
pointer nextElementPtr()
obtain the next available element in pool by pointer pool is resized if its limit has been reached On...
TRT_ID::layer_or_wheel
int layer_or_wheel(const Identifier &id) const
Definition: TRT_ID.h:884
TRT_DriftCircle.h
InDet::TRT_DriftCircleTool::m_lumiDataKey
SG::ReadCondHandleKey< LuminosityCondData > m_lumiDataKey
Definition: TRT_DriftCircleTool.h:82
TRTCond::StrawStatus::Good
@ Good
Definition: StrawStatus.h:18
EventPrimitives.h
ITRT_DriftFunctionTool.h
LuminosityCondData::lbAverageInteractionsPerCrossing
float lbAverageInteractionsPerCrossing() const
Definition: LuminosityCondData.cxx:26
InDet::TRT_DriftCircleTool::m_low_gate
float m_low_gate
Turn on suppression using validity gates.
Definition: TRT_DriftCircleTool.h:102
InDet::TRT_DriftCircleCollection
Trk::PrepRawDataCollection< TRT_DriftCircle > TRT_DriftCircleCollection
Definition: TRT_DriftCircleCollection.h:26
EventContainers::Mode
Mode
Definition: IdentifiableContainerBase.h:13
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
TRT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: TRT_ID.h:875
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
EventInfo.h
DataVector< RawDataT >::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
InDet::TRT_DriftCircleTool::m_driftFunctionTool
ToolHandle< ITRT_DriftFunctionTool > m_driftFunctionTool
DriftFunctionTool.
Definition: TRT_DriftCircleTool.h:84
InDet::TRT_DriftCircleTool::m_max_drift_time_argon
float m_max_drift_time_argon
Max allowed raw drift time to not reject this DC.
Definition: TRT_DriftCircleTool.h:97
InDetDD::TRT_DetElementCollection::getDetectorElement
const TRT_BaseElement * getDetectorElement(const IdentifierHash &hash) const
Definition: TRT_DetElementCollection.cxx:11
re
const boost::regex re(r_e)
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:47
InDetDD::TRT_DetElementContainer::getElements
const TRT_DetElementCollection * getElements() const
Definition: TRT_DetElementContainer.cxx:29
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
InDet::TRT_DriftCircleTool::m_reject_if_first_bit_argon
bool m_reject_if_first_bit_argon
If true, reject this DC if first bit high.
Definition: TRT_DriftCircleTool.h:93
InDet::TRT_DriftCircleTool::TRT_DriftCircleTool
TRT_DriftCircleTool(const std::string &, const std::string &, const IInterface *)
constructor
Definition: TRT_DriftCircleTool.cxx:36
InDet::TRT_DriftCircleTool::m_reject_if_first_bit
bool m_reject_if_first_bit
If true, reject this DC if first bit high.
Definition: TRT_DriftCircleTool.h:92
InDet::TRT_DriftCircleTool::m_high_gate
float m_high_gate
Low value for gate.
Definition: TRT_DriftCircleTool.h:104
InDetDD::TRT_DetElementCollection
Class to hold collection of TRT detector elements.
Definition: TRT_DetElementCollection.h:28
InDet::TRT_DriftCircle::rawDriftTime
double rawDriftTime() const
returns the raw driftTime
AthAlgTool
Definition: AthAlgTool.h:26
InDet::TRT_DriftCircle::getWord
unsigned int getWord() const
returns the TRT dataword
IdentifierHash
Definition: IdentifierHash.h:38
InDet::TRT_DriftCircleTool::m_min_trailing_edge
float m_min_trailing_edge
Min raw trailing edge position to not reject this DC.
Definition: TRT_DriftCircleTool.h:94
get_generator_info.error
error
Definition: get_generator_info.py:40
TRT_DriftCircleCollection.h
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
error
Definition: IImpactPoint3dEstimator.h:70
InDet::TRT_DriftCircleTool::m_validity_gate_suppression
bool m_validity_gate_suppression
Definition: TRT_DriftCircleTool.h:100
Amg::distance
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:54
TRTCond::StrawStatus::Argon
@ Argon
Definition: StrawStatus.h:18
InDet::TRT_DriftCircleTool::m_useConditionsHTStatus
bool m_useConditionsHTStatus
Shall the ConditionsSummaryTool be used for HT to find argon straws?
Definition: TRT_DriftCircleTool.h:88
DataVector< RawDataT >::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
InDetDD::TRT_BaseElement
Definition: TRT_BaseElement.h:57
InDet::TRT_DriftCircleTool::m_max_drift_time
float m_max_drift_time
Max allowed raw drift time to not reject this DC.
Definition: TRT_DriftCircleTool.h:96