|
ATLAS Offline Software
|
Go to the documentation of this file.
15 #include "AthLinks/ElementLink.h"
16 #include "GaudiKernel/ConcurrencyFlags.h"
28 declareInterface<MuonCombinedDebuggerTool>(
this);
32 ATH_MSG_INFO(
"initialize " <<
name() <<
" for debugging purposes of the muon reconstruction");
39 <<
", to run this tool. Which should never happen as the results will be a total desaster");
40 return StatusCode::FAILURE;
43 return StatusCode::SUCCESS;
48 ATH_MSG_WARNING(
"bookBranches() must be called once only! No tree booked!");
162 unsigned int imu = 0;
163 const EventContext& ctx = Gaudi::Hive::currentContext();
164 for (
const auto* muonCandidate : muonCandidates) {
165 bool hasExtr = muonCandidate->extrapolatedTrack();
167 for (
const auto* inDetCandidate : inDetCandidates) {
169 double outerMatchChi2 =
m_matchQuality->outerMatchChi2(*inDetCandidate->indetTrackParticle().track(),
170 muonCandidate->muonSpectrometerTrack(), ctx);
172 m_matchQuality->outerMatchDOF(*inDetCandidate->indetTrackParticle().track(), muonCandidate->muonSpectrometerTrack());
173 double outerMatchProb =
m_matchQuality->outerMatchProbability(*inDetCandidate->indetTrackParticle().track(),
174 muonCandidate->muonSpectrometerTrack(), ctx);
175 double innerMatchChi2 = -1;
176 int innerMatchDoF = -1;
177 double innerMatchProb = -1;
179 innerMatchChi2 =
m_matchQuality->innerMatchChi2(*inDetCandidate->indetTrackParticle().track(),
180 *muonCandidate->extrapolatedTrack(), ctx);
182 m_matchQuality->innerMatchDOF(*inDetCandidate->indetTrackParticle().track(), *muonCandidate->extrapolatedTrack());
183 innerMatchProb =
m_matchQuality->innerMatchProbability(*inDetCandidate->indetTrackParticle().track(),
184 *muonCandidate->extrapolatedTrack(), ctx);
234 for (
const auto* inDetCandidate : inDetCandidates) {
236 m_idtrack_sur_x.push_back(inDetCandidate->indetTrackParticle().track()->perigeeParameters()->associatedSurface().center().x());
237 m_idtrack_sur_y.push_back(inDetCandidate->indetTrackParticle().track()->perigeeParameters()->associatedSurface().center().y());
238 m_idtrack_sur_z.push_back(inDetCandidate->indetTrackParticle().track()->perigeeParameters()->associatedSurface().center().z());
239 m_idtrack_d0.push_back(inDetCandidate->indetTrackParticle().track()->perigeeParameters()->parameters()[
Trk::d0]);
240 m_idtrack_z0.push_back(inDetCandidate->indetTrackParticle().track()->perigeeParameters()->parameters()[
Trk::z0]);
241 m_idtrack_phi0.push_back(inDetCandidate->indetTrackParticle().track()->perigeeParameters()->parameters()[
Trk::phi0]);
244 const AmgSymMatrix(5)* covid = inDetCandidate->indetTrackParticle().track()->perigeeParameters()->covariance();
261 truthParticleLinkAcc(
"truthParticleLink");
262 if (truthParticleLinkAcc.
isAvailable(inDetCandidate->indetTrackParticle())) {
264 truthParticleLinkAcc(inDetCandidate->indetTrackParticle());
368 for (
const auto* muonCandidate : muonCandidates) {
369 bool hasExtr = muonCandidate->extrapolatedTrack();
370 const Trk::TrackParameters* muonPars = hasExtr ? muonCandidate->extrapolatedTrack()->perigeeParameters()
371 : muonCandidate->muonSpectrometerTrack().perigeeParameters();
378 m_mstrack_sur_x.push_back(muonCandidate->muonSpectrometerTrack().perigeeParameters()->associatedSurface().center().x());
379 m_mstrack_sur_y.push_back(muonCandidate->muonSpectrometerTrack().perigeeParameters()->associatedSurface().center().y());
380 m_mstrack_sur_z.push_back(muonCandidate->muonSpectrometerTrack().perigeeParameters()->associatedSurface().center().z());
381 m_mstrack_d0.push_back(muonCandidate->muonSpectrometerTrack().perigeeParameters()->parameters()[
Trk::d0]);
382 m_mstrack_z0.push_back(muonCandidate->muonSpectrometerTrack().perigeeParameters()->parameters()[
Trk::z0]);
386 const AmgSymMatrix(5)*
cov = muonCandidate->muonSpectrometerTrack().perigeeParameters()->covariance();
438 truthParticleLinkAcc(
"truthParticleLink");
439 if (truthParticleLinkAcc.
isAvailable(**muonCandidate->muonSpectrometerTrackLink())) {
441 truthParticleLinkAcc(**muonCandidate->muonSpectrometerTrackLink());
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
Helper class to provide constant type-safe access to aux data.
const Amg::Vector3D & center() const
Returns the center position of the Surface.
bool isValid() const
Test to see if the link can be dereferenced.
#define AmgSymMatrix(dim)
::StatusCode StatusCode
StatusCode definition for legacy code.
constexpr int UNDEFINED_ID
ElementLink implementation for ROOT usage.
#define ATH_MSG_WARNING(x)
The MuonTagToSegMap is an auxillary construct that links the MuonSegments associated with a combined ...
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
Helper class to provide constant type-safe access to aux data.
size_type size() const noexcept
Returns the number of elements in the collection.