ATLAS Offline Software
AlignResidualCalculator.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
8 
16 
17 #include "muonEvent/CaloEnergy.h"
18 
19 #include <vector>
20 
21 namespace Trk {
22 
23  //______________________________________________________________
24  AlignResidualCalculator::AlignResidualCalculator(const std::string& type, const std::string& name, const IInterface* parent)
26  {
27  declareInterface<IAlignResidualCalculator>(this);
28  }
29 
30  //________________________________________________________________________
32  {
33  delete [] m_chi2ForMeasType;
34  }
35 
36  //________________________________________________________________________
38  {
39  // get residual pull calculator
40  if (m_pullCalculator.retrieve().isFailure()) {
41  ATH_MSG_FATAL("Could not get " << m_pullCalculator);
42  return StatusCode::FAILURE;
43  }
44  ATH_MSG_INFO("Retrieved " << m_pullCalculator);
45 
46  // get updator
47  if(m_resType==Unbiased) {
48  if (m_updator.retrieve().isFailure()) {
49  ATH_MSG_FATAL("Could not get " << m_updator);
50  return StatusCode::FAILURE;
51  }
52  ATH_MSG_INFO("Retrieved " << m_pullCalculator);
53  }
54 
55  ATH_MSG_INFO("Using"<<static_cast<AlignResidualType>(m_resType.value())<<"residuals.");
56 
57  return StatusCode::SUCCESS;
58  }
59 
60  //________________________________________________________________________
62  {
63  return StatusCode::SUCCESS;
64  }
65 
66  //________________________________________________________________________
68  {
69  bool useNewTrack = (track!=nullptr);
70  return setResiduals(atsosColl->begin(), atsosColl->end(), track, useNewTrack);
71  }
72 
73  //________________________________________________________________________
75  {
76  bool useNewTrack = (track!=nullptr);
77  const Track* newTrack = (useNewTrack) ? track : alignTrack;
78  return setResiduals(alignTrack->firstAtsos(), alignTrack->lastAtsos(), newTrack, useNewTrack);
79  }
80 
81  //________________________________________________________________________
84  const Track* track, bool newTrack)
85  {
86  m_nDoF=0;
87  m_matchedTSOS.clear();
88 
89  delete [] m_chi2ForMeasType;
92  m_chi2ForMeasType[i]=0.;
93 
94  //ATH_MSG_DEBUG("in setResiduals with newTrack="<<newTrack);
95 
96  if (!track&&newTrack) { ATH_MSG_ERROR("no track!"); return 0.; }
97 
98  int ntsos(0);
99  double chi2(0.);
100  for (AlignTSOSCollection::iterator atsos=firstAtsos; atsos != lastAtsos; ++atsos,ntsos++) {
101 
102  const AlignTSOS* atsosp = *atsos;
103  // get TSOS from AlignTSOS or closest TSOS if track given
104  const TrackStateOnSurface* tsos =
105  (newTrack) ? getMatchingTSOS(*atsos,track) : dynamic_cast<const TrackStateOnSurface*>(atsosp);
106 
107  ATH_MSG_DEBUG("ntsos "<<ntsos);
108 
109  const MaterialEffectsBase* meb = tsos->materialEffectsOnTrack();
110  const Trk::MaterialEffectsOnTrack* meot = dynamic_cast<const MaterialEffectsOnTrack*>(meb);
111 
112  // if scatterer, add scattering parameters
113  if (m_includeScatterers && meb && meot) {
114  accumulateScattering(tsos);
115  }
116 
117  // set residuals for alignTSOS
118  double dchi2 = setResidualsOnATSOS(*atsos,tsos);
119  chi2 += dchi2;
120  int imeasType=(**atsos).measType();
121  m_chi2ForMeasType[imeasType] += dchi2;
122  ATH_MSG_DEBUG("adding "<<dchi2<<", m_chi2ForMeasType["<<imeasType<<"]="<<m_chi2ForMeasType[imeasType]);
123  }
124 
125  return chi2;
126  }
127 
128  //_______________________________________________________________________
129  double
131  {
132  // this method does the following:
133  // 1. gets residuals (measurement and scattering dimensions),
134  // 2. adds to AlignTSOS, and
135  // 3. returns contribution to chi2 from this ATSOS
136 
137  ATH_MSG_DEBUG("in setResidualsOnATSOS");
138 
139  atsos->clearResiduals();
140 
141  double dchi2(0.);
142 
143  // scattering residual(s) and/or energy loss first
144  if (m_includeScatterers) {
145  ATH_MSG_DEBUG("scatterer");
146 
147  // when using unbiased residuals including scatterers doesn't make sense
148  if(m_resType == Unbiased)
149  ATH_MSG_WARNING("When using unbiased residuals including scatterers doesn't make sense!");
150 
151  const MaterialEffectsBase* meb = tsos->materialEffectsOnTrack();
152  const Trk::MaterialEffectsOnTrack* meot = dynamic_cast<const MaterialEffectsOnTrack*>(meb);
153  const ScatteringAngles* scatterer = (meot) ? meot->scatteringAngles() : nullptr;
154 
155  int nscatparam=0;
156  if (meb && meot)
157  nscatparam = (scatterer) ? 2 : 1;
158 
159  for (int iparam=0;iparam<nscatparam;iparam++) {
160 
161  double errSq=0.;
162  double residual(-999.);
163 
164  if (nscatparam==2) {
165 
166  const Trk::TrackParameters * tparp = tsos->trackParameters();
167  if (tparp) {
168  if (iparam==0) {
169  residual=-scatterer->deltaPhi()* sin (tparp->parameters()[Trk::theta]);
170  errSq = scatterer->sigmaDeltaTheta();
171  ATH_MSG_DEBUG("sigmaDeltaTheta="<<scatterer->sigmaDeltaTheta());
172  ATH_MSG_DEBUG("sigmaDeltaPhi ="<<scatterer->sigmaDeltaPhi());
173  ATH_MSG_DEBUG("residual:"<<residual<<", errSq: "<<errSq<<", err="<<std::sqrt(errSq));
174  errSq *= errSq;
175  }
176  else{
177  residual=-scatterer->deltaTheta();
178  errSq = scatterer->sigmaDeltaTheta();
179  errSq *= errSq;
180  }
181  }
182  else{
183  ATH_MSG_WARNING("scatterer has no TrackParameters!");
184  }
185 
187  atsos->addResidual(res);
188 
189  dchi2 += res.residualNorm()*res.residualNorm();
190  m_nDoF++;
191  }
192  else if (!atsos->rio() && !atsos->crio()) {
193  ATH_MSG_DEBUG("energy deposit");
194 
195  // energy deposit
196  double E0 = 1./std::fabs(m_previousQOverP);
197  double E1 = 1./std::fabs(m_qOverP);
198  double energyLoss= std::fabs(meot->energyLoss()->deltaE());
199 
200  double residual = .001*(E0-E1-energyLoss);
201  double errSq = .001*meot->energyLoss()->sigmaDeltaE();
202 
203  ATH_MSG_DEBUG("E0/E1/energyLoss: "<<E0<<"/"<<E1<<"/"<<energyLoss);
204  ATH_MSG_DEBUG("calorimeter residual: "<<residual/errSq);
205 
206  errSq*=errSq;
207 
209  atsos->addResidual(res);
210  dchi2 += res.residualNorm()*res.residualNorm();
211  m_nDoF++;
212  }
213  }
214  }
215 
216  // residuals from measurement
217  if (atsos->rio() || atsos->crio()) {
218 
219  int nparams = (atsos->measType()==TrackState::Pixel) ? 2 : 1;
220  for (int iparam=0;iparam<nparams;iparam++) {
221 
222  double errSq=0.;
223  double residual(-999.);
224 
225  if ( atsos->measType()!=TrackState::unidentified &&
226  (atsos->rio()!=nullptr || atsos->crio()!=nullptr) ) {
227 
228  const MeasurementBase* mesb = tsos->measurementOnTrack();
229 
230  const TrackParameters * trackPars = tsos->trackParameters();
231  std::optional<ResidualPull> resPull = std::nullopt;
232 
233  if ( trackPars ) {
234 
235  if (m_resType == Unbiased) {
236  // Get unbiased state
237  const Trk::TrackParameters * unbiasedTrackPars =
238  m_updator->removeFromState(*trackPars,
239  mesb->localParameters(),
240  mesb->localCovariance()).release();
241  if (unbiasedTrackPars) {
242  trackPars = unbiasedTrackPars;
243  // AlignTSOS desctructor takes care of deleting unbiasedTrackPars
244  atsos->setUnbiasedTrackPars(unbiasedTrackPars);
245  }
246  else
247  ATH_MSG_WARNING("Could not get unbiased track parameters, use normal parameters");
248  }
249 
250  ATH_MSG_DEBUG("Calling ResidualPullCalculator for residual type "
251  <<ResidualPullType(static_cast<AlignResidualType>(m_resType.value()))
252  <<" (AlignResidualType "<<static_cast<AlignResidualType>(m_resType.value())
253  <<" "<<m_resType<<")");
254  ATH_MSG_DEBUG("mesb->localErrorMatrix().covValue(Trk::loc1): "<<mesb->localCovariance()(Trk::loc1,Trk::loc1));
255  resPull = m_pullCalculator->residualPull(mesb, trackPars,
256  ResidualPullType(static_cast<AlignResidualType>(m_resType.value())),
257  atsos->measType());
258  if ( resPull ) {
259  residual = (resPull->residual())[iparam];
260  double pull=(resPull->pull())[iparam];
261  if (pull!=0.) {
262  errSq = residual/pull;
263  errSq *= errSq;
264  }
265  ATH_MSG_DEBUG("residual="<<residual<<", pull="<<pull);
266  ATH_MSG_DEBUG("pos: ("<<mesb->globalPosition().x()<<", "
267  <<mesb->globalPosition().y()<<", "
268  <<mesb->globalPosition().z()<<")");
269  ATH_MSG_DEBUG("residual:"<<residual<<", errSq: "<<errSq<<", err="<<std::sqrt(errSq));
270  }
271  }
272  }
273  else {
274  ATH_MSG_WARNING("Expected measurement for atsos of type "
275  << atsos->dumpType()<<", meas type "<<atsos->measType() );
276  }
277 
278  Residual res(static_cast<AlignResidualType>(m_resType.value()),
279  Measurement, static_cast<ParamDefs>(iparam),
280  residual, errSq);
281  atsos->addResidual(res);
282  dchi2 += res.residualNorm()*res.residualNorm();
283  m_nDoF++;
284  }
285  }
286  return dchi2;
287  }
288 
289  //________________________________________________________________________
291  {
292 
293  const MaterialEffectsOnTrack* meot = dynamic_cast<const MaterialEffectsOnTrack*>(tsos->materialEffectsOnTrack());
294  const TrackParameters* tpar = tsos->trackParameters();
295 
296  m_qOverP = tpar->charge()/tpar->pT()*sin( tpar->parameters()[Trk::theta]);
297 
298  if(!meot) return;
299  const EnergyLoss* energyLoss = meot->energyLoss();
300 
301 
302  if (!dynamic_cast<const CaloEnergy*>(energyLoss)) {
304  }
305 
306  }
307 
308  //________________________________________________________________________
309  const TrackStateOnSurface*
311  {
312  const TrackStateOnSurface* tsos(nullptr);
313 
314  if (atsos->rio() || atsos->crio()) {
315 
316  for (const TrackStateOnSurface* itTsos : *track->trackStateOnSurfaces()) {
317  if (itTsos->type(TrackStateOnSurface::Outlier))
318  continue;
319 
320  const MeasurementBase* mesb = itTsos->measurementOnTrack();
321  const RIO_OnTrack* rio = dynamic_cast<const RIO_OnTrack*>(mesb);
322  const CompetingRIOsOnTrack* crio = dynamic_cast<const CompetingRIOsOnTrack*>(mesb);
323 
324  if (!rio && crio) {
325  rio = &(crio->rioOnTrack(0));
326  }
327  if (!rio) continue;
328  if (rio->identify() == atsos->rio()->identify()) {
329  ATH_MSG_DEBUG("matched TSOS with identifier: "<<rio->identify());
330  tsos=itTsos;
331  break;
332  }
333  }
334  ATH_MSG_DEBUG("done with measurement");
335  }
336  else {
337 
338  const Amg::Vector3D origPosition=atsos->trackParameters()->position();
339  double distance2(1.e27);
340 
341  // loop over track and get closest TSOS
342  for (const TrackStateOnSurface* itTsos : *track->trackStateOnSurfaces()) {
343  if (itTsos->type(TrackStateOnSurface::Outlier))
344  continue;
345  if (!dynamic_cast<const MaterialEffectsOnTrack*>(itTsos->materialEffectsOnTrack())) continue;
346  if (!itTsos->trackParameters()) { ATH_MSG_WARNING("no track parameters!"); continue; }
347  const Amg::Vector3D newPosition=itTsos->trackParameters()->position();
348  ATH_MSG_DEBUG("origPos: "<<origPosition<<", newPos: "<<newPosition);
349  double newdist2=(newPosition - origPosition).mag2();
350  if (newdist2<distance2) {
351  distance2=newdist2;
352  tsos=itTsos;
353  }
354  }
355  ATH_MSG_DEBUG("done with scatterer");
356  }
357  if (!tsos) return nullptr;
358  const Amg::Vector3D addPosition=tsos->trackParameters()->position();
359  if (std::find(m_matchedTSOS.begin(),m_matchedTSOS.end(),tsos)==m_matchedTSOS.end()) {
360  m_matchedTSOS.push_back(tsos);
361  ATH_MSG_DEBUG("added tsos with pos: "<<addPosition);
362  }
363  else {
364  ATH_MSG_WARNING("TSOS already found with position "<<addPosition<<"!");
365  }
366  return tsos;
367  }
368 
369 } // end namespace
Trk::AlignTSOS::clearResiduals
void clearResiduals()
clears vector of residuals
Definition: AlignTSOS.h:101
Trk::ScatteringAngles::deltaPhi
double deltaPhi() const
returns the
Definition: ScatteringAngles.h:82
Trk::TrackStateOnSurface::trackParameters
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
Trk::AlignTSOS::setUnbiasedTrackPars
void setUnbiasedTrackPars(const TrackParameters *trkPars)
setter for unbiased track parameters
Definition: AlignTSOS.h:137
Trk::AlignTSOS::measType
TrackState::MeasurementType measType() const
returns measurement type enum
Definition: AlignTSOS.h:80
EnergyLoss.h
ScatteringAngles.h
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
Trk::TrackState::Pixel
@ Pixel
Definition: TrackStateDefs.h:28
AlignResidualCalculator.h
Trk::HitOnly
@ HitOnly
Definition: AlignResidualType.h:27
TrackParameters.h
Trk::AlignTSOS::rio
const RIO_OnTrack * rio() const
returns RIO_OnTrack or leading RIO of CompetingRIOsOnTrack (assigned by c'tor)
Definition: AlignTSOS.cxx:157
MeasurementBase.h
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
CaloEnergy
class extending the basic Trk::EnergyLoss to describe the measured or parameterised muon energy loss ...
Definition: CaloEnergy.h:28
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
Trk::ParametersBase::charge
double charge() const
Returns the charge.
DataVector::iterator
DataModel_detail::iterator< DataVector > iterator
Standard iterator.
Definition: DataVector.h:841
CompetingRIOsOnTrack.h
Trk::AlignResidualCalculator::accumulateScattering
void accumulateScattering(const TrackStateOnSurface *tsos)
Definition: AlignResidualCalculator.cxx:290
Trk::AlignResidualCalculator::m_matchedTSOS
std::vector< const TrackStateOnSurface * > m_matchedTSOS
Definition: AlignResidualCalculator.h:90
ClusterSeg::residual
@ residual
Definition: ClusterNtuple.h:20
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
Trk::ParamDefs
ParamDefs
Definition: ParamDefs.h:32
Trk::AlignTSOS
Definition: AlignTSOS.h:37
Trk::EnergyLoss::sigmaDeltaE
double sigmaDeltaE() const
returns the symmatric error
Trk::TrackStateOnSurface::dumpType
std::string dumpType() const
returns a string with the expanded type of the object (i.e.
Definition: TrackStateOnSurface.cxx:147
Trk::ScatteringAngles
represents a deflection of the track caused through multiple scattering in material.
Definition: ScatteringAngles.h:26
Trk::TrackStateOnSurface::measurementOnTrack
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
Trk::ResidualPullType
ResidualPull::ResidualType ResidualPullType(AlignResidualType type)
Definition: AlignResidualType.cxx:41
Trk::Unbiased
@ Unbiased
Definition: AlignResidualType.h:28
Trk::MaterialEffectsBase
base class to integrate material effects on Trk::Track in a flexible way.
Definition: MaterialEffectsBase.h:35
Trk::AlignResidualCalculator::m_resType
IntegerProperty m_resType
Definition: AlignResidualCalculator.h:78
Trk::TrackState::unidentified
@ unidentified
Definition: TrackStateDefs.h:27
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
Trk::EnergyDeposit
@ EnergyDeposit
Definition: AlignResidualType.h:35
Trk::TrackStateOnSurface::Outlier
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
Definition: TrackStateOnSurface.h:122
MaterialEffectsOnTrack.h
Trk::AlignResidualCalculator::finalize
virtual StatusCode finalize() override
Definition: AlignResidualCalculator.cxx:61
Trk::MaterialEffectsOnTrack
represents the full description of deflection and e-loss of a track in material.
Definition: MaterialEffectsOnTrack.h:40
Trk::AlignResidualCalculator::m_chi2ForMeasType
double * m_chi2ForMeasType
Definition: AlignResidualCalculator.h:88
Trk::CompetingRIOsOnTrack::rioOnTrack
virtual const RIO_OnTrack & rioOnTrack(unsigned int) const =0
returns the RIO_OnTrack (also known as ROT) objects depending on the integer.
Trk::ScatteringAngles::sigmaDeltaTheta
double sigmaDeltaTheta() const
returns the
Definition: ScatteringAngles.h:100
AlignTrack.h
Trk::Measurement
@ Measurement
Definition: AlignResidualType.h:33
Trk::AlignResidualCalculator::m_qOverP
double m_qOverP
Definition: AlignResidualCalculator.h:83
Trk::Scatterer
@ Scatterer
Definition: AlignResidualType.h:34
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::AlignTrack::firstAtsos
AlignTSOSCollection::const_iterator firstAtsos() const
retrieve iterator pointer to first element in collection
Definition: AlignTrack.h:279
DataModel_detail::iterator
(Non-const) Iterator class for DataVector/DataList.
Definition: DVLIterator.h:184
lumiFormat.i
int i
Definition: lumiFormat.py:85
Trk::TrackStateOnSurface::materialEffectsOnTrack
const MaterialEffectsBase * materialEffectsOnTrack() const
return material effects const overload
AlignTSOS
AlignTSOS is a TSOS with extra variables useful for alignment. It is created using an implementation ...
Trk::theta
@ theta
Definition: ParamDefs.h:66
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
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:11
Trk::CompetingRIOsOnTrack
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
Definition: CompetingRIOsOnTrack.h:64
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:525
Trk::EnergyLoss::deltaE
double deltaE() const
returns the
test_pyathena.parent
parent
Definition: test_pyathena.py:15
python.StandardJetMods.pull
pull
Definition: StandardJetMods.py:305
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::AlignResidualCalculator::initialize
virtual StatusCode initialize() override
Definition: AlignResidualCalculator.cxx:37
Trk::AlignResidualCalculator::~AlignResidualCalculator
virtual ~AlignResidualCalculator()
Definition: AlignResidualCalculator.cxx:31
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
Trk::MeasurementBase::localCovariance
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
Definition: MeasurementBase.h:138
Trk::AlignResidualCalculator::setResidualsOnATSOS
double setResidualsOnATSOS(AlignTSOS *atsos, const TrackStateOnSurface *tsos)
Definition: AlignResidualCalculator.cxx:130
Trk::MeasurementBase
Definition: MeasurementBase.h:58
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ParametersBase::pT
double pT() const
Access method for transverse momentum.
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
Trk::AlignResidualCalculator::m_nDoF
int m_nDoF
Definition: AlignResidualCalculator.h:86
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
RIO_OnTrack.h
Trk::EnergyLoss
This class describes energy loss material effects in the ATLAS tracking EDM.
Definition: EnergyLoss.h:34
Trk::MeasurementBase::globalPosition
virtual const Amg::Vector3D & globalPosition() const =0
Interface method to get the global Position.
Trk::AlignResidualCalculator::m_pullCalculator
ToolHandle< IResidualPullCalculator > m_pullCalculator
Definition: AlignResidualCalculator.h:73
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::AlignTrack
Definition: AlignTrack.h:41
Trk::AlignResidualCalculator::setResiduals
virtual double setResiduals(DataVector< AlignTSOS > *alignTSOSColl, const Track *track) override
sets residuals for AlignTSOS on AlignTrack and returns total chi2
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
Trk::AlignResidualCalculator::m_updator
ToolHandle< IUpdator > m_updator
Definition: AlignResidualCalculator.h:75
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
Trk::AlignResidualCalculator::m_includeScatterers
BooleanProperty m_includeScatterers
Definition: AlignResidualCalculator.h:82
Trk::MaterialEffectsOnTrack::energyLoss
const EnergyLoss * energyLoss() const
returns the energy loss object.
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Trk::AlignTSOS::crio
const CompetingRIOsOnTrack * crio() const
returns CompetingRIOsOnTrack
Definition: AlignTSOS.h:92
Trk::AlignResidualCalculator::m_previousQOverP
double m_previousQOverP
Definition: AlignResidualCalculator.h:84
Trk::RIO_OnTrack::identify
Identifier identify() const
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:152
Trk::AlignResidualCalculator::AlignResidualCalculator
AlignResidualCalculator(const std::string &type, const std::string &name, const IInterface *parent)
Definition: AlignResidualCalculator.cxx:24
Trk::MaterialEffectsOnTrack::scatteringAngles
const ScatteringAngles * scatteringAngles() const
returns the MCS-angles object.
Trk::AlignTSOS::addResidual
void addResidual(const Residual &residual)
pushes back vector of Residuals to alignTSOS residuals
Definition: AlignTSOS.h:95
Trk::ScatteringAngles::sigmaDeltaPhi
double sigmaDeltaPhi() const
returns the
Definition: ScatteringAngles.h:94
AlignResidualType
AlignResidualType is an enum describing the type of residual AlignMesType is an enum describing the t...
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
Trk::Residual
Definition: Tracking/TrkAlignment/TrkAlignEvent/TrkAlignEvent/Residual.h:24
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
Trk::ScatteringAngles::deltaTheta
double deltaTheta() const
returns the
Definition: ScatteringAngles.h:88
Amg::distance2
float distance2(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the squared distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:48
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
AthAlgTool
Definition: AthAlgTool.h:26
Trk::loc1
@ loc1
Definition: ParamDefs.h:34
mag2
Scalar mag2() const
mag2 method - forward to squaredNorm()
Definition: AmgMatrixBasePlugin.h:31
Trk::AlignResidualCalculator::getMatchingTSOS
const TrackStateOnSurface * getMatchingTSOS(const AlignTSOS *atsos, const Track *track)
Definition: AlignResidualCalculator.cxx:310
Trk::TrackState::NumberOfMeasurementTypes
@ NumberOfMeasurementTypes
Definition: TrackStateDefs.h:43
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
Trk::AlignTrack::lastAtsos
AlignTSOSCollection::const_iterator lastAtsos() const
returns iterator pointer to last element in collection
Definition: AlignTrack.h:280
CaloEnergy.h