ATLAS Offline Software
FillAlignTRTHits.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /********************************************************************
6 
7 NAME:
8 PACKAGE:
9 
10 AUTHORS:
11 CREATED:
12 
13 PURPOSE: Tool
14 
15 
16 ********************************************************************/
17 
18 // INCLUDES:
21 #include "FillAlignTRTHits.h"
23 #include "TrkTrack/Track.h"
31 #include "InDetIdentifier/TRT_ID.h"
34 
36 
37 
38 FillAlignTRTHits::FillAlignTRTHits(const std::string& type, const std::string& name, const IInterface* parent) :
40  m_DetID(nullptr), m_TRTID(nullptr),
41  m_maxDistance(2.8),
42  m_maxTimeResidual(150),
43  m_minTimebinsOverThreshold(2),
44  m_maxTrackChisquarePerDof(10),
45  m_numOfHitsTotal(0),
46  m_numOfHitsAccepted(0),
47  m_numOfProcessedTracks(0),
48  m_DoMCCosmicTimeShift(0),
49  m_f(nullptr), m_ntuple(nullptr)
50 {
51  declareInterface<IFillAlignTrkInfo>(this);
52  declareProperty("maxDistance",m_maxDistance) ;
53  declareProperty("maxTimeResidual",m_maxTimeResidual) ;
54  declareProperty("minTimebinsOverThreshold",m_minTimebinsOverThreshold) ;
55  declareProperty("maxTrackChisquarePerDof",m_maxTrackChisquarePerDof) ;
56  declareProperty("DoMCCosmicTimeShift",m_DoMCCosmicTimeShift);
57 }
58 
60  ATH_CHECK ( detStore()->retrieve(m_DetID, "AtlasID") );
61  ATH_CHECK ( detStore()->retrieve(m_TRTID, "TRT_ID") );
62 
63  ATH_CHECK ( m_trtcaldbTool.retrieve() );
64  ATH_CHECK ( m_neighbourSvc.retrieve() );
65  ATH_CHECK ( m_driftFunctionTool.retrieve() );
66  ATH_CHECK ( m_updator.retrieve() );
67  ATH_CHECK ( m_TRTStrawSummaryTool.retrieve() );
68 
69  m_f = new TFile(m_ntupleName.value().c_str(),"RECREATE");
70  m_ntuple = new TNtuple("ntuple","TRT calibration ntuple","run:evt:lbn:nvx:trk:det:lay:mod:stl:stw:brd:chp:sid:locx:locy:locz:x:y:z:r:dr:t:rtrack:drrtrack:rtrackunbias:drrtrackunbias:ttrack:ttrackunbias:t0:ephase:phi:theta:pt:qoverp:d0:ToT:HT:ToTCorrection:HTCorrection:isArgonStraw");
71  return StatusCode::SUCCESS;
72 }
73 
74 
76  m_f->Write();
77  m_f->Close();
78  std::cout << "CALIBSTAT TRKS: " << m_numOfProcessedTracks << std::endl;
79  std::cout << "CALIBSTAT HTOT: " << m_numOfHitsTotal << std::endl;
80  std::cout << "CALIBSTAT HACC: " << m_numOfHitsAccepted << std::endl;
81  return StatusCode::SUCCESS;
82 }
83 
84 
86  const xAOD::VertexContainer& vertices) {
87 
89  float rtrackunbias = 0;
90  float drrtrackunbias = 0;
91  float drrtrack = 0;
92  float ttrackunbias = 0;
93  (*output)[TRT::Track::numberOfPixelHits] = 0;
94  (*output)[TRT::Track::numberOfSCTHits] = 0;
95  (*output)[TRT::Track::numberOfTRTHits] = 0;
96  // loop over the TrackStateonSurfaces
97 
98  const Trk::TrackParameters *unbiasedTrkParameters(nullptr);
99  const Trk::TrackStateOnSurface* HitOnTrackToRemove(nullptr);
100 
101  double timecor = 0.;
102  const Trk::Track* pTrack = aTrack ;
103  const Trk::Perigee* mesp = pTrack->perigeeParameters();
104  float lbn = -1;
105  float nvrt_rec = -1;
106  double phi = 10;
107  double theta = 100;
108  double pt = 0;
109  double qoverp = 0;
110  double d0 = 0;
111 
112  if(mesp){
113  phi = mesp->parameters()[Trk::phi0];
114  theta = mesp->parameters()[Trk::theta];
115  if(fabs(theta)==0) theta=1e-24;
116  float ptinv = std::abs(mesp->parameters()[Trk::qOverP]) / sin(theta);
117  qoverp = mesp->parameters()[Trk::qOverP];
118  if (ptinv != 0) {
119  pt = 1. / ptinv;
120  } else {
121  pt = 1e24;
122  }
123  d0 = mesp->parameters()[Trk::d0];
124  }
125 
126  timecor = m_DoMCCosmicTimeShift ;
127 
128  lbn = (float)eventInfo.lumiBlock();
129  //Number of Prim vertex:
130  nvrt_rec = 0;
131  int countVertices(0);
132  for (const xAOD::Vertex* vx : vertices) {
133  if (vx->vertexType() == xAOD::VxType::PriVtx) {
134  if ( vx-> nTrackParticles() >= 3) countVertices++;
135  }
136  }
137  nvrt_rec = countVertices;
138 
139  auto tsos = aTrack->trackStateOnSurfaces()->begin();
140  auto tsosEnd = aTrack->trackStateOnSurfaces()->end();
141 
142  const Trk::MeasurementBase* mesb = nullptr;
143  const Trk::RIO_OnTrack* rotp = nullptr;
144  const InDet::TRT_DriftCircle* dcp = nullptr;
145  const Trk::TrackParameters* tparp = nullptr;
146  const Trk::TrackParameters* mparp = nullptr;
147  const InDet::TRT_DriftCircleOnTrack* trtcirc = nullptr;
148  const TRTCond::RtRelation* rtrelation = nullptr;
149 
150 
151  for (; tsos != tsosEnd; ++tsos) {
152  mesb = (*tsos)->measurementOnTrack();
153  rotp = dynamic_cast<const Trk::RIO_OnTrack*>(mesb);
154  if(rotp != nullptr) {
155  Identifier ident = rotp->identify();
156  if (m_DetID->is_sct(ident)) {
157  (*output)[TRT::Track::numberOfSCTHits]++;
158  } else if (m_DetID->is_trt(ident)) {
159  (*output)[TRT::Track::numberOfTRTHits]++;
161  trtcirc = dynamic_cast<const InDet::TRT_DriftCircleOnTrack*>(rotp);
162  if (trtcirc != nullptr) {
163  dcp = trtcirc->prepRawData();
164  tparp = ((*tsos)->trackParameters());
165  mparp = (tparp);
166 
167  if (tparp == nullptr) {
168  if (msgLvl(MSG::DEBUG)) msg() << "strange: trk parameters not available" << endmsg;
169  }
170  if (dcp == nullptr) {
171  msg(MSG::ERROR) << "strange: prepRawData not available" << endmsg;
172  }
173 
174  if (mparp && dcp) {
175  TRT::HitInfo* newhit = new TRT::HitInfo();
176  output->push_back(newhit); // do we make sure this one is deleted properly
177 
178  (*newhit)[TRT::Hit::ident] = ident.get_identifier32().get_compact();
179  (*newhit)[TRT::Hit::detector] = m_TRTID->barrel_ec(ident);
183  (*newhit)[TRT::Hit::straw] = m_TRTID->straw(ident);
184  (*newhit)[TRT::Hit::side] = static_cast<int>(trtcirc->side());
185 
186  // Local wire specific
188  float errsq=Amg::error(rotp->localCovariance(),Trk::driftRadius);
189  if(errsq<0) errsq=1.0;
190  (*newhit)[TRT::Hit::errorSignedDriftRadius] = sqrt(errsq) ;
191  bool isvalid = false;
192 
193 
194  (*newhit)[TRT::Hit::driftTime] = dcp->driftTime(isvalid) - timecor;
195  (*newhit)[TRT::Hit::driftTimeStatus] = isvalid ;
196  // this is the integer drift time, but multiplied by the scale.
197  // to calculate the residual in the drift time, I need to have the t0 as well.
198  // I'd also like to store the drift velocity
199  if (!isvalid) (*newhit)[TRT::Hit::driftTime] = -1.0;
200 
201  (*newhit)[TRT::Hit::t0] = m_trtcaldbTool->getT0(ident) ;
202 
203  (*newhit)[TRT::Hit::TimeoverThreshold] = dcp->timeOverThreshold() ;
204  //CORRECT FOR TUBEHITS!!!:
205  rtrelation = m_trtcaldbTool->getRtRelation(ident) ;
206  // added High Level Threshold information
207  (*newhit)[TRT::Hit::HTLevel] = dcp->highLevel();
208  // Extract the correction in the db for the ToT:
209  float tot = (*newhit)[TRT::Hit::TimeoverThreshold];
210  float ToTCorrection = m_driftFunctionTool->driftTimeToTCorrection(tot, ident);
211 
212  // Extract the correction for HT:
213  float HTCorrection = 0;
214  if ((*newhit)[TRT::Hit::HTLevel]){
215  HTCorrection = m_driftFunctionTool->driftTimeHTCorrection(ident);
216  }
217 
218  (*newhit)[TRT::Hit::positionOnWire] = tparp->parameters()[Trk::locZ];
219 
220  (*newhit)[TRT::Hit::trackDriftRadius] = tparp->parameters()[Trk::driftRadius];
221  errsq=Amg::error(*(mparp->covariance()),Trk::locZ);
222  if(errsq<0) errsq=1.0;
223  (*newhit)[TRT::Hit::errorPositionOnWire] = sqrt(errsq);
224  errsq=Amg::error(*(mparp->covariance()),Trk::driftRadius);
225  if(errsq<0) errsq=1.0;
226  (*newhit)[TRT::Hit::errorTrackDriftRadius] = sqrt(errsq);
227  // calculate the 'trktime' and the 'trkdriftvelocity'
228  if( rtrelation ) {
229  (*newhit)[TRT::Hit::trackDriftTime] = rtrelation->drifttime(std::abs( (*newhit)[TRT::Hit::trackDriftRadius] )) ;
230  (*newhit)[TRT::Hit::driftVelocity] = rtrelation->drdt( (*newhit)[TRT::Hit::trackDriftTime] ) ;
231  }
232 
233  (*newhit)[TRT::Hit::trackT0]= timecor ;
234 
235  int chip = 0;
236  int board = -1;
237  m_neighbourSvc->getChip(ident,chip);
238  if(abs(m_TRTID->barrel_ec(ident))<2){
239  board = m_neighbourSvc->chipToBoardBarrel(chip, m_TRTID->layer_or_wheel(ident));
240  } else if (chip<12) {
241  board = 0;
242  } else {
243  chip = chip-20;
244  board = 1;
245  }
246 
247  // Prepare for Xe-Ar mixed conditions:
248  int isArgonStraw = 0;
249  if (!m_TRTStrawSummaryTool.empty()) {
250  if (m_TRTStrawSummaryTool->getStatusHT(ident, Gaudi::Hive::currentContext()) != TRTCond::StrawStatus::Good) {
251  isArgonStraw = 1;
252  }
253  }
254 
255 
256  float h_trkDistance = (*newhit)[TRT::Hit::trackDriftRadius];
257 
258  float h_driftTime = (*newhit)[TRT::Hit::driftTime] - (*newhit)[TRT::Hit::t0];
259  float h_trkDriftTime = (*newhit)[TRT::Hit::trackDriftTime];
260  float h_timeResidual = h_driftTime - h_trkDriftTime;
261 
262  float h_trkVariance = (*newhit)[TRT::Hit::errorTrackDriftRadius] * (*newhit)[TRT::Hit::errorTrackDriftRadius];
263 
264  bool h_hasValidDriftTime = (*newhit)[TRT::Hit::driftTimeStatus] ;
265 
266  float h_timeOverThreshold = (*newhit)[TRT::Hit::TimeoverThreshold] ;
267 
268  float h_residual = (*newhit)[TRT::Hit::signedDriftRadius] - (*newhit)[TRT::Hit::trackDriftRadius] ;
269  float h_residualVariance = h_trkVariance + ((*newhit)[TRT::Hit::errorSignedDriftRadius] * (*newhit)[TRT::Hit::errorSignedDriftRadius]);
270  float d = h_residualVariance;
271  if(d==0) d=1.0e-24;
272  float h_chiSquare = h_residual*h_residual/d ;
273  int dof = (*output)[TRT::Track::degreesOfFreedom]-1;
274  if(dof<1) dof=1;
275  bool hitsel=false;
276  if( std::abs( h_trkDistance ) < m_maxDistance &&
277  std::abs( h_timeResidual ) < m_maxTimeResidual &&
278  h_trkVariance > 0 &&
279  h_hasValidDriftTime &&
280  h_timeOverThreshold/3.125 >= m_minTimebinsOverThreshold &&
281  ((*output)[TRT::Track::chiSquare] - h_chiSquare) / (float)dof < m_maxTrackChisquarePerDof ){
282  hitsel = true;
283  }
284 
286  rtrackunbias = 0;
287  drrtrackunbias = 0;
288  errsq = Amg::error(*(mparp->covariance()),Trk::driftRadius);
289  drrtrack = sqrt(errsq);
290  ttrackunbias = 0;
291 
292  if (m_updator){
293  tparp = ((*tsos)->trackParameters());
294  HitOnTrackToRemove = *tsos;
295 
296  if(HitOnTrackToRemove){
297  unbiasedTrkParameters = m_updator->removeFromState(*(HitOnTrackToRemove->trackParameters()),
298  HitOnTrackToRemove->measurementOnTrack()->localParameters(),
299  HitOnTrackToRemove->measurementOnTrack()->localCovariance()).release();
300  ATH_MSG_DEBUG ("TrackParameters 1: " << *(HitOnTrackToRemove->trackParameters()));
301  }
302  else if (msgLvl(MSG::DEBUG)) {
303  msg() << "TrackParameters 1: nullptr" << endmsg;
304  }
305 
306  if(unbiasedTrkParameters){
307  const Trk::TrackParameters *unmparp = (unbiasedTrkParameters);
308  rtrackunbias = unbiasedTrkParameters->parameters()[Trk::driftRadius];
309  errsq=Amg::error(*(unmparp->covariance()),Trk::driftRadius);
310  if(errsq<0) errsq=1.;
311  drrtrackunbias = sqrt(errsq);
312 
313  if( rtrelation ) ttrackunbias = rtrelation->drifttime(std::abs( rtrackunbias ));
314  ATH_MSG_DEBUG("Unbiased TrackParameters 2: " << *unbiasedTrkParameters );
315  ATH_MSG_DEBUG("Radius : " << (*newhit)[TRT::Hit::trackDriftRadius] );
316  ATH_MSG_DEBUG("Radius 2: " << rtrackunbias );
317  }
318 
319  }
321  float const ntvar[40]={
324  lbn,
325  nvrt_rec,
327 
328  (float)(*newhit)[TRT::Hit::detector],
329  (float)(*newhit)[TRT::Hit::layer],
330  (float)(*newhit)[TRT::Hit::phiModule],
331  (float)(*newhit)[TRT::Hit::strawLayer],
332  (float)(*newhit)[TRT::Hit::straw],
333  (float)board,
334  (float)chip,
336  (*newhit)[TRT::Hit::phiModule],
337  (*newhit)[TRT::Hit::layer],
338  (*newhit)[TRT::Hit::strawLayer],
339  (*newhit)[TRT::Hit::straw]).get_identifier32().get_compact() ,
340  (float)tparp->position().x(),
341  (float)tparp->position().y(),
342  (float)tparp->position().z(),
343  (float)(rotp->detectorElement()->center(ident)).x(),
344  (float)(rotp->detectorElement()->center(ident)).y(),
345  (float)(rotp->detectorElement()->center(ident)).z(),
346 
347  (*newhit)[TRT::Hit::signedDriftRadius],
349  (*newhit)[TRT::Hit::driftTime],
350  (*newhit)[TRT::Hit::trackDriftRadius],
351  drrtrack,
352  rtrackunbias,
353  drrtrackunbias,
354  (*newhit)[TRT::Hit::trackDriftTime],
355  ttrackunbias,
356  m_trtcaldbTool->getT0(ident),
357  (float)timecor,
358  (float)phi ,
359  (float)theta,
360  (float)pt ,
361  (float)qoverp ,
362  (float)d0 ,
363  (*newhit)[TRT::Hit::TimeoverThreshold],
364  (*newhit)[TRT::Hit::HTLevel],
365  ToTCorrection,
366  HTCorrection,
367  (float)isArgonStraw
368  };
369 
370  if (hitsel) {
372  m_ntuple->Fill(ntvar);
373  }
374 
375  }
376  } else {
377  msg(MSG::ERROR) << "TRT drift RIO cast failed - no hit stored" << endmsg;
378  }
379 
380 
381  } // identified TRT hit
382  else if (m_DetID->is_pixel(ident)) (*output)[TRT::Track::numberOfPixelHits]++;
383  } // non-zero ROTpointer
384  } // end loop on Surfaces
385  if (msgLvl(MSG::VERBOSE)) msg() << "Track has " << (*output)[TRT::Track::numberOfTRTHits] << " TRT hits --> of which "
386  << output->size() << " hits had FULL info available" << endmsg;
387 
388 
389 
390  delete unbiasedTrkParameters;
391 
392 
393  return true;
394 }
InDet::TRT_DriftCircleOnTrack::side
Trk::DriftCircleSide side() const
returns the side on which the drift radius is.
Definition: TRT_DriftCircleOnTrack.cxx:147
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
AtlasDetectorID::is_pixel
bool is_pixel(Identifier id) const
Definition: AtlasDetectorID.h:760
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
Trk::TrackStateOnSurface::trackParameters
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
FillAlignTRTHits::m_ntuple
TNtuple * m_ntuple
Definition: FillAlignTRTHits.h:87
FillAlignTRTHits::m_f
TFile * m_f
Definition: FillAlignTRTHits.h:86
TRT::Hit::straw
@ straw
Definition: HitInfo.h:82
InDet::TRT_DriftCircleOnTrack::prepRawData
virtual const TRT_DriftCircle * prepRawData() const override final
returns the PrepRawData - is a TRT_DriftCircle in this scope
Definition: TRT_DriftCircleOnTrack.h:202
FillAlignTRTHits::m_DoMCCosmicTimeShift
float m_DoMCCosmicTimeShift
Definition: FillAlignTRTHits.h:84
TrackParameters.h
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
TRT::Hit::trackT0
@ trackT0
Definition: HitInfo.h:52
TRT::Hit::positionOnWire
@ positionOnWire
Definition: HitInfo.h:46
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
TRT::Hit::driftTimeStatus
@ driftTimeStatus
Definition: HitInfo.h:84
TRT::Track::chiSquare
@ chiSquare
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:67
TRT::Track::numberOfSCTHits
@ numberOfSCTHits
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:77
FillAlignTRTHits::m_numOfProcessedTracks
unsigned int m_numOfProcessedTracks
Definition: FillAlignTRTHits.h:83
AtlasDetectorID::is_sct
bool is_sct(Identifier id) const
Definition: AtlasDetectorID.h:770
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
hist_file_dump.d
d
Definition: hist_file_dump.py:137
Trk::Track::trackStateOnSurfaces
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
RtRelation.h
abstract base class for rt-relations
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
InDet::TRT_DriftCircle::timeOverThreshold
double timeOverThreshold() const
returns Time over threshold in ns
EventPrimitivesHelpers.h
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:75
TRT::Track::event
@ event
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:74
TRT::Hit::strawLayer
@ strawLayer
Definition: HitInfo.h:81
TRT::Hit::signedDriftRadius
@ signedDriftRadius
Definition: HitInfo.h:40
TRT_ID.h
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
test_pyathena.pt
pt
Definition: test_pyathena.py:11
Identifier::get_compact
value_type get_compact() const
Get the compact id.
FillAlignTRTHits::m_numOfHitsAccepted
unsigned int m_numOfHitsAccepted
Definition: FillAlignTRTHits.h:82
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
Trk::TrackStateOnSurface::measurementOnTrack
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
FillAlignTRTHits.h
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
FillAlignTRTHits::m_DetID
const AtlasDetectorID * m_DetID
Definition: FillAlignTRTHits.h:66
AtlasDetectorID::is_trt
bool is_trt(Identifier id) const
Definition: AtlasDetectorID.h:782
FillAlignTRTHits::m_trtcaldbTool
ToolHandle< ITRT_CalDbTool > m_trtcaldbTool
Definition: FillAlignTRTHits.h:71
FillAlignTRTHits::m_neighbourSvc
ServiceHandle< ITRT_StrawNeighbourSvc > m_neighbourSvc
Definition: FillAlignTRTHits.h:72
InDet::TRT_DriftCircleOnTrack
Definition: TRT_DriftCircleOnTrack.h:53
x
#define x
FillAlignTRTHits::fill
virtual bool fill(const Trk::Track *aTrack, TRT::TrackInfo *output, const xAOD::EventInfo &eventInfo, const xAOD::VertexContainer &vertices)
Definition: FillAlignTRTHits.cxx:85
TRT::TrackInfo
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:83
TRT::Track::run
@ run
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:73
FillAlignTRTHits::FillAlignTRTHits
FillAlignTRTHits(const std::string &type, const std::string &name, const IInterface *parent)
Definition: FillAlignTRTHits.cxx:38
PrepRawData.h
InDet::TRT_DriftCircle
Definition: TRT_DriftCircle.h:32
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
FillAlignTRTHits::m_driftFunctionTool
ToolHandle< ITRT_DriftFunctionTool > m_driftFunctionTool
Definition: FillAlignTRTHits.h:69
IUpdator.h
FillAlignTRTHits::m_TRTID
const TRT_ID * m_TRTID
Definition: FillAlignTRTHits.h:67
TRT::Hit::detector
@ detector
Definition: HitInfo.h:78
TRT::Hit::side
@ side
Definition: HitInfo.h:83
Track.h
TRT::Hit::TimeoverThreshold
@ TimeoverThreshold
Definition: HitInfo.h:44
TRTCond::RtRelation
Definition: RtRelation.h:27
TRT::Hit::driftVelocity
@ driftVelocity
Definition: HitInfo.h:50
AtlasDetectorID.h
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
TRT_ID::straw
int straw(const Identifier &id) const
Definition: TRT_ID.h:902
FillAlignTRTHits::m_maxTrackChisquarePerDof
float m_maxTrackChisquarePerDof
Definition: FillAlignTRTHits.h:80
TrackInfo.h
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::Hit::driftTime
@ driftTime
Definition: HitInfo.h:43
Trk::locZ
@ locZ
local cylindrical
Definition: ParamDefs.h:42
FillAlignTRTHits::finalize
virtual StatusCode finalize()
Definition: FillAlignTRTHits.cxx:75
z
#define z
TRTCond::RtRelation::drifttime
virtual float drifttime(float radius) const =0
drifttime for given radius
Trk::theta
@ theta
Definition: ParamDefs.h:66
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
Trk::driftRadius
@ driftRadius
trt, straws
Definition: ParamDefs.h:53
FillAlignTRTHits::m_TRTStrawSummaryTool
ToolHandle< ITRT_StrawStatusSummaryTool > m_TRTStrawSummaryTool
Definition: FillAlignTRTHits.h:73
xAOD::VxType::PriVtx
@ PriVtx
Primary vertex.
Definition: TrackingPrimitives.h:571
TRT::Hit::HTLevel
@ HTLevel
Definition: HitInfo.h:45
TRT::Track::d0
@ d0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:62
TRT::Hit::trackDriftRadius
@ trackDriftRadius
Definition: HitInfo.h:48
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Trk::ParametersBase
Definition: ParametersBase.h:55
TRT_DriftCircleOnTrack.h
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
FillAlignTRTHits::initialize
virtual StatusCode initialize()
Definition: FillAlignTRTHits.cxx:59
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
TRT_ID::layer_or_wheel
int layer_or_wheel(const Identifier &id) const
Definition: TRT_ID.h:884
xAOD::EventInfo_v1::lumiBlock
uint32_t lumiBlock() const
The current event's luminosity block number.
LB_AnalMapSplitter.tot
tot
Definition: LB_AnalMapSplitter.py:46
TRT_DriftCircle.h
Trk::MeasurementBase::localCovariance
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
Definition: MeasurementBase.h:138
TRTCond::StrawStatus::Good
@ Good
Definition: StrawStatus.h:18
merge.output
output
Definition: merge.py:17
FillAlignTRTHits::m_numOfHitsTotal
unsigned int m_numOfHitsTotal
Definition: FillAlignTRTHits.h:81
Trk::MeasurementBase
Definition: MeasurementBase.h:58
EventPrimitives.h
Trk::Track::perigeeParameters
const Perigee * perigeeParameters() const
return Perigee.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:163
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
FillAlignTRTHits::m_maxDistance
float m_maxDistance
Definition: FillAlignTRTHits.h:77
python.EventInfoMgtInit.release
release
Definition: EventInfoMgtInit.py:24
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
Trk::d0
@ d0
Definition: ParamDefs.h:63
TRT::Track::degreesOfFreedom
@ degreesOfFreedom
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:79
RIO_OnTrack.h
Amg::error
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
Definition: EventPrimitivesHelpers.h:40
TRT::Hit::errorPositionOnWire
@ errorPositionOnWire
Definition: HitInfo.h:47
TRT::Hit::ident
@ ident
Definition: HitInfo.h:77
TRT::HitInfo
Definition: HitInfo.h:100
TRT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: TRT_ID.h:875
LocalParameters.h
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
TRT::Hit::errorTrackDriftRadius
@ errorTrackDriftRadius
Definition: HitInfo.h:49
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
FillAlignTRTHits::m_ntupleName
Gaudi::Property< std::string > m_ntupleName
Definition: FillAlignTRTHits.h:75
TRT::Track::numberOfTRTHits
@ numberOfTRTHits
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:78
VertexContainer.h
y
#define y
TRT::Hit::phiModule
@ phiModule
Definition: HitInfo.h:80
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
InDet::TRT_DriftCircle::highLevel
bool highLevel() const
returns true if the high level threshold was passed
TRT::Hit::t0
@ t0
Definition: HitInfo.h:42
FillAlignTRTHits::m_updator
ToolHandle< Trk::IUpdator > m_updator
Definition: FillAlignTRTHits.h:70
FillAlignTRTHits::m_maxTimeResidual
float m_maxTimeResidual
Definition: FillAlignTRTHits.h:78
TRT::Track::trackNumber
@ trackNumber
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:75
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Trk::RIO_OnTrack::identify
Identifier identify() const
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:152
DEBUG
#define DEBUG
Definition: page_access.h:11
TRT::Hit::trackDriftTime
@ trackDriftTime
Definition: HitInfo.h:51
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:67
TRT::Track::numberOfPixelHits
@ numberOfPixelHits
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:76
TRTCond::RtRelation::drdt
virtual float drdt(float driftime) const =0
driftvelocity for given drifttime
FillAlignTRTHits::m_minTimebinsOverThreshold
int m_minTimebinsOverThreshold
Definition: FillAlignTRTHits.h:79
Trk::RIO_OnTrack::detectorElement
virtual const TrkDetElementBase * detectorElement() const =0
returns the detector element, assoicated with the PRD of this class
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
AthAlgTool
Definition: AthAlgTool.h:26
TRT::Hit::errorSignedDriftRadius
@ errorSignedDriftRadius
Definition: HitInfo.h:41
Trk::TrkDetElementBase::center
virtual const Amg::Vector3D & center() const =0
Return the center of the element.
readCCLHist.float
float
Definition: readCCLHist.py:83
Trk::phi0
@ phi0
Definition: ParamDefs.h:65
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
TRT_ID::straw_id
Identifier straw_id(int barrel_ec, int phi_module, int layer_or_wheel, int straw_layer, int straw) const
Three ways of getting id for a single straw:
Definition: TRT_ID.h:581
LB_AnalMapSplitter.lbn
lbn
Definition: LB_AnalMapSplitter.py:28
Identifier
Definition: IdentifierFieldParser.cxx:14