ATLAS Offline Software
TrackStatePrinter.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 
7 // Athena
11 
12 // ACTS
13 #include "Acts/Definitions/Units.hpp"
14 #include "Acts/Definitions/Common.hpp"
15 #include "Acts/Definitions/Algebra.hpp"
16 #include "Acts/Surfaces/Surface.hpp"
17 #include "Acts/Surfaces/AnnulusBounds.hpp"
18 #include "Acts/Surfaces/SurfaceBounds.hpp"
19 #include "Acts/Surfaces/DiscSurface.hpp"
20 #include "Acts/EventData/TransformationHelpers.hpp"
21 
22 // PACKAGE
25 #include "ActsInterop/Logger.h"
26 
27 // Other
28 #include <vector>
29 #include <iostream>
30 #include <sstream>
31 
32 namespace ActsTrk
33 {
38 
39  std::string TrackStatePrinter::trackStateName(Acts::ConstTrackStateType trackStateType)
40  {
41  static constexpr std::array<std::tuple<bool, Acts::TrackStateFlag, char>, 6> trackStateNames{{
42  {false, Acts::TrackStateFlag::ParameterFlag, '-'},
43  {true, Acts::TrackStateFlag::MeasurementFlag, 'M'},
44  {true, Acts::TrackStateFlag::OutlierFlag, 'O'},
45  {true, Acts::TrackStateFlag::HoleFlag, 'H'},
46  {true, Acts::TrackStateFlag::MaterialFlag, 'm'},
47  {true, Acts::TrackStateFlag::SharedHitFlag, 'S'},
48  }};
49  std::string s;
50  for (const auto &[b, f, c] : trackStateNames)
51  {
52  if (trackStateType.test(f) == b)
53  s += c;
54  }
55  return s;
56  }
57 
58  // compact surface/boundary name
59  std::string TrackStatePrinter::actsSurfaceName(const Acts::Surface &surface)
60  {
61  std::string name = surface.name();
62  if (name.compare(0, 6, "Acts::") == 0)
63  {
64  name.erase(0, 6);
65  }
66  if (name.size() > 7 && name.compare(name.size() - 7, 7, "Surface") == 0)
67  {
68  name.erase(name.size() - 7, 7);
69  }
70  static const std::map<Acts::SurfaceBounds::BoundsType, const char *> boundsNames{{
71  {Acts::SurfaceBounds::BoundsType::eCone, "Cone"},
72  {Acts::SurfaceBounds::BoundsType::eCylinder, "Cylinder"},
73  {Acts::SurfaceBounds::BoundsType::eDiamond, "Diamond"},
74  {Acts::SurfaceBounds::BoundsType::eDisc, "Disc"},
75  {Acts::SurfaceBounds::BoundsType::eEllipse, "Ellipse"},
76  {Acts::SurfaceBounds::BoundsType::eLine, "Line"},
77  {Acts::SurfaceBounds::BoundsType::eRectangle, "Rectangle"},
78  {Acts::SurfaceBounds::BoundsType::eTrapezoid, "Trapezoid"},
79  {Acts::SurfaceBounds::BoundsType::eTriangle, "Triangle"},
80  {Acts::SurfaceBounds::BoundsType::eDiscTrapezoid, "DiscTrapezoid"},
81  {Acts::SurfaceBounds::BoundsType::eConvexPolygon, "ConvexPolygon"},
82  {Acts::SurfaceBounds::BoundsType::eAnnulus, "Annulus"},
83  {Acts::SurfaceBounds::BoundsType::eBoundless, "Boundless"},
84  {Acts::SurfaceBounds::BoundsType::eOther, "Other"},
85  }};
86  if (auto it = boundsNames.find(surface.bounds().type());
87  it != boundsNames.end() && it->second != name)
88  {
89  name += ' ';
90  name += it->second;
91  }
92  return name;
93  }
94 
95  static std::string
96  atlasSurfaceName(const InDetDD::SiDetectorElement &detElem)
97  {
98  if (auto idHelper = detElem.getIdHelper())
99  {
100  auto name = idHelper->show_to_string(detElem.identify());
101  if (name.size() >= 2 && name[0] == '[' && name[name.size() - 1] == ']')
102  {
103  return name.substr(1, name.size() - 2);
104  }
105  else
106  {
107  return name;
108  }
109  }
110  return {};
111  }
112 
113  static void printHeader(int type, bool extra = false)
114  {
115  std::cout << std::left
116  << std::setw(5) << "Index" << ' '
117  << std::setw(4) << "Type" << ' '
118  << std::setw(21) << "SurfaceBounds" << ' ';
119  if (type == 0)
120  {
121  std::cout << std::setw(22) << "GeometryId" << ' '
122  << std::setw(20) << "ATLAS ID" << ' '
123  << std::right
124  << std::setw(10) << "loc0" << ' '
125  << std::setw(10) << "loc1"
126  << " "
127  << std::setw(9) << "R" << ' '
128  << std::setw(9) << "phid" << ' '
129  << std::setw(9) << "eta";
130  if (extra)
131  {
132  std::cout << ' '
133  << std::setw(10) << "Trk loc0" << ' '
134  << std::setw(10) << "loc1"
135  << " "
136  << std::setw(9) << "Trk R" << ' '
137  << std::setw(9) << "phid" << ' '
138  << std::setw(9) << "eta" << ' '
139  << std::setw(10) << "g2l loc0" << ' '
140  << std::setw(10) << "loc1";
141  }
142  std::cout << '\n';
143  static std::atomic<int> kilroy = 0;
144  if (!(kilroy++))
145  {
146  std::cout << "R (mm) and phi (degrees). Estimated local coordinate indicated by \"*\" (from SP), \"o\" (from module center), or \"#\" (globalToLocal(center) failure).";
147  if (extra)
148  std::cout << " Athena/ACTS comparison only shown if different.";
149  std::cout << '\n';
150  }
151  }
152  if (type == 1)
153  {
154  std::cout << std::setw(22) << "GeometryId/meas/stats" << ' '
155  << std::right
156  << std::setw(10) << "loc0" << ' '
157  << std::setw(10) << "loc1" << ' '
158  << std::setw(9) << "Pos R" << ' '
159  << std::setw(9) << "phid" << ' '
160  << std::setw(9) << "eta" << ' '
161  << std::setw(9) << "q*pT" << ' '
162  << std::setw(9) << "phid" << ' '
163  << std::setw(9) << "eta" << ' '
164  << std::setw(6) << "TrkLen" << ' '
165  << std::setw(7) << "chi2" << ' '
166  << std::setw(6) << "Flags" << '\n';
167  }
168  }
169 
170  static void
171  printVec3(const Acts::Vector3 &p)
172  {
173  std::cout << std::fixed << ' '
174  << std::setw(9) << std::setprecision(3) << p.head<2>().norm() << ' '
175  << std::setw(9) << std::setprecision(3) << std::atan2(p[1], p[0]) / Acts::UnitConstants::degree << ' '
176  << std::setw(9) << std::setprecision(5) << std::atanh(p[2] / p.norm())
177  << std::defaultfloat << std::setprecision(-1);
178  }
179 
180  static void
181  printVec3(const Acts::Vector3 &p, const Acts::Vector3 &cmp, int precision = 3)
182  {
183  if (((p - cmp).array().abs() >= 0.5 * std::pow(10.0, -precision)).any())
184  {
185  printVec3(p);
186  }
187  else
188  {
189  std::cout << std::setw(30) << "";
190  }
191  }
192 
193  static void
194  printVec2(const Acts::Vector2 &p, const char *estimated = nullptr)
195  {
196  const char e0 = estimated ? estimated[0] : ' ';
197  const char *e1 = estimated ? estimated + 1 : "";
198  std::cout << std::fixed << ' '
199  << std::setw(10) << std::setprecision(4) << p[0] << e0
200  << std::setw(10) << std::setprecision(4) << p[1] << e1
201  << std::defaultfloat << std::setprecision(-1);
202  }
203 
204  static void
205  printVec2(const Acts::Vector2 &p, const Acts::Vector2 &cmp, const char *estimated = nullptr, int precision = 4)
206  {
207  if (((p - cmp).array().abs() >= 0.5 * std::pow(10.0, -precision)).any())
208  {
209  printVec2(p, estimated);
210  }
211  else
212  {
213  std::cout << std::setw(22 + (estimated ? 1 : 0)) << "";
214  }
215  }
216 
217  static void
218  printMeasurement(const Acts::GeometryContext &tgContext,
219  const Acts::Surface *surface,
220  const InDetDD::SiDetectorElement *detElem,
221  const std::tuple<Acts::Vector2, Amg::Vector2D, int, int> &locData,
222  bool compareMeasurementTransforms = false)
223  {
224  auto &[loc, locTrk, measInd, est] = locData;
225  int flag = est < 0 ? est : 2 * est + measInd;
226  int flagTrk = est < 0 ? est : 2 * est;
227  // indicates coordinate that is estimated: *=from SP, o=from module center, #=globalToLocal(center) failure
228  static const std::map<int, const char *> estimated_flags{{-1, " "},
229  {0, " *"},
230  {1, "* "},
231  {2, " o"},
232  {3, "o "},
233  {4, " #"},
234  {5, "# "}};
235  printVec2(loc, estimated_flags.at(flag));
236 
237  if (surface)
238  {
239  // momentum direction doesn't seem to be needed for measurement surfaces (only LineSurface?)
240  auto glob = surface->localToGlobal(tgContext, loc, Acts::Vector3::Zero());
241  printVec3(glob);
242 
243  if (compareMeasurementTransforms)
244  {
245  // if measInd=1: won't match because comparing x,y and R,phi, but at least not phi,R.
246  // This is still useful for debugging because the next test also fails.
247  printVec2(locTrk, (measInd == 1 ? loc.reverse() : loc), estimated_flags.at(flagTrk));
248 
249  if (detElem)
250  {
251  auto globTrk = detElem->surface().localToGlobal(locTrk);
252  printVec3(globTrk, glob);
253 
254  auto res = surface->globalToLocal(tgContext, globTrk, Acts::Vector3::Zero());
255  if (!res.ok())
256  {
257  std::cout << " ** " << res.error() << " **";
258  }
259  else
260  {
261  printVec2(res.value(), loc);
262  }
263  }
264  }
265  }
266  std::cout << std::defaultfloat << std::setprecision(-1);
267  }
268 
269  static std::tuple<Acts::Vector2, Amg::Vector2D, int, int>
270  localPositionStrip2D(const Acts::GeometryContext &tgContext,
271  const xAOD::UncalibratedMeasurement &measurement,
272  const Acts::Surface *surface,
273  const xAOD::SpacePoint *sp)
274  {
275  auto *disc = dynamic_cast<const Acts::DiscSurface *>(surface);
276  Acts::Vector2 loc{Acts::Vector2::Zero()};
277  int est = 2; // est = 0 (estimated from SP), 1 (from module center), 2 (globalToLocal(center) failure), -1 (pixel)
278  if (surface)
279  {
280  if (sp)
281  {
282  auto res = surface->globalToLocal(tgContext, sp->globalPosition().cast<double>(), Acts::Vector3::Zero());
283  if (res.ok())
284  {
285  loc = res.value();
286  est = 0;
287  }
288  }
289 
290  if (est != 0)
291  {
292  if (auto *annulus = dynamic_cast<const Acts::AnnulusBounds *>(&surface->bounds()))
293  {
294  loc[0] = 0.5 * (annulus->rMin() + annulus->rMax());
295  est = 1;
296  }
297  else
298  {
299  auto res = surface->globalToLocal(tgContext, surface->center(tgContext), Acts::Vector3::Zero());
300  if (res.ok())
301  {
302  loc = res.value();
303  est = 1;
304  }
305  }
306  }
307  }
308 
309  const int measInd = disc ? 1 : 0;
310  loc[measInd] = measurement.localPosition<1>()[0];
311  if (disc)
312  {
313  Amg::Vector2D locTrk{disc->localPolarToCartesian(loc).reverse()};
314  locTrk[0] = -locTrk[0];
315  return {loc, locTrk, measInd, est};
316  }
317  else
318  {
319  return {loc, loc, measInd, est};
320  }
321  }
322 
323  void
324  TrackStatePrinter::printMeasurementAssociatedSpacePoint(const Acts::GeometryContext &tgContext,
325  const xAOD::UncalibratedMeasurement *measurement,
327  const InDetDD::SiDetectorElementCollection *detectorElements,
328  size_t offset) const
329  {
330  if (!measurement || !detectorElements)
331  return;
332 
333  std::cout << std::setw(5) << (measurement->index() + offset) << ' '
334  << std::setw(3) << measurement->numDimensions() << "D ";
335 
336  const InDetDD::SiDetectorElement *detElem = detectorElements->getDetectorElement(measurement->identifierHash());
337  const Acts::Surface *surface_ptr = nullptr;
338  if (!detElem)
339  {
340  std::cout << std::setw(20 + 22 + 20 + 2) << "** no DetElem **";
341  }
342  else
343  {
344  surface_ptr = &m_ATLASConverterTool->trkSurfaceToActsSurface(detElem->surface());
345  std::cout << std::left;
346  std::cout << std::setw(21) << actsSurfaceName(*surface_ptr) << ' '
347  << std::setw(22) << to_string(surface_ptr->geometryId()) << ' ';
348  std::cout << std::setw(20) << atlasSurfaceName(*detElem);
349  std::cout << std::right;
350  }
351 
352  if (measurement->type() == xAOD::UncalibMeasType::PixelClusterType)
353  {
354  const auto loc = measurement->localPosition<2>().cast<double>();
355  printMeasurement(tgContext, surface_ptr, detElem, {loc, loc, -1, -1}, m_compareMeasurementTransforms);
356  }
357  else if (measurement->type() == xAOD::UncalibMeasType::StripClusterType)
358  {
359  const small_vector<const xAOD::SpacePoint *> &spvec = measToSp.at(measurement->index());
360  if (spvec.empty())
361  {
362  printMeasurement(tgContext, surface_ptr, detElem,
363  localPositionStrip2D(tgContext, *measurement, surface_ptr, nullptr),
365  }
366  else
367  {
368  size_t isp = 0;
369  for (auto *sp : spvec)
370  {
371  if (isp++)
372  {
373  std::cout << '\n'
374  << std::left
375  << std::setw(76) << to_string("** Spacepoint ", isp, " **")
376  << std::right;
377  }
378  printMeasurement(tgContext, surface_ptr, detElem,
379  localPositionStrip2D(tgContext, *measurement, surface_ptr, sp),
381  }
382  }
383  }
384  std::cout << '\n';
385  }
386 
387  void TrackStatePrinter::printParameters(const Acts::Surface &surface, const Acts::GeometryContext &tgContext, const Acts::BoundVector &bound)
388  {
389  auto p = Acts::transformBoundToFreeParameters(surface, tgContext, bound);
390  std::cout << std::fixed
391  << std::setw(10) << std::setprecision(4) << bound[Acts::eBoundLoc0] << ' '
392  << std::setw(10) << std::setprecision(4) << bound[Acts::eBoundLoc1] << ' '
393  << std::setw(9) << std::setprecision(3) << p.segment<2>(Acts::eFreePos0).norm() << ' '
394  << std::setw(9) << std::setprecision(3) << std::atan2(p[Acts::eFreePos1], p[Acts::eFreePos0]) / Acts::UnitConstants::degree << ' '
395  << std::setw(9) << std::setprecision(5) << std::atanh(p[Acts::eFreePos2] / p.segment<3>(Acts::eFreePos0).norm()) << ' '
396  << std::setw(9) << std::setprecision(3) << p.segment<2>(Acts::eFreeDir0).norm() / p[Acts::eFreeQOverP] << ' '
397  << std::setw(9) << std::setprecision(3) << std::atan2(p[Acts::eFreeDir1], p[Acts::eFreeDir0]) / Acts::UnitConstants::degree << ' '
398  << std::setw(9) << std::setprecision(5) << std::atanh(p[Acts::eFreeDir2])
399  << std::defaultfloat << std::setprecision(-1);
400  }
401 
405 
407  const std::string &name,
408  const IInterface *parent)
410  {
411  }
412 
414  {
415  ATH_MSG_DEBUG("Initializing " << name() << "...");
416  ATH_MSG_DEBUG("Properties Summary:");
419 
420  ATH_CHECK(m_trackingGeometryTool.retrieve());
421  ATH_CHECK(m_spacePointKey.initialize());
422 
423  return StatusCode::SUCCESS;
424  }
425 
426  void
427  TrackStatePrinter::printSeed(const Acts::GeometryContext &tgContext,
428  const ActsTrk::Seed &seed,
429  const Acts::BoundTrackParameters &initialParameters,
430  size_t measurementOffset,
431  size_t iseed,
432  bool isKF) const
433  {
434  if (!isKF)
435  printHeader(1);
436 
437  std::ostringstream os;
438  size_t nos = 0;
439  for (const auto *sp : seed.sp())
440  {
441  size_t nom = 0;
442  for (const auto *el : sp->measurements())
443  {
444  std::size_t index = el->index();
445  if (nom > 0)
446  os << '+';
447  else if (nos > 0)
448  os << ',';
449  ++nos;
450  ++nom;
451  os << measurementOffset + index;
452  }
453  }
454 
455  std::cout << std::setw(5) << iseed << ' '
456  << std::left
457  << std::setw(4) << (!isKF ? "seed" : "KF") << ' '
458  << std::setw(21) << actsSurfaceName(initialParameters.referenceSurface()) << ' '
459  << std::setw(22) << to_string(os.str()) << ' '
460  << std::right;
461  printParameters(initialParameters.referenceSurface(), tgContext, initialParameters.parameters());
462  std::cout << '\n'
463  << std::flush;
464  }
465 
466  void
467  TrackStatePrinter::printMeasurements(const EventContext &ctx,
468  const std::vector<const xAOD::UncalibratedMeasurementContainer *> &clusterContainers,
469  const std::vector<const InDetDD::SiDetectorElementCollection *> &detectorElementCollections,
470  const std::vector<size_t> &offsets) const
471  {
472  auto trackingGeometry = m_trackingGeometryTool->trackingGeometry();
473  Acts::GeometryContext tgContext = m_trackingGeometryTool->getGeometryContext(ctx).context();
474 
475  auto measToSp = addSpacePoints(ctx, clusterContainers, offsets);
476 
477  ATH_MSG_INFO("CKF input measurements:");
478  printHeader(0, m_compareMeasurementTransforms);
479 
480  for (std::size_t icontainer = 0; icontainer < clusterContainers.size(); ++icontainer)
481  {
482  for (const auto *measurement : *clusterContainers[icontainer])
483  {
484  printMeasurementAssociatedSpacePoint(tgContext, measurement, measToSp[icontainer], detectorElementCollections[icontainer], offsets[icontainer]);
485  }
486  }
487  std::cout << std::flush;
488  }
489 
490  std::vector<std::vector<TrackStatePrinter::small_vector<const xAOD::SpacePoint *>>>
491  TrackStatePrinter::addSpacePoints(const EventContext &ctx,
492  const std::vector<const xAOD::UncalibratedMeasurementContainer *> &clusterContainers,
493  const std::vector<size_t> &offsets) const
494  {
495  std::vector<std::vector<TrackStatePrinter::small_vector<const xAOD::SpacePoint *>>> measToSp{clusterContainers.size()};
496  for (std::size_t icontainer = 0; icontainer < clusterContainers.size(); ++icontainer)
497  {
498  measToSp[icontainer].resize(clusterContainers[icontainer]->size());
499  }
500 
501  for (auto &spacePointKey : m_spacePointKey)
502  {
503  ATH_MSG_DEBUG("Retrieving from input SpacePoint collection '" << spacePointKey.key() << "' ...");
504  SG::ReadHandle<xAOD::SpacePointContainer> handle = SG::makeHandle(spacePointKey, ctx);
505  if (!handle.isValid())
506  {
507  ATH_MSG_ERROR("Error retrieving from input SpacePoint collection '" << spacePointKey.key() << "'");
508  continue;
509  }
510  ATH_MSG_DEBUG(" \\__ " << handle->size() << " elements!");
511  for (const auto *sp : *handle)
512  {
513  for (const xAOD::UncalibratedMeasurement *meas : sp->measurements())
514  {
515  if (!meas)
516  continue;
517  for (std::size_t icontainer = 0; icontainer < clusterContainers.size(); ++icontainer)
518  {
519  // This measurement may well be in a different clusterContainer. Skip all but the one we are interested in.
520  if (!(meas && meas->index() < clusterContainers[icontainer]->size() && meas == clusterContainers[icontainer]->at(meas->index())))
521  continue;
522  small_vector<const xAOD::SpacePoint *> &measSp = measToSp[icontainer].at(meas->index());
523  if (!measSp.empty())
524  {
525  ATH_MSG_INFO("Cluster "
526  << (meas->index() + offsets[icontainer])
527  << " used by SpacePoints at ("
528  << sp->globalPosition()[0] << ',' << sp->globalPosition()[1] << ',' << sp->globalPosition()[2]
529  << ") and ("
530  << measSp[0]->globalPosition()[0] << ',' << measSp[0]->globalPosition()[1] << ',' << measSp[0]->globalPosition()[2]
531  << ')');
532  }
533  measSp.push_back(sp);
534  }
535  }
536  }
537  }
538  return measToSp;
539  }
540 
541 } // namespace ActsTrk
python.EI_Lib.cmp
def cmp(x, y)
Definition: EI_Lib.py:6
ActsTrk::TrackStatePrinter::actsSurfaceName
static std::string actsSurfaceName(const Acts::Surface &surface)
Definition: TrackStatePrinter.cxx:59
xAOD::UncalibratedMeasurement_v1::identifierHash
DetectorIDHashType identifierHash() const
Returns the IdentifierHash of the measurement (corresponds to the detector element IdentifierHash)
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
PlotCalibFromCool.norm
norm
Definition: PlotCalibFromCool.py:100
ActsTrk::TrackStatePrinter::m_compareMeasurementTransforms
Gaudi::Property< bool > m_compareMeasurementTransforms
Definition: TrackStatePrinter.h:101
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TrackParameters.h
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:30
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
FullCPAlgorithmsTest_eljob.flush
flush
Definition: FullCPAlgorithmsTest_eljob.py:168
perfmonmt-printer.printHeader
def printHeader()
Definition: perfmonmt-printer.py:10
egammaEnergyPositionAllSamples::e1
double e1(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 1st sampling
ActsTrk::TrackStatePrinter::addSpacePoints
std::vector< std::vector< small_vector< const xAOD::SpacePoint * > > > addSpacePoints(const EventContext &ctx, const std::vector< const xAOD::UncalibratedMeasurementContainer * > &clusterContainers, const std::vector< size_t > &offset) const
Definition: TrackStatePrinter.cxx:491
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
index
Definition: index.py:1
xAOD::UncalibMeasType::StripClusterType
@ StripClusterType
ActsTrk::TrackStatePrinter::printMeasurementAssociatedSpacePoint
void printMeasurementAssociatedSpacePoint(const Acts::GeometryContext &tgContext, const xAOD::UncalibratedMeasurement *measurement, const std::vector< small_vector< const xAOD::SpacePoint * >> &measToSp, const InDetDD::SiDetectorElementCollection *detectorElements, size_t offset) const
Definition: TrackStatePrinter.cxx:324
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
ActsTrk::Seed
Acts::Seed< xAOD::SpacePoint > Seed
Definition: Seed.h:13
skel.it
it
Definition: skel.GENtoEVGEN.py:423
InDetDD::SolidStateDetectorElementBase::surface
Trk::Surface & surface()
Element Surface.
ActsTrk::TrackStatePrinter::m_trackingGeometryTool
ToolHandle< IActsTrackingGeometryTool > m_trackingGeometryTool
Definition: TrackStatePrinter.h:97
ActsTrk::TrackStatePrinter::m_spacePointKey
SG::ReadHandleKeyArray< xAOD::SpacePointContainer > m_spacePointKey
Definition: TrackStatePrinter.h:94
bound
@ bound
Definition: L1CaloPprPlotManager.h:74
xAOD::SpacePoint_v1
Definition: SpacePoint_v1.h:29
TrackStatePrinter.h
xAOD::SpacePoint_v1::globalPosition
ConstVectorMap globalPosition() const
Returns the global position of the pixel cluster.
InDetDD::SolidStateDetectorElementBase::getIdHelper
const AtlasDetectorID * getIdHelper() const
Returns the id helper (inline)
ActsTrk::TrackStatePrinter::small_vector
boost::container::small_vector< T, N_SP_PER_MEAS > small_vector
Definition: TrackStatePrinter.h:107
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:269
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
xAOD::UncalibratedMeasurement_v1
Definition: UncalibratedMeasurement_v1.h:13
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAOD::UncalibratedMeasurement_v1::type
virtual xAOD::UncalibMeasType type() const =0
Returns the type of the measurement type as a simple enumeration.
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
master.flag
bool flag
Definition: master.py:29
UncalibratedMeasurementContainer.h
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:14
ActsTrk::TrackStatePrinter::TrackStatePrinter
TrackStatePrinter(const std::string &type, const std::string &name, const IInterface *parent)
=========================================================================
Definition: TrackStatePrinter.cxx:406
test_pyathena.parent
parent
Definition: test_pyathena.py:15
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
xAOD::SpacePoint_v1::measurements
const std::vector< const xAOD::UncalibratedMeasurement * > & measurements() const
Returns the index of the measurements.
ActsDetectorElement.h
SG::AuxElement::index
size_t index() const
Return the index of this element within its container.
xAOD::UncalibratedMeasurement_v1::localPosition
ConstVectorMap< N > localPosition() const
Returns the local position of the measurement.
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
xAOD::UncalibratedMeasurement_v1::numDimensions
virtual unsigned int numDimensions() const =0
Returns the number of dimensions of the measurement.
lumiFormat.array
array
Definition: lumiFormat.py:98
python.handimod.extra
int extra
Definition: handimod.py:522
PlotSFuncertainty.nom
nom
Definition: PlotSFuncertainty.py:141
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
ActsTrk::TrackStatePrinter::printSeed
void printSeed(const Acts::GeometryContext &tgContext, const ActsTrk::Seed &seed, const Acts::BoundTrackParameters &initialParameters, size_t measurementOffset, size_t iseed, bool isKF) const
Definition: TrackStatePrinter.cxx:427
ActsTrk::TrackStatePrinter::printMeasurements
void printMeasurements(const EventContext &ctx, const std::vector< const xAOD::UncalibratedMeasurementContainer * > &clusterContainers, const std::vector< const InDetDD::SiDetectorElementCollection * > &detectorElementCollections, const std::vector< size_t > &offsets) const
Definition: TrackStatePrinter.cxx:467
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
SiDetectorElementCollection.h
ActsTrk::TrackStatePrinter::m_ATLASConverterTool
ToolHandle< ActsTrk::IActsToTrkConverterTool > m_ATLASConverterTool
Definition: TrackStatePrinter.h:98
DeMoScan.index
string index
Definition: DeMoScan.py:362
ActsTrk::TrackStatePrinter::m_printFilteredStates
Gaudi::Property< bool > m_printFilteredStates
Definition: TrackStatePrinter.h:102
ActsTrk::TrackStatePrinter::initialize
virtual StatusCode initialize() override
Definition: TrackStatePrinter.cxx:413
ActsTrk::TrackStatePrinter::printParameters
static void printParameters(const Acts::Surface &surface, const Acts::GeometryContext &tgContext, const Acts::BoundVector &bound)
Definition: TrackStatePrinter.cxx:387
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ActsTrk::TrackStatePrinter::trackStateName
static std::string trackStateName(Acts::ConstTrackStateType trackStateType)
========================================================================= file-local static functions...
Definition: TrackStatePrinter.cxx:39
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MuonDetectorBuilderTool.cxx:34
egammaEnergyPositionAllSamples::e0
double e0(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in pre-sampler
AthAlgTool
Definition: AthAlgTool.h:26
Logger.h
python.compressB64.c
def c
Definition: compressB64.py:93
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
InDetDD::SiDetectorElementCollection::getDetectorElement
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const
Definition: SiDetectorElementCollection.cxx:15
TrackContainer.h
InDetDD::SolidStateDetectorElementBase::identify
virtual Identifier identify() const override final
identifier of this detector element (inline)
python.SystemOfUnits.degree
tuple degree
Definition: SystemOfUnits.py:106
Trk::Surface::localToGlobal
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const =0
Specified by each surface type: LocalToGlobal method without dynamic memory allocation.
xAOD::UncalibMeasType::PixelClusterType
@ PixelClusterType
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32