 |
ATLAS Offline Software
|
#include <CombinedMuonTrackFitter.h>
|
std::unique_ptr< Trk::Track > | fit (const EventContext &ctx, const Trk::MeasurementSet &measurementSet, const Trk::TrackParameters &perigeeStartValue, const Trk::RunOutlierRemoval runOutlier, const Trk::ParticleHypothesis particleHypothesis) const |
| fit a set of MeasurementBase objects with starting value for perigeeParameters More...
|
|
std::unique_ptr< Trk::Track > | fit (const EventContext &ctx, const Trk::Track &indetTrack, Trk::Track &extrapolatedTrack, const Trk::RunOutlierRemoval runOutlier, const Trk::ParticleHypothesis particleHypothesis) const |
| combined muon fit More...
|
|
double | normalizedChi2 (const Trk::Track &track) const |
|
bool | checkTrack (std::string_view txt, const Trk::Track *newTrack) const |
|
unsigned int | countAEOTs (const Trk::Track &track, const std::string &txt) const |
|
bool | loadMagneticField (const EventContext &ctx, MagField::AtlasFieldCache &field_cache) const |
|
|
ToolHandle< Rec::IMuidCaloTrackStateOnSurface > | m_caloTSOS |
|
ToolHandle< Muon::IMuonErrorOptimisationTool > | m_muonErrorOptimizer |
|
PublicToolHandle< Muon::MuonEDMPrinterTool > | m_printer |
|
ToolHandle< Rec::IMuonTrackQuery > | m_trackQuery |
|
ToolHandle< Trk::ITrackSummaryTool > | m_trackSummary |
|
ToolHandle< Trk::ITrkMaterialProviderTool > | m_materialUpdator |
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
Gaudi::Property< double > | m_badFitChi2 {this, "BadFitChi2", 2.5} |
|
Gaudi::Property< double > | m_zECToroid {this, "zECToroid", 10. * Gaudi::Units::meter} |
|
Gaudi::Property< bool > | m_updateWithCaloTG {this, "UpdateWithCaloTG", false} |
|
Gaudi::Property< bool > | m_useCaloTG {this, "UseCaloTG", false} |
|
std::unique_ptr< const Trk::Volume > | m_indetVolume {nullptr} |
|
std::unique_ptr< const Trk::Volume > | m_calorimeterVolume {nullptr} |
|
std::unique_ptr< MessageHelper > | m_messageHelper {std::make_unique<MessageHelper>(*this, 50)} |
|
Definition at line 43 of file CombinedMuonTrackFitter.h.
◆ ~CombinedMuonTrackFitter()
Rec::CombinedMuonTrackFitter::~CombinedMuonTrackFitter |
( |
| ) |
|
|
virtualdefault |
◆ checkTrack()
bool Rec::CombinedMuonTrackFitter::checkTrack |
( |
std::string_view |
txt, |
|
|
const Trk::Track * |
newTrack |
|
) |
| const |
|
protected |
Check that the combined track contains enough MS measurements
Definition at line 588 of file CombinedMuonTrackFitter.cxx.
589 if (!newTrack)
return false;
595 if ((*it)->position().dot((*it)->momentum()) < 0) {
597 ATH_MSG_DEBUG(txt <<
" "<< __FILE__<<
":"<<__LINE__<<
" ALARM position " << (*it)->position() <<
" direction " << (*it)->momentum().unit());
599 ATH_MSG_DEBUG(txt <<
" "<< __FILE__<<
":"<<__LINE__<<
" OK position " << (*it)->position() <<
" direction " << (*it)->momentum().unit());
603 if (!
par->covariance()) {
continue; }
605 ATH_MSG_DEBUG(txt<<
" "<<__FILE__<<
":"<<__LINE__<<
"covariance matrix has negative diagonal element, killing track "
610 unsigned int numberMS{0}, numberMSPrec{0};
614 for (;
r != rEnd; ++
r) {
616 if (tsos->trackParameters() &&
m_calorimeterVolume->inside(tsos->trackParameters()->position()))
break;
618 if (tsos->measurementOnTrack()) {
625 ATH_MSG_VERBOSE( txt<<
" "<<__FILE__<<
":"<<__LINE__<<
" "<< numberMS <<
"/"<< numberMSPrec<<
" fitted MS measurements ");
627 if (numberMS < 5 || numberMSPrec < 3) {
◆ countAEOTs()
unsigned int Rec::CombinedMuonTrackFitter::countAEOTs |
( |
const Trk::Track & |
track, |
|
|
const std::string & |
txt |
|
) |
| const |
|
protected |
Definition at line 634 of file CombinedMuonTrackFitter.cxx.
636 unsigned int naeots = 0;
643 for (
const auto*
m : *trackTSOS) {
644 if (
m &&
m->alignmentEffectsOnTrack()) naeots++;
652 int tsos{0}, nperigee{0};
661 if (
it->trackParameters()) {
663 <<
" r " <<
it->trackParameters()->position().perp() <<
" z "
664 <<
it->trackParameters()->position().z() <<
" momentum "
665 <<
it->trackParameters()->momentum().mag());
666 }
else if (
it->measurementOnTrack()) {
668 <<
" r " <<
it->measurementOnTrack()->associatedSurface().center().perp() <<
" z "
669 <<
it->measurementOnTrack()->associatedSurface().center().z());
670 }
else if (
it->materialEffectsOnTrack()) {
673 <<
it->materialEffectsOnTrack()->associatedSurface().globalReferencePoint().perp()
674 <<
" z " <<
it->materialEffectsOnTrack()->associatedSurface().globalReferencePoint().z());
◆ finalize()
StatusCode Rec::CombinedMuonTrackFitter::finalize |
( |
| ) |
|
|
overridevirtual |
◆ fit() [1/3]
fit a set of MeasurementBase objects with starting value for perigeeParameters
Definition at line 317 of file CombinedMuonTrackFitter.cxx.
324 std::stringstream
ss;
325 ss << particleHypothesis;
347 std::unique_ptr<Trk::TrackParameters> perigee = perigeeStartValue.
uniqueClone();
348 std::unique_ptr<Trk::PerigeeSurface> perigeeSurface;
352 perigeeSurface = std::make_unique<Trk::PerigeeSurface>(origin);
354 perigee = std::make_unique<Trk::Perigee>(perigeeStartValue.
position(), perigeeStartValue.
momentum(), perigeeStartValue.
charge(),
359 std::unique_ptr<Trk::Track> fittedTrack(
fitter->
fit(ctx, measurementSet, *perigee,
false, particleHypothesis));
361 if (!
checkTrack(
"fitInterface2", fittedTrack.get())) {
return nullptr; }
372 ATH_MSG_VERBOSE(
" perform spectrometer error optimization after cleaning ");
373 std::unique_ptr<Trk::Track> optimizedTrack =
m_muonErrorOptimizer->optimiseErrors(*fittedTrack, ctx);
374 if (
checkTrack(
"fitInterface2Opt", optimizedTrack.get())) {
375 fittedTrack.swap(optimizedTrack);
385 ATH_MSG_VERBOSE(__FILE__<<
":"<<__LINE__<<
" perform track cleaning... ");
389 std::unique_ptr<Trk::Track> cleanTrack =
m_cleaner->clean(*fittedTrack, ctx);
393 if (!
checkTrack(
"fitInterface2Cleaner", cleanTrack.get())) { cleanTrack.reset(); }
401 ATH_MSG_DEBUG(
" keep original extension track despite cleaner veto ");
403 }
else if (!(*cleanTrack->
perigeeParameters() == *fittedTrack->perigeeParameters())) {
405 if (chi2After <
m_badFitChi2 || chi2After < chi2Before) {
407 fittedTrack.swap(cleanTrack);
◆ fit() [2/3]
combined muon fit
Definition at line 421 of file CombinedMuonTrackFitter.cxx.
427 std::stringstream
ss;
428 ss << particleHypothesis;
460 <<
m_printer->print(indetTrack) << std::endl
463 std::unique_ptr<Trk::Track> fittedTrack(
fitter->
fit(ctx, indetTrack, extrapolatedTrack,
false, particleHypothesis));
465 if (!fittedTrack)
return nullptr;
472 ATH_MSG_VERBOSE(
" perform spectrometer error optimization after cleaning ");
473 std::unique_ptr<Trk::Track> optimizedTrack =
m_muonErrorOptimizer->optimiseErrors(*fittedTrack, ctx);
474 if (
checkTrack(
"Error opt", optimizedTrack.get()) &&
476 fittedTrack.swap(optimizedTrack);
485 ATH_MSG_VERBOSE(__FILE__<<
":"<<__LINE__<<
" perform track cleaning... " <<
m_printer->print(*fittedTrack) << std::endl
486 <<
m_printer->printStations(*fittedTrack));
489 std::unique_ptr<Trk::Track> cleanTrack =
m_cleaner->clean(*fittedTrack, ctx);
498 ATH_MSG_DEBUG(
" keep original combined track despite cleaner veto ");
500 }
else if (!(*cleanTrack->
perigeeParameters() == *fittedTrack->perigeeParameters())) {
502 if (chi2After <
m_badFitChi2 || chi2After < chi2Before) {
504 fittedTrack.swap(cleanTrack);
◆ fit() [3/3]
Definition at line 148 of file CombinedMuonTrackFitter.cxx.
157 std::stringstream
ss;
158 ss << particleHypothesis;
182 std::unique_ptr<Trk::Track> fittedTrack = std::make_unique<Trk::Track>(
track);
183 if (isCombined && particleHypothesis ==
Trk::muon && !
m_trackQuery->isCaloAssociated(*fittedTrack, ctx)) {
185 ATH_MSG_VERBOSE(
"fit:: about to add the TSOS's describing calorimeter association to a combined muon" );
187 auto combinedTSOS = std::make_unique<Trk::TrackStates>();
190 bool caloAssociated =
false;
194 ATH_MSG_VERBOSE(
"Updating Calorimeter TSOS in Muon Combined (re)Fit ...");
196 caloAssociated =
true;
200 if (caloAssociated) {
201 combinedTSOS->push_back(in_tsos->clone());
202 }
else if ((in_tsos->measurementOnTrack() &&
m_indetVolume->inside(in_tsos->measurementOnTrack()->globalPosition())) ||
203 (in_tsos->trackParameters() &&
m_indetVolume->inside(in_tsos->trackParameters()->position()))) {
204 combinedTSOS->push_back(in_tsos->clone());
208 combinedTSOS->push_back(std::move(tsos));
211 combinedTSOS->push_back(in_tsos->clone());
213 if (tsos) combinedTSOS->push_back(std::move(tsos));
216 if (tsos) combinedTSOS->push_back(std::move(tsos));
218 if (tsos) combinedTSOS->push_back(std::move(tsos));
219 combinedTSOS->push_back(in_tsos->clone());
222 caloAssociated =
true;
226 std::unique_ptr<Trk::Track>
combinedTrack = std::make_unique<Trk::Track>(fittedTrack->
info(), std::move(combinedTSOS),
nullptr);
234 ATH_MSG_VERBOSE(
"Updating Calorimeter TSOS in Muon Combined (re)Fit ...");
242 ATH_MSG_VERBOSE(
"Updating Calorimeter TSOS in Muon Standalone Fit ...");
247 fittedTrack =
fitter->
fit(ctx, *fittedTrack,
false, particleHypothesis);
251 if (!fittedTrack)
return nullptr;
254 if (!
checkTrack(
"fitInterface1", fittedTrack.get()))
return nullptr;
266 ATH_MSG_VERBOSE(
" perform spectrometer error optimization after cleaning ");
267 std::unique_ptr<Trk::Track> optimizedTrack =
m_muonErrorOptimizer->optimiseErrors(*fittedTrack, ctx);
268 if (
checkTrack(
"fitInterface1Opt", optimizedTrack.get()) && chi2BeforeOptimizer >
normalizedChi2(*optimizedTrack)) {
269 fittedTrack.swap(optimizedTrack);
278 ATH_MSG_VERBOSE(__FILE__<<
":"<<__LINE__<<
" perform track cleaning... " <<
m_printer->print(*fittedTrack) << std::endl
279 <<
m_printer->printStations(*fittedTrack));
283 std::unique_ptr<Trk::Track> cleanTrack =
m_cleaner->clean(*fittedTrack, ctx);
287 if (!
checkTrack(
"fitInterface1Cleaner", cleanTrack.get())) { cleanTrack.reset(); }
295 ATH_MSG_DEBUG(
" keep original standalone track despite cleaner veto ");
300 if (chi2After <
m_badFitChi2 || chi2After < chi2Before) {
302 fittedTrack.swap(cleanTrack);
311 <<
m_printer->printStations(*fittedTrack));
◆ initialize()
StatusCode Rec::CombinedMuonTrackFitter::initialize |
( |
| ) |
|
|
overridevirtual |
Reimplemented in Rec::CombinedMuonTrackBuilder.
Definition at line 50 of file CombinedMuonTrackFitter.cxx.
59 m_messageHelper->setMessage(0,
"combinedFit:: missing MeasuredPerigee for indet track");
60 m_messageHelper->setMessage(1,
"combinedFit:: fail with MS removed by cleaner");
61 m_messageHelper->setMessage(2,
"combinedFit:: fail with perigee outside indet");
62 m_messageHelper->setMessage(3,
"combinedFit:: fail with missing caloEnergy");
63 m_messageHelper->setMessage(4,
"combinedFit:: final combined track lost, this should not happen");
64 m_messageHelper->setMessage(5,
"indetExtension:: reject with insufficient MS measurements");
65 m_messageHelper->setMessage(6,
"standaloneFit:: input vertex fails dynamic_cast");
66 m_messageHelper->setMessage(7,
"standaloneFit:: missing MeasuredPerigee for spectrometer track");
67 m_messageHelper->setMessage(8,
"standaloneFit:: missing TrackParameters on prefit");
68 m_messageHelper->setMessage(9,
"standaloneFit:: prefit fails parameter extrapolation to calo");
69 m_messageHelper->setMessage(10,
"standaloneFit:: extrapolated track missing TrackParameters at calo scatterer");
70 m_messageHelper->setMessage(11,
"standaloneFit:: final track lost, this should not happen");
71 m_messageHelper->setMessage(12,
"standaloneFit:: fail as calo incorrectly described");
72 m_messageHelper->setMessage(13,
"standaloneRefit:: fail track as no TSOS with type CaloDeposit");
74 m_messageHelper->setMessage(15,
"standaloneRefit:: no inner parameters");
75 m_messageHelper->setMessage(16,
"standaloneRefit:: innerScattering dynamic_cast failed");
76 m_messageHelper->setMessage(17,
"standaloneRefit:: no TSOS of type CaloDeposit found");
77 m_messageHelper->setMessage(18,
"standaloneRefit:: no inner scattering TSOS found");
78 m_messageHelper->setMessage(19,
"standaloneRefit:: no middle material");
79 m_messageHelper->setMessage(20,
"standaloneRefit:: no middle parameters");
80 m_messageHelper->setMessage(21,
"standaloneRefit:: no CaloDeposit TSOS found");
82 m_messageHelper->setMessage(23,
"standaloneRefit:: no outer parameters");
83 m_messageHelper->setMessage(24,
"standaloneRefit:: outerScattering dynamic_cast failed");
84 m_messageHelper->setMessage(25,
"standaloneRefit:: no outerScattering or CaloDeposit TSOS found");
85 m_messageHelper->setMessage(26,
"standaloneRefit:: failed propagation to innerTSOS");
86 m_messageHelper->setMessage(27,
"standaloneRefit:: failed propagation to middleTSOS");
87 m_messageHelper->setMessage(28,
"standaloneRefit:: fail as calo incorrectly described");
88 m_messageHelper->setMessage(29,
"fit:: particle hypothesis must be 0 or 2 (nonInteracting or muon). Requested: ");
89 m_messageHelper->setMessage(30,
"fit:: about to add the TSOS's describing calorimeter association to a combined muon");
90 m_messageHelper->setMessage(31,
"fit:: particle hypothesis must be 0 or 2 (nonInteracting or muon). Requested: ");
91 m_messageHelper->setMessage(32,
"fit:: particle hypothesis must be 0 or 2 (nonInteracting or muon). Requested: ");
92 m_messageHelper->setMessage(33,
"fit:: combined muon track is missing the TSOS's describing calorimeter association");
93 m_messageHelper->setMessage(34,
"appendSelectedTSOS:: skip duplicate measurement ");
94 m_messageHelper->setMessage(35,
"caloEnergyParameters:: muonTrack without caloEnergy association");
95 m_messageHelper->setMessage(36,
"caloEnergyParameters:: combinedTrack without caloEnergy association");
96 m_messageHelper->setMessage(37,
"createMuonTrack:: should never happen: FSR caloEnergy delete");
97 m_messageHelper->setMessage(38,
"createSpectrometerTSOS:: missing MeasuredPerigee for spectrometer track");
98 m_messageHelper->setMessage(39,
"createSpectrometerTSOS:: skip unrecognized TSOS without TrackParameters. Type: ");
99 m_messageHelper->setMessage(40,
"createSpectrometerTSOS:: skip duplicate measurement on same Surface. Type: ");
100 m_messageHelper->setMessage(41,
"entrancePerigee:: missing TrackingGeometrySvc - no perigee will be added at MS entrance");
101 m_messageHelper->setMessage(42,
"extrapolatedParameters:: missing MeasuredPerigee for spectrometer track");
102 m_messageHelper->setMessage(43,
"extrapolatedParameters:: missing spectrometer parameters on spectrometer track");
103 m_messageHelper->setMessage(44,
"final track lost, this should not happen");
104 m_messageHelper->setMessage(45,
"momentumUpdate:: update failed, keeping original value");
105 m_messageHelper->setMessage(46,
"reallocateMaterial:: null perigeeStartValue");
107 m_messageHelper->setMessage(48,
"standaloneFit:: insufficient measurements on input spectrometer track");
108 m_messageHelper->setMessage(49,
"standaloneFit:: inconsistent TSOS on input spectrometer track");
136 return StatusCode::SUCCESS;
◆ loadMagneticField()
◆ normalizedChi2()
double Rec::CombinedMuonTrackFitter::normalizedChi2 |
( |
const Trk::Track & |
track | ) |
const |
|
protected |
◆ optimizeErrors()
bool Rec::CombinedMuonTrackFitter::optimizeErrors |
( |
const EventContext & |
ctx, |
|
|
Trk::Track & |
track |
|
) |
| const |
|
private |
Definition at line 540 of file CombinedMuonTrackFitter.cxx.
545 muonSummary =
summary->muonTrackSummary();
549 muonSummary =
summary->muonTrackSummary();
552 if (!muonSummary)
return false;
555 unsigned int optimize{0},nBarrel{0}, nEndcap{0}, nSmall{0}, nLarge{0};
560 if (!isMdt)
continue;
579 if (nBarrel > 0 && nEndcap > 0) { optimize += 10; }
581 if (nSmall > 0 && nLarge > 0) { optimize += 100; }
583 if (optimize > 0) {
ATH_MSG_DEBUG(
" OptimizeErrors with value " << optimize); }
◆ m_allowCleanerVeto
Gaudi::Property<bool> Rec::CombinedMuonTrackFitter::m_allowCleanerVeto {this, "AllowCleanerVeto", true} |
|
private |
◆ m_badFitChi2
Gaudi::Property<double> Rec::CombinedMuonTrackFitter::m_badFitChi2 {this, "BadFitChi2", 2.5} |
|
protected |
◆ m_calorimeterVolume
std::unique_ptr<const Trk::Volume> Rec::CombinedMuonTrackFitter::m_calorimeterVolume {nullptr} |
|
protected |
◆ m_caloTSOS
◆ m_cleaner
◆ m_countCombinedCleanerVeto
std::atomic_uint Rec::CombinedMuonTrackFitter::m_countCombinedCleanerVeto {0} |
|
mutableprivate |
◆ m_countExtensionCleanerVeto
std::atomic_uint Rec::CombinedMuonTrackFitter::m_countExtensionCleanerVeto {0} |
|
mutableprivate |
◆ m_countStandaloneCleanerVeto
std::atomic_uint Rec::CombinedMuonTrackFitter::m_countStandaloneCleanerVeto {0} |
|
mutableprivate |
◆ m_fieldCacheCondObjInputKey
Initial value:{this, "AtlasFieldCacheCondObj", "fieldCondObj",
"Name of the Magnetic Field conditions object key"}
Definition at line 133 of file CombinedMuonTrackFitter.h.
◆ m_fitter
◆ m_fitterSL
◆ m_idHelperSvc
◆ m_indetVolume
std::unique_ptr<const Trk::Volume> Rec::CombinedMuonTrackFitter::m_indetVolume {nullptr} |
|
protected |
◆ m_materialUpdator
◆ m_maxWarnings
Gaudi::Property<unsigned> Rec::CombinedMuonTrackFitter::m_maxWarnings |
|
private |
Initial value:{this, "MaxNumberOfWarnings", 10,
"Maximum number of permitted WARNING messages per message type."}
Definition at line 140 of file CombinedMuonTrackFitter.h.
◆ m_messageHelper
◆ m_muonErrorOptimizer
◆ m_printer
◆ m_trackingVolumesSvc
◆ m_trackQuery
◆ m_trackSummary
Initial value:{
this,
"TrackSummaryTool",
"Trk::TrackSummaryTool/MuidTrackSummaryTool",
}
Definition at line 119 of file CombinedMuonTrackFitter.h.
◆ m_updateWithCaloTG
Gaudi::Property<bool> Rec::CombinedMuonTrackFitter::m_updateWithCaloTG {this, "UpdateWithCaloTG", false} |
|
protected |
◆ m_useCaloTG
Gaudi::Property<bool> Rec::CombinedMuonTrackFitter::m_useCaloTG {this, "UseCaloTG", false} |
|
protected |
◆ m_zECToroid
Gaudi::Property<double> Rec::CombinedMuonTrackFitter::m_zECToroid {this, "zECToroid", 10. * Gaudi::Units::meter} |
|
protected |
The documentation for this class was generated from the following files:
const ShapeFitter * fitter
@ CaloDeposit
This TSOS contains a CaloEnergy object.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
Const iterator class for DataVector/DataList.
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
bool hasPositiveDiagElems(const AmgSymMatrix(N) &mat)
Returns true if all diagonal elements of the covariance matrix are finite aka sane in the above defin...
double charge() const
Returns the charge.
const_reverse_iterator rend() const noexcept
Return a const_reverse_iterator pointing at the beginning of the collection.
const Amg::Vector3D & position() const
Access method for the position.
ServiceHandle< Trk::ITrackingVolumesSvc > m_trackingVolumesSvc
std::unique_ptr< MessageHelper > m_messageHelper
std::unique_ptr< ParametersBase< DIM, T > > uniqueClone() const
clone method for polymorphic deep copy returning unique_ptr; it is not overriden, but uses the existi...
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
@ BEE
BEE measurement point.
constexpr virtual SurfaceType surfaceType() const override=0
Returns the Surface Type enum for the surface used to define the derived class.
Gaudi::Property< bool > m_updateWithCaloTG
@ MuonSpectrometerEntryLayer
Tracking Volume which defines the entrance surfaces of the MS.
Gaudi::Property< double > m_badFitChi2
ToolHandle< Muon::IMuonErrorOptimisationTool > m_muonErrorOptimizer
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool fit(const LArSamples::AbsShape &data, const AbsShape &reference, double &k, double &deltaT, double &chi2, const ScaledErrorData *sed=0) const
void combinedTrack(long int ICH, double *pv0, double *covi, double BMAG, double *par, double *covo)
structure to hold information per chamber in the muon system
const std::vector< ChamberHitSummary > & chamberHitSummary() const
access to the vector of chamber hit summaries on the track
@ StraightTrack
A straight track.
bool checkTrack(std::string_view txt, const Trk::Track *newTrack) const
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
bool loadMagneticField(const EventContext &ctx, MagField::AtlasFieldCache &field_cache) const
ToolHandle< Trk::ITrackSummaryTool > m_trackSummary
std::unique_ptr< const Trk::Volume > m_indetVolume
std::atomic_uint m_countExtensionCleanerVeto
ToolHandle< Trk::ITrackFitter > m_fitterSL
double chi2(TH1 *h0, TH1 *h1)
std::unique_ptr< const Trk::Volume > m_calorimeterVolume
ToolHandle< Rec::IMuonTrackQuery > m_trackQuery
Detailed track summary for the muon system Give access to hit counts per chamber.
ToolHandle< Rec::IMuidCaloTrackStateOnSurface > m_caloTSOS
const_reverse_iterator rbegin() const noexcept
Return a const_reverse_iterator pointing past the end of the collection.
bool solenoidOn() const
status of the magnets
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
@ CalorimeterEntryLayer
Tracking Volume which defines the entrance srufaces of the calorimeter.
Gaudi::Property< bool > m_allowCleanerVeto
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
const Perigee * perigeeParameters() const
return Perigee.
represents the track state (measurement, material, fit parameters and quality) at a surface.
A summary of the information contained by a track.
std::reverse_iterator< const_iterator > const_reverse_iterator
Standard const_reverse_iterator.
bool optimizeErrors(const EventContext &ctx, Trk::Track &track) const
std::atomic_uint m_countCombinedCleanerVeto
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
const Amg::Vector3D & momentum() const
Access method for the momentum.
Gaudi::Property< double > m_zECToroid
ToolHandle< Trk::ITrackFitter > m_fitter
std::atomic_uint m_countStandaloneCleanerVeto
Identifier identify() const
return the identifier -extends MeasurementBase
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
ChIndex
enum to classify the different chamber layers in the muon spectrometer
ToolHandle< Trk::ITrkMaterialProviderTool > m_materialUpdator
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
double normalizedChi2(const Trk::Track &track) const
size_type size() const noexcept
Returns the number of elements in the collection.
bool trackProperties(const TrackProperties &property) const
Access methods for track properties.
unsigned int countAEOTs(const Trk::Track &track, const std::string &txt) const
Gaudi::Property< bool > m_useCaloTG
bool isSmall(const ChIndex index)
Returns true if the chamber index is in a small sector.
Gaudi::Property< unsigned > m_maxWarnings
ToolHandle< Muon::IMuonTrackCleaner > m_cleaner