ATLAS Offline Software
SiSPSeededTrackFinderRoI.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
12 
13 #include "xAODTracking/Vertex.h"
16 
17 #include <set>
18 #include <vector>
19 #include <sstream>
20 #include <fstream>
21 #include <string>
22 
23 namespace {
25 // Track quality calculation
27 
28 double trackQuality(const Trk::Track* Tr) {
29 
30  double quality = 0.;
31  double baseScorePerHit = 17.;
33  for (const Trk::TrackStateOnSurface* m : *(Tr->trackStateOnSurfaces())) {
36  continue;
38  const Trk::FitQualityOnSurface fq = m->fitQualityOnSurface();
39  if (!fq)
40  continue;
41 
42  double x2 = fq.chiSquared();
43  double hitQualityScore;
46  if (fq.numberDoF() == 2)
47  hitQualityScore = (1.2 * (baseScorePerHit - x2 * .5)); // pix
48  else
49  hitQualityScore = (baseScorePerHit - x2); // sct
50  if (hitQualityScore < 0.)
51  hitQualityScore =
52  0.; // do not allow a bad hit to decrement the overall score
53  quality += hitQualityScore;
54  }
57  quality *= 0.7;
58 
59  return quality;
60 }
61 } // namespace
62  //
64 // Constructor
66 
68 (const std::string& name,ISvcLocator* pSvcLocator) : AthReentrantAlgorithm(name, pSvcLocator)
69 {
70 }
71 
73 // Initialisation
75 
77 {
78 
79  // Initialize read/write handles
80  ATH_CHECK( m_outputTracksKey.initialize() );
81  ATH_CHECK( m_vxOutputKey.initialize() );
85 
86  // Retrieve Tools
87  ATH_CHECK( m_ZWindowRoISeedTool.retrieve() );
88  ATH_CHECK( m_RandomRoISeedTool.retrieve( DisableTool{(not m_doRandomSpot) or m_RandomRoISeedTool.name().empty()} ) );
89  ATH_CHECK( m_seedsmaker.retrieve() );
90  ATH_CHECK( m_trackmaker.retrieve() );
91  ATH_CHECK( m_trackSummaryTool.retrieve( DisableTool{ m_trackSummaryTool.name().empty()} ));
92  if (not m_etaDependentCutsSvc.name().empty()) ATH_CHECK(m_etaDependentCutsSvc.retrieve());
93  magneticFieldInit(); //init magnetic field for simplified propagation
94 
96  if (msgLvl(MSG::DEBUG)) {
97  dump(MSG::DEBUG, nullptr);
98  }
99  m_neventsTotal = 0;
100  m_problemsTotal = 0;
101 
102  return StatusCode::SUCCESS;
103 }
104 
105 
107 // Extended local EDM
109 
110 namespace InDet {
112  {
113  public:
115  if (!key.key().empty()) {
118  }
119  }
120  private:
122  };
123 }
124 
126 // Execute
128 
130 {
132  ATH_CHECK(outputTracks.record(std::make_unique<TrackCollection>()));
133 
135  ATH_CHECK( beamSpotHandle.isValid() );
136  Trk::PerigeeSurface beamPosPerigee(beamSpotHandle->beamPos());
137 
138  bool PIX = true ;
139  bool SCT = true ;
140  bool ERR = false;
141 
142  //Create container for RoI information
143  auto theVertexContainer = std::make_unique<xAOD::VertexContainer>();
144  auto theVertexAuxContainer = std::make_unique<xAOD::VertexAuxContainer>();
145  theVertexContainer->setStore( theVertexAuxContainer.get() );
146 
147  // Find reference point of the event and create z boundary region
148  //
149  std::vector<InDet::IZWindowRoISeedTool::ZWindow> listRoIs;
150  listRoIs = m_ZWindowRoISeedTool->getRoIs(ctx);
151  double ZBoundary[2] = {0.0, 0.0};
152  //if no RoI found; no need to go further
153  if ( listRoIs.empty() ) {
154  ATH_MSG_DEBUG("no selectedRoIs" );
155  } else {
156  //listRoIs[0].zReference is the midpoint
157  ZBoundary[0] = listRoIs[0].zWindow[0];
158  ZBoundary[1] = listRoIs[0].zWindow[1];
159  ATH_MSG_DEBUG("selectedRoIs " << ZBoundary[0] <<" " << ZBoundary[1]);
160  }
161 
162  //Store RoI information in a xAOD::Vertex object
163  static const SG::AuxElement::Accessor<float> vtxDecor_boundaryLow("boundaryLow");
164  static const SG::AuxElement::Accessor<float> vtxDecor_boundaryHigh("boundaryHigh");
165  static const SG::AuxElement::Accessor<float> vtxDecor_perigeeZ0Lead("perigeeZ0Lead");
166  static const SG::AuxElement::Accessor<float> vtxDecor_perigeeZ0Sublead("perigeeZ0Sublead");
167  static const SG::AuxElement::Accessor<float> vtxDecor_isHS("isHS");
168 
169  for( size_t r = 0; r < listRoIs.size(); r++ ){
170 
171  theVertexContainer->push_back( new xAOD::Vertex() );
172 
173  theVertexContainer->back()->setZ( listRoIs[r].zReference );
174  vtxDecor_boundaryLow(*theVertexContainer->back()) = listRoIs[r].zWindow[0];;
175  vtxDecor_boundaryHigh(*theVertexContainer->back()) = listRoIs[r].zWindow[1];
176  vtxDecor_perigeeZ0Lead(*theVertexContainer->back()) = listRoIs[r].zPerigeePos[0];
177  vtxDecor_perigeeZ0Sublead(*theVertexContainer->back()) = listRoIs[r].zPerigeePos[1];
178  vtxDecor_isHS(*theVertexContainer->back()) = 1;
179  }
180 
181  // Analyses that want to run low-pt tracking with a region of interest care
182  // about the beam conditions near a collision of interest. Validation of the
183  // beam conditions elsewhere in the beamspot (regarding low-pt tracks) will be
184  // needed to establish meaningful uncertainties. Choosing a random position
185  // allows for this check. Run with RAWtoESD section of postexec:
186  // ToolSvc.InDetSiSpTrackFinder_LowPtRoI.doRandomSpot = True
187  double RandZBoundary[2];
188  std::vector<InDet::IZWindowRoISeedTool::ZWindow> listRandRoIs;
189  if(m_doRandomSpot and not listRoIs.empty()){
190  //Finding Random Spot in beamspot
191  listRandRoIs = m_RandomRoISeedTool->getRoIs(ctx);
192 
193  while( std::abs( listRoIs[0].zReference - listRandRoIs[0].zReference ) < 5. || std::abs(listRandRoIs[0].zReference) > 250.0 ){
194  listRandRoIs.clear();
195  listRandRoIs = m_RandomRoISeedTool->getRoIs(ctx);
196  }
197 
198  RandZBoundary[0] = listRandRoIs[0].zWindow[0];
199  RandZBoundary[1] = listRandRoIs[0].zWindow[1];
200  for( size_t r = 0; r < listRandRoIs.size(); r++ ){
201 
202  theVertexContainer->push_back( new xAOD::Vertex() );
203 
204  theVertexContainer->back()->setZ( listRandRoIs[r].zReference );
205  vtxDecor_boundaryLow(*theVertexContainer->back()) = listRoIs[r].zWindow[0];;
206  vtxDecor_boundaryHigh(*theVertexContainer->back()) = listRoIs[r].zWindow[1];
207  vtxDecor_perigeeZ0Lead(*theVertexContainer->back()) = listRoIs[r].zPerigeePos[0];
208  vtxDecor_perigeeZ0Sublead(*theVertexContainer->back()) = listRoIs[r].zPerigeePos[1];
209  vtxDecor_isHS(*theVertexContainer->back()) = 0;
210  }
211  }
212 
213  // Record the RoI information
215  CHECK( vxOut_h.record ( std::move(theVertexContainer), std::move(theVertexAuxContainer) ) );
216 
217  // Find seeds that point within the RoI region in z
218  //
219  SiSpacePointsSeedMakerEventData seedEventData;
220  m_seedsmaker->newEvent(ctx, seedEventData, -1);
221  if (not listRoIs.empty()) {
222  std::list<Trk::Vertex> VZ;
223  if(m_useRoIWidth) m_seedsmaker->find3Sp(ctx, seedEventData, VZ, ZBoundary);
224  //If you want to disable the RoI but still have a separate container for low-pt tracks
225  // The RoI "vertex" container will still be there in case you want to use
226  // that information for whatever reason (ie where the RoI would have been centered).
227  else m_seedsmaker->find3Sp(ctx, seedEventData, VZ);
228  if(m_doRandomSpot) m_seedsmaker->find3Sp(ctx, seedEventData, VZ, RandZBoundary);
229  }
230 
232  m_trackmaker->newEvent(ctx, trackEventData, PIX, SCT);
233 
234 
235  // Get the value of the seed maker validation ntuple writing switch
236  bool doWriteNtuple = m_seedsmaker->getWriteNtupleBoolProperty();
237  unsigned long EvNumber = 0; //Event number variable to be used for the validation ntuple
238 
239  if (doWriteNtuple) {
241  EvNumber = !eventInfo.isValid() ? 0 : eventInfo->eventNumber();
242  }
243 
244  // Loop through all seed and create track candidates
245  //
246  ERR = false;
247  Counter_t counter{};
248  std::multimap<double,Trk::Track*> qualitySortedTrackCandidates;
249  const InDet::SiSpacePointsSeed* seed = nullptr;
250 
251  while((seed = m_seedsmaker->next(ctx, seedEventData))) {
252  ++counter[kNSeeds];
253  const std::list<Trk::Track*> trackList = m_trackmaker->getTracks(ctx, trackEventData, seed->spacePoints());
254  for(Trk::Track* t: trackList) {
255  qualitySortedTrackCandidates.insert(std::make_pair( -trackQuality(t), t ));
256  }
257  if(doWriteNtuple) {
258  // Note: determining if "pixel" or "strips" or "mixed" seed depending on innermost/outermost radii - hardcoded boundaries for Run 1-3 detector
260  if (seed->r3() > 200.) {
261  if (seed->r1() < 200.) {
263  } else {
265  }
266  }
267  m_seedsmaker->writeNtuple(seed, !trackList.empty() ? trackList.front() : nullptr, seedType, EvNumber) ;
268  }
269  if( counter[kNSeeds] >= m_maxNumberSeeds) {
270  ERR = true;
271  ++m_problemsTotal;
272  break;
273  }
274  }
275 
276  m_trackmaker->endEvent(trackEventData);
277 
278  // Remove shared tracks with worse quality
279  //
280  filterSharedTracks(qualitySortedTrackCandidates);
281 
282  // Save good tracks in track collection
283  //
284  for (const std::pair<const double, Trk::Track*> & qualityAndTrack: qualitySortedTrackCandidates) {
285  ++counter[kNTracks];
286  if (m_trackSummaryTool.isEnabled()) {
287  m_trackSummaryTool->computeAndReplaceTrackSummary(*(qualityAndTrack.second),
288  false /* DO NOT suppress hole search*/);
289  }
290  outputTracks->push_back(qualityAndTrack.second);
291  }
292  m_counterTotal[kNSeeds] += counter[kNSeeds];
293  ++m_neventsTotal;
294 
295  // In case of errors, clear output tracks
296  //
297  if (ERR) {
298  outputTracks->clear();
299  } else {
300  m_counterTotal[kNTracks] += counter[kNTracks];
301  }
302 
303  // Print common event information
304  //
305  if (msgLvl(MSG::DEBUG)) {
307  }
308 
309  return StatusCode::SUCCESS;
310 
311 }
312 
314 // Finalize
316 
318 {
319  dump(MSG::INFO, &m_counterTotal);
320 
321  return StatusCode::SUCCESS;
322 }
323 
325 // Dumps relevant information into the MsgStream
327 
329 {
330  msg(assign_level) <<std::endl;
331  MsgStream& out_msg=msg();
332  if (counter) dumpevent(out_msg ,*counter);
333  else dumptools(out_msg);
334  out_msg << endmsg;
335  return out_msg;
336 }
337 
339 // Dumps conditions information into the MsgStream
341 
342 MsgStream& InDet::SiSPSeededTrackFinderRoI::dumptools( MsgStream& out ) const
343 {
344  int n;
345  n = 65-m_seedsmaker.type().size();
346  std::string s2; for(int i=0; i<n; ++i) s2.append(" "); s2.append("|");
347  n = 65-m_trackmaker.type().size();
348  std::string s3; for(int i=0; i<n; ++i) s3.append(" "); s3.append("|");
349  n = 65-m_outputTracksKey.key().size();
350  std::string s4; for(int i=0; i<n; ++i) s4.append(" "); s4.append("|");
351 
352  out<<"|----------------------------------------------------------------"
353  <<"----------------------------------------------------|"
354  <<std::endl;
355  out<<"| Tool for space points seeds finding | "<<m_seedsmaker.type()<<s2
356  <<std::endl;
357  out<<"| Tool for space points seeded track finding | "<<m_trackmaker.type()<<s3
358  <<std::endl;
359  out<<"| Location of output tracks | "<<m_outputTracksKey.key()<<s4
360  <<std::endl;
361  out<<"|----------------------------------------------------------------"
362  <<"----------------------------------------------------|"
363  <<std::endl;
364  return out;
365 }
366 
368 // Dumps event information into the ostream
370 
372 {
373  int ns = counter[kNSeeds];
374  int nt = counter[kNTracks];
375 
376  out<<"|-------------------------------------------------------------------|" <<std::endl;
377  out<<"| Investigated "
378  <<std::setw(9)<<ns<<" space points seeds and found ";
379  out<<std::setw(9)<<nt<<" tracks using RoI-z strategy |"<<std::endl;
380 
381  out<<"|-------------------------------------------------------------------|" <<std::endl;
382  if(m_problemsTotal > 0) {
383  out<<"| Events "
384  <<std::setw(7)<<m_neventsTotal <<" |"
385  <<std::endl;
386  out<<"| Problems "
387  <<std::setw(7)<<m_problemsTotal <<" |"
388  <<std::endl;
389  out<<"|-------------------------------------------------------------------|" <<std::endl;
390  }
391  return out;
392 }
393 
395 // Filer shared tracks
397 
399 (std::multimap<double,Trk::Track*>& qualitySortedTracks) const
400 {
401  std::set<const Trk::PrepRawData*> clusters;
402 
403  std::vector<const Trk::PrepRawData*> freeClusters;
404  freeClusters.reserve(15);
405 
406  std::multimap<double, Trk::Track*>::iterator it_qualityAndTrack = qualitySortedTracks.begin();
407 
409  while (it_qualityAndTrack!=qualitySortedTracks.end()) {
410  freeClusters.clear();
411 
413 
414  int nClusters = 0;
415  int nPixels = 0;
416 
418  for (const Trk::TrackStateOnSurface* tsos: *((*it_qualityAndTrack).second->trackStateOnSurfaces())) {
420  if(!tsos->type(Trk::TrackStateOnSurface::Measurement)) continue;
421  const Trk::FitQualityOnSurface fq = tsos->fitQualityOnSurface();
422  if(!fq) continue;
423  if(fq.numberDoF() == 2) ++nPixels;
424 
425  const Trk::MeasurementBase* mb = tsos->measurementOnTrack();
426  const Trk::RIO_OnTrack* ri = dynamic_cast<const Trk::RIO_OnTrack*>(mb);
427  if(!ri) continue;
428  const Trk::PrepRawData* pr = ri->prepRawData();
429  if (not pr) continue;
431  ++nClusters;
433  if (clusters.find(pr)==it_clustersEnd) {
435  freeClusters.push_back(pr);
436  }
437  }
438 
440  int nFreeClusters = static_cast<int>(freeClusters.size());
441  if (nFreeClusters >= m_nfreeCut || nFreeClusters==nClusters) {
444  clusters.insert(freeClusters.begin(), freeClusters.end());
445 
446  if (m_etaDependentCutsSvc.name().empty()) {
447  ++it_qualityAndTrack;
448  } else {
449  //eta-dependent cuts
450  int nFreeClusters = static_cast<int>(freeClusters.size());
451  if( passEtaDepCuts( (*it_qualityAndTrack).second, nClusters, nFreeClusters, nPixels) ){
453  ++it_qualityAndTrack;
454  } else {
456  delete (*it_qualityAndTrack).second;
457  qualitySortedTracks.erase(it_qualityAndTrack++);
458  }
459  } //eta-dependent cuts
460  } else {
462  delete (*it_qualityAndTrack).second;
463  qualitySortedTracks.erase(it_qualityAndTrack++);
464  }
465  }
466 }
467 
469 // Callback function - get the magnetic field /
471 
473 {
474  // Build MagneticFieldProperties
475  //
476  if(m_fieldmode == "NoField") {
478  } else {
480  }
481 }
482 
484  int nClusters,
485  int nFreeClusters,
486  int nPixels) const
487 {
488  Trk::TrackStates::const_iterator m = track->trackStateOnSurfaces()->begin();
489  const Trk::TrackParameters* par = (*m)->trackParameters();
490  if(!par) return false;
491 
492  double eta = std::abs(par->eta());
493  if(nClusters < m_etaDependentCutsSvc->getMinSiHitsAtEta(eta)) return false;
494  if(nFreeClusters < m_etaDependentCutsSvc->getMinSiNotSharedAtEta(eta)) return false;
495  if(nClusters-nFreeClusters > m_etaDependentCutsSvc->getMaxSharedAtEta(eta)) return false;
496  if(nPixels < m_etaDependentCutsSvc->getMinPixelHitsAtEta(eta)) return false;
497 
498  if(par->pT() < m_etaDependentCutsSvc->getMinPtAtEta(eta)) return false;
499  if(!(*m)->type(Trk::TrackStateOnSurface::Perigee)) return true ;
500  if(std::abs(par->localPosition()[0]) > m_etaDependentCutsSvc->getMaxPrimaryImpactAtEta(eta)) return false;
501  return true;
502 }
503 
504 
505 
InDet::SiSPSeededTrackFinderRoI::m_fieldmode
StringProperty m_fieldmode
Definition: SiSPSeededTrackFinderRoI.h:74
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
SiSpacePointsSeedMakerEventData.h
beamspotman.r
def r
Definition: beamspotman.py:676
InDet::SiSPSeededTrackFinderRoI::m_etaDependentCutsSvc
ServiceHandle< IInDetEtaDependentCutsSvc > m_etaDependentCutsSvc
Definition: SiSPSeededTrackFinderRoI.h:101
InDet::SiSPSeededTrackFinderRoI::m_trackmaker
ToolHandle< ISiTrackMaker > m_trackmaker
Definition: SiSPSeededTrackFinderRoI.h:95
InDet::SiSPSeededTrackFinderRoI::m_ZWindowRoISeedTool
ToolHandle< IZWindowRoISeedTool > m_ZWindowRoISeedTool
Definition: SiSPSeededTrackFinderRoI.h:98
Trk::TrackStateOnSurface::Perigee
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
Definition: TrackStateOnSurface.h:117
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
InDet::SiSPSeededTrackFinderRoI::m_prdToTrackMap
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
Definition: SiSPSeededTrackFinderRoI.h:84
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
InDet::ISiSpacePointsSeedMaker::PixelSeed
@ PixelSeed
Definition: ISiSpacePointsSeedMaker.h:136
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
InDet::SiSpacePointsSeedMakerEventData
Definition: SiSpacePointsSeedMakerEventData.h:49
xAOD::EventInfo_v1::eventNumber
uint64_t eventNumber() const
The current event's event number.
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
InDet::SiSPSeededTrackFinderRoI::dumptools
MsgStream & dumptools(MsgStream &out) const
Definition: SiSPSeededTrackFinderRoI.cxx:342
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:68
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
SG::ReadHandle< Trk::PRDtoTrackMap >
InDet::SiSPSeededTrackFinderRoI::m_doRandomSpot
BooleanProperty m_doRandomSpot
Definition: SiSPSeededTrackFinderRoI.h:72
Trk::Track::trackStateOnSurfaces
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
Trk::Track::info
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
plotBeamSpotCompare.x2
x2
Definition: plotBeamSpotCompare.py:218
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
AthCommonMsg< Gaudi::Algorithm >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
ReadCellNoiseFromCoolCompare.s4
s4
Definition: ReadCellNoiseFromCoolCompare.py:381
InDet::SiSPSeededTrackFinderRoI::m_useRoIWidth
BooleanProperty m_useRoIWidth
Definition: SiSPSeededTrackFinderRoI.h:69
InDet::SiSPSeededTrackFinderRoI::finalize
virtual StatusCode finalize() override
Definition: SiSPSeededTrackFinderRoI.cxx:317
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::SiSPSeededTrackFinderRoI::m_seedsmaker
ToolHandle< ISiSpacePointsSeedMaker > m_seedsmaker
Definition: SiSPSeededTrackFinderRoI.h:94
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SG::ReadHandleKey< Trk::PRDtoTrackMap >
InDet::SiSPSeededTrackFinderRoI::dumpevent
MsgStream & dumpevent(MsgStream &out, const SiSPSeededTrackFinderRoI::Counter_t &counter) const
Definition: SiSPSeededTrackFinderRoI.cxx:371
InDet::SiSPSeededTrackFinderRoI::m_vxOutputKey
SG::WriteHandleKey< xAOD::VertexContainer > m_vxOutputKey
Definition: SiSPSeededTrackFinderRoI.h:82
InDet::SiSPSeededTrackFinderRoI::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: SiSPSeededTrackFinderRoI.cxx:129
InDet::SiSPSeededTrackFinderRoI::dump
MsgStream & dump(MSG::Level lvl, const SiSPSeededTrackFinderRoI::Counter_t *) const
Definition: SiSPSeededTrackFinderRoI.cxx:328
InDet::SiSPSeededTrackFinderRoI::m_outputTracksKey
SG::WriteHandleKey< TrackCollection > m_outputTracksKey
Definition: SiSPSeededTrackFinderRoI.h:81
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
Trk::FastField
@ FastField
call the fast field access method of the FieldSvc
Definition: MagneticFieldMode.h:20
Trk::FitQualityOnSurface
Definition: FitQualityOnSurface.h:19
SiSPSeededTrackFinderRoI.h
InDet::SiSPSeededTrackFinderRoI::passEtaDepCuts
bool passEtaDepCuts(const Trk::Track *track, int nClusters, int nFreeClusters, int nPixels) const
apply eta-dependent selections
Definition: SiSPSeededTrackFinderRoI.cxx:483
InDet::SiSPSeededTrackFinderRoI::m_problemsTotal
std::atomic_int m_problemsTotal
Number events with number seeds > maxNumber.
Definition: SiSPSeededTrackFinderRoI.h:157
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
InDet::SiSPSeededTrackFinderRoI::m_neventsTotal
std::atomic_int m_neventsTotal
Number events.
Definition: SiSPSeededTrackFinderRoI.h:156
InDet::SiSpacePointsSeed
Definition: SiSpacePointsSeed.h:30
InDet::SiSPSeededTrackFinderRoI::initialize
virtual StatusCode initialize() override
Definition: SiSPSeededTrackFinderRoI.cxx:76
lumiFormat.i
int i
Definition: lumiFormat.py:85
InDet::SiSPSeededTrackFinderRoI::Counter_t
Definition: SiSPSeededTrackFinderRoI.h:144
InDet::SiSPSeededTrackFinderRoI::m_evtKey
SG::ReadHandleKey< xAOD::EventInfo > m_evtKey
Definition: SiSPSeededTrackFinderRoI.h:86
InDet::SiTrackMakerEventData_xk::setPRDtoTrackMap
void setPRDtoTrackMap(const Trk::PRDtoTrackMap *prd_to_track_map)
Definition: SiTrackMakerEventData_xk.h:75
beamspotman.n
n
Definition: beamspotman.py:731
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
TrackCollection.h
InDet::SiSPSeededTrackFinderRoI::magneticFieldInit
void magneticFieldInit()
Definition: SiSPSeededTrackFinderRoI.cxx:472
TileDCSDataPlotter.pr
pr
Definition: TileDCSDataPlotter.py:922
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
InDet::ISiSpacePointsSeedMaker::StripSeed
@ StripSeed
Definition: ISiSpacePointsSeedMaker.h:136
InDet::SiSPSeededTrackFinderRoI::kNTracks
@ kNTracks
Definition: SiSPSeededTrackFinderRoI.h:139
Trk::TrackInfo::BremFit
@ BremFit
A brem fit was performed on this track.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:78
Trk::ParametersBase
Definition: ParametersBase.h:55
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
Trk::FitQualityOnSurface::numberDoF
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
Definition: FitQuality.h:60
Vertex.h
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SiTrackMakerEventData_xk.h
SCT
Definition: SCT_ChipUtils.h:14
InDet::ExtendedSiTrackMakerEventData_xk
Definition: SiSPSeededTrackFinder.cxx:161
Trk::PrepRawData
Definition: PrepRawData.h:62
Trk::MeasurementBase
Definition: MeasurementBase.h:58
InDet::SiSPSeededTrackFinderRoI::kNSeeds
@ kNSeeds
Definition: SiSPSeededTrackFinderRoI.h:139
Trk::NoField
@ NoField
Field is set to 0., 0., 0.,.
Definition: MagneticFieldMode.h:18
ReadCellNoiseFromCoolCompare.s3
s3
Definition: ReadCellNoiseFromCoolCompare.py:380
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
RIO_OnTrack.h
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
InDet::SiSPSeededTrackFinderRoI::m_trackSummaryTool
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
Definition: SiSPSeededTrackFinderRoI.h:96
Trk::RIO_OnTrack::prepRawData
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
InDet::ExtendedSiTrackMakerEventData_xk::m_prdToTrackMap
SG::ReadHandle< Trk::PRDtoTrackMap > m_prdToTrackMap
Definition: SiSPSeededTrackFinder.cxx:170
EventInfo.h
InDet::SiSPSeededTrackFinderRoI::m_nfreeCut
IntegerProperty m_nfreeCut
Definition: SiSPSeededTrackFinderRoI.h:71
InDet::ISiSpacePointsSeedMaker::seedType
seedType
Definition: ISiSpacePointsSeedMaker.h:136
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
InDet::SiSPSeededTrackFinderRoI::m_RandomRoISeedTool
ToolHandle< IZWindowRoISeedTool > m_RandomRoISeedTool
Definition: SiSPSeededTrackFinderRoI.h:99
VertexContainer.h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
InDet::SiSPSeededTrackFinderRoI::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: SiSPSeededTrackFinderRoI.h:85
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
TRT_PAI_physicsConstants::mb
const double mb
1mb to cm2
Definition: TRT_PAI_physicsConstants.h:15
DEBUG
#define DEBUG
Definition: page_access.h:11
ReadCellNoiseFromCoolCompare.s2
s2
Definition: ReadCellNoiseFromCoolCompare.py:379
InDet::ISiSpacePointsSeedMaker::MixedSeed
@ MixedSeed
Definition: ISiSpacePointsSeedMaker.h:136
AthCommonMsg< Gaudi::Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
InDet::ExtendedSiTrackMakerEventData_xk::ExtendedSiTrackMakerEventData_xk
ExtendedSiTrackMakerEventData_xk(const SG::ReadHandleKey< Trk::PRDtoTrackMap > &key)
Definition: SiSPSeededTrackFinderRoI.cxx:114
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
InDet::SiSPSeededTrackFinderRoI::m_fieldprop
Trk::MagneticFieldProperties m_fieldprop
Definition: SiSPSeededTrackFinderRoI.h:107
InDet::SiSPSeededTrackFinderRoI::m_maxNumberSeeds
IntegerProperty m_maxNumberSeeds
Definition: SiSPSeededTrackFinderRoI.h:70
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
InDet::SiTrackMakerEventData_xk
Definition: SiTrackMakerEventData_xk.h:43
PatternTrackParameters.h
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
beamspotnt.nt
def nt
Definition: bin/beamspotnt.py:1063
test_pyathena.counter
counter
Definition: test_pyathena.py:15
Trk::TrackInfo::trackProperties
bool trackProperties(const TrackProperties &property) const
Access methods for track properties.
Trk::FitQualityOnSurface::chiSquared
double chiSquared() const
returns the of the overall track fit
Definition: FitQuality.h:56
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
InDet::SiSPSeededTrackFinderRoI::SiSPSeededTrackFinderRoI
SiSPSeededTrackFinderRoI(const std::string &name, ISvcLocator *pSvcLocator)
Definition: SiSPSeededTrackFinderRoI.cxx:68
InDet::SiSPSeededTrackFinderRoI::filterSharedTracks
void filterSharedTracks(std::multimap< double, Trk::Track * > &) const
cleans up the collection of quality filtered tracks.
Definition: SiSPSeededTrackFinderRoI.cxx:399
VertexAuxContainer.h
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37