![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <OutwardsCombinedMuonTrackBuilder.h>
|
| OutwardsCombinedMuonTrackBuilder (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual | ~OutwardsCombinedMuonTrackBuilder ()=default |
|
virtual StatusCode | initialize () override |
|
virtual std::unique_ptr< Trk::Track > | combinedFit (const EventContext &ctx, const Trk::Track &indetTrack, const Trk::Track &extrapolatedTrack, const Trk::Track &spectrometerTrack) const override |
| ICombinedMuonTrackBuilder interface: build and fit combined ID/Calo/MS track. More...
|
|
virtual std::unique_ptr< Trk::Track > | indetExtension (const EventContext &ctx, const Trk::Track &indetTrack, const Trk::MeasurementSet &spectrometerMeas, std::unique_ptr< Trk::TrackParameters > innerParameters, std::unique_ptr< Trk::TrackParameters > middleParameters, std::unique_ptr< Trk::TrackParameters > outerParameters) const override |
| ICombinedMuonTrackBuilder interface: build and fit indet track extended to include MS Measurement set. More...
|
|
virtual std::unique_ptr< Trk::Track > | standaloneFit (const EventContext &ctx, const Trk::Track &spectrometerTrack, const Amg::Vector3D &bs, const Trk::Vertex *vertex) const override |
| ICombinedMuonTrackBuilder interface: propagate to perigee adding calo energy-loss and material to MS track. More...
|
|
virtual std::unique_ptr< Trk::Track > | standaloneRefit (const EventContext &ctx, const Trk::Track &combinedTrack, const Amg::Vector3D &bs) const override |
| ICombinedMuonTrackBuilder interface: refit a track removing any indet measurements with optional addition of pseudoMeasurements according to original extrapolation. More...
|
|
std::unique_ptr< Trk::Track > | fit (const EventContext &ctx, const Trk::Track &track, const Trk::RunOutlierRemoval runOutlier, const Trk::ParticleHypothesis particleHypothesis) const |
| refit a track More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
ToolHandle< Muon::IMuonTrackCleaner > | m_cleaner |
|
ToolHandle< Trk::ITrackFitter > | m_fitter |
|
ToolHandle< Trk::ITrackSummaryTool > | m_trackSummary |
|
ToolHandle< Muon::IMuonHoleRecoveryTool > | m_muonHoleRecovery |
|
ToolHandle< Muon::IMuonErrorOptimisationTool > | m_muonErrorOptimizer |
|
ServiceHandle< Trk::ITrackingVolumesSvc > | m_trackingVolumesSvc {this, "TrackingVolumesSvc", "TrackingVolumesSvc/TrackingVolumesSvc"} |
|
std::unique_ptr< Trk::Volume > | m_calorimeterVolume |
|
std::unique_ptr< Trk::Volume > | m_indetVolume |
|
Gaudi::Property< bool > | m_allowCleanerVeto {this, "AllowCleanerVeto", true} |
|
Gaudi::Property< bool > | m_cleanCombined {this, "CleanCombined", true} |
|
Gaudi::Property< bool > | m_recoverCombined {this, "RecoverCombined", false } |
|
Gaudi::Property< double > | m_IDMS_xySigma {this,"IDMS_xySigma", 1.* Gaudi::Units::mm} |
|
Gaudi::Property< double > | m_IDMS_rzSigma {this,"IDMS_rzSigma", 1.* Gaudi::Units::mm} |
|
Gaudi::Property< bool > | m_addIDMSerrors {this, "AddIDMSerrors", true} |
|
Gaudi::Property< double > | m_badFitChi2 {this, "BadFitChi2", 2.5} |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
◆ StoreGateSvc_t
◆ OutwardsCombinedMuonTrackBuilder()
Rec::OutwardsCombinedMuonTrackBuilder::OutwardsCombinedMuonTrackBuilder |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~OutwardsCombinedMuonTrackBuilder()
virtual Rec::OutwardsCombinedMuonTrackBuilder::~OutwardsCombinedMuonTrackBuilder |
( |
| ) |
|
|
virtualdefault |
◆ addIDMSerrors()
Definition at line 471 of file OutwardsCombinedMuonTrackBuilder.cxx.
480 ATH_MSG_VERBOSE(
" OutwardsCombinedMuonTrackBuilder addIDMSerrors to track ");
487 int itsosCaloFirst = -1;
488 int itsosCaloLast = -1;
492 for (;
t !=
track.trackStateOnSurfaces()->
end(); ++
t) {
495 if ((**t).trackParameters()) {
497 if (
m_indetVolume->inside((**t).trackParameters()->position())) {
continue; }
499 if ((**t).trackParameters()->position().mag() < 1000) {
continue; }
504 double X0 = (**t).materialEffectsOnTrack()->thicknessInX0();
506 if (
X0 < 10)
continue;
508 if (itsosCaloFirst != -1) {
509 itsosCaloLast = itsos;
510 positionCaloLast = (**t).trackParameters()->position();
513 if (itsosCaloFirst == -1) {
514 itsosCaloFirst = itsos;
515 positionCaloFirst = (**t).trackParameters()->position();
520 if ((**t).measurementOnTrack()) {
522 positionMS = (**t).trackParameters()->position();
531 ATH_MSG_DEBUG(
" OutwardsCombinedMuonTrackBuilder addIDMSerrors p muon GeV "
532 <<
p <<
" First Calorimeter Scatterer radius " << positionCaloFirst.perp() <<
" z " << positionCaloFirst.z()
533 <<
" Second Scatterer r " << positionCaloLast.perp() <<
" z " << positionCaloLast.z() <<
" First Muon hit r "
534 << positionMS.perp() <<
" z " << positionMS.z());
536 if (itsosCaloFirst < 0 || itsosCaloLast < 0) {
542 positionCaloFirst = positionCaloFirst - positionMS;
543 positionCaloLast = positionCaloLast - positionMS;
545 double sigmaDeltaPhiIDMS2 =
m_IDMS_xySigma / (positionCaloFirst.perp() + positionCaloLast.perp());
546 double sigmaDeltaThetaIDMS2 =
m_IDMS_rzSigma / (positionCaloFirst.mag() + positionCaloLast.mag());
548 sigmaDeltaPhiIDMS2 *= sigmaDeltaPhiIDMS2;
549 sigmaDeltaThetaIDMS2 *= sigmaDeltaThetaIDMS2;
551 auto trackStateOnSurfaces = std::make_unique<Trk::TrackStates>();
552 trackStateOnSurfaces->reserve(
track.trackStateOnSurfaces()->size());
554 t =
track.trackStateOnSurfaces()->begin();
557 for (;
t !=
track.trackStateOnSurfaces()->
end(); ++
t) {
560 if ((**t).alignmentEffectsOnTrack()) {
continue; }
562 if (itsos == itsosCaloFirst || itsos == itsosCaloLast) {
563 if ((**t).materialEffectsOnTrack()) {
564 double X0 = (**t).materialEffectsOnTrack()->thicknessInX0();
575 double sigmaDeltaTheta =
578 auto energyLossNew = std::make_unique<Trk::EnergyLoss>(0., 0., 0., 0.);
582 const Trk::Surface& surfNew = (**t).trackParameters()->associatedSurface();
584 std::bitset<Trk::MaterialEffectsBase::NumberOfMaterialEffectsTypes> meotPattern(0);
589 std::make_unique<Trk::MaterialEffectsOnTrack>(
X0,
591 std::move(energyLossNew),
595 auto parsNew = ((**t).trackParameters())->
uniqueClone();
597 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePatternScat(0);
603 trackStateOnSurfaces->push_back(newTSOS);
609 ATH_MSG_DEBUG(
" new Calo scatterer made with sigmaDeltaPhi mrad "
610 << sigmaDeltaPhi * 1000 <<
" sigmaDeltaTheta mrad " << sigmaDeltaTheta * 1000);
613 " This should not happen: no Scattering Angles for "
618 " This should not happen: no MaterialEffectsOnTrack "
625 trackStateOnSurfaces->push_back(TSOS);
628 ATH_MSG_DEBUG(
" trackStateOnSurfaces on input track " <<
track.trackStateOnSurfaces()->size() <<
" trackStateOnSurfaces found "
629 << trackStateOnSurfaces->size());
631 return std::make_unique<Trk::Track>(
track.info(), std::move(trackStateOnSurfaces),
nullptr);
◆ combinedFit()
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ fit() [1/2]
combined muon fit
Both hold the same object. Release the newTrack from its duty.
Definition at line 325 of file OutwardsCombinedMuonTrackBuilder.cxx.
331 <<
" requested. Must be 0 or 2 (nonInteracting or muon) ");
336 std::unique_ptr<Trk::Track> fittedTrack{
m_fitter->fit(ctx, indetTrack, extrapolatedTrack,
false, particleHypothesis)};
338 if (!fittedTrack) {
return nullptr; }
340 if (!fittedTrack->perigeeParameters()) {
341 ATH_MSG_WARNING(
" Fitter returned a track without perigee, failing fit");
349 ATH_MSG_VERBOSE(
" perform spectrometer error optimization before cleaning ");
350 std::unique_ptr<Trk::Track> optimizedTrack{
m_muonErrorOptimizer->optimiseErrors(*fittedTrack, ctx)};
351 if (optimizedTrack) {
353 fittedTrack.swap(optimizedTrack);
358 std::unique_ptr<Trk::Track> cleanTrack =
m_cleaner->clean(*fittedTrack, ctx);
362 }
else if (!(*cleanTrack->
perigeeParameters() == *fittedTrack->perigeeParameters())) {
366 fittedTrack.swap(cleanTrack);
373 std::unique_ptr<Trk::Track> newTrack{
addIDMSerrors(*fittedTrack)};
375 std::unique_ptr<Trk::Track> refittedTrack{
fit(ctx, *newTrack,
false,
Trk::muon)};
378 if (refittedTrack->fitQuality()) { fittedTrack.swap(refittedTrack); }
384 std::unique_ptr<Trk::Track> recoveredTrack{
m_muonHoleRecovery->recover(*fittedTrack, ctx)};
385 double oldfitqual = fittedTrack->fitQuality()->chiSquared() / fittedTrack->fitQuality()->numberDoF();
387 if (recoveredTrack && recoveredTrack != fittedTrack) {
388 double newfitqual = recoveredTrack->fitQuality()->chiSquared() / recoveredTrack->fitQuality()->numberDoF();
389 if (newfitqual < oldfitqual || newfitqual < 1.5 || (newfitqual < 2 && newfitqual < oldfitqual + .5)) {
390 fittedTrack.swap(recoveredTrack);
420 if (fittedTrack && !fittedTrack->perigeeParameters()) {
421 ATH_MSG_WARNING(
" Fitter returned a track without perigee, failing fit");
425 if (runOutlier && fittedTrack) {
426 double fitqual = fittedTrack->fitQuality()->chiSquared() / fittedTrack->fitQuality()->numberDoF();
428 if (fitqual > 5 || (fittedTrack->perigeeParameters()->pT() < 20000 && fitqual > 2.5)) {
435 for (; itStates != endStates; ++itStates) {
436 if ((*itStates)->materialEffectsOnTrack()) {
448 if (pullphi > 7 || pulltheta > 7) {
462 std::unique_ptr<Trk::Track> optimizedTrack{
m_muonErrorOptimizer->optimiseErrors(*fittedTrack, ctx)};
463 if (optimizedTrack) {
465 fittedTrack.swap(optimizedTrack);
◆ fit() [2/2]
refit a track
Definition at line 280 of file OutwardsCombinedMuonTrackBuilder.cxx.
286 <<
" requested. Must be 0 or 2 (nonInteracting or muon) ");
291 std::unique_ptr<Trk::Track> fittedTrack{
m_fitter->fit(ctx,
track,
false, particleHypothesis)};
292 if (!fittedTrack)
return nullptr;
298 ATH_MSG_VERBOSE(
" perform spectrometer error optimization before cleaning ");
300 std::unique_ptr<Trk::Track> optimizedTrack =
m_muonErrorOptimizer->optimiseErrors(*fittedTrack, ctx);
301 if (optimizedTrack) { fittedTrack.swap(optimizedTrack); }
307 std::unique_ptr<Trk::Track> cleanTrack =
m_cleaner->clean(*fittedTrack, ctx);
311 }
else if (!(*cleanTrack->
perigeeParameters() == *fittedTrack->perigeeParameters())) {
315 fittedTrack.swap(cleanTrack);
◆ indetExtension()
◆ initialize()
StatusCode Rec::OutwardsCombinedMuonTrackBuilder::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ interfaceID()
static const InterfaceID& Rec::ICombinedMuonTrackBuilder::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
AlgTool and IAlgTool interface methods.
Definition at line 42 of file ICombinedMuonTrackBuilder.h.
43 static const InterfaceID IID_ICombinedMuonTrackBuilder(
"ICombinedMuonTrackBuilder", 1, 0);
44 return IID_ICombinedMuonTrackBuilder;
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ normalizedChi2()
double Rec::OutwardsCombinedMuonTrackBuilder::normalizedChi2 |
( |
const Trk::Track & |
track | ) |
const |
|
private |
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ standaloneFit()
◆ standaloneRefit()
ICombinedMuonTrackBuilder interface: refit a track removing any indet measurements with optional addition of pseudoMeasurements according to original extrapolation.
Implements Rec::ICombinedMuonTrackBuilder.
Definition at line 130 of file OutwardsCombinedMuonTrackBuilder.cxx.
132 ATH_MSG_DEBUG(
" start OutwardsCombinedMuonTrackBuilder standaloneRefit");
136 double vertex3DSigmaRPhi = 6.0;
137 double vertex3DSigmaZ = 60.0;
139 auto trackStateOnSurfaces = std::make_unique<Trk::TrackStates>();
141 bool addVertexRegion =
true;
143 vertexRegionCovariance.setZero();
144 vertexRegionCovariance(0, 0) = vertex3DSigmaRPhi * vertex3DSigmaRPhi;
145 vertexRegionCovariance(1, 1) = vertex3DSigmaRPhi * vertex3DSigmaRPhi;
146 vertexRegionCovariance(2, 2) = vertex3DSigmaZ * vertex3DSigmaZ;
148 Trk::RecVertex
vertex(origin, vertexRegionCovariance);
157 if ((**t).alignmentEffectsOnTrack())
continue;
164 trackStateOnSurfaces->push_back(TSOS);
167 if (addVertexRegion) {
171 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>
type;
173 trackStateOnSurfaces->push_back(
174 std::make_unique<Trk::TrackStateOnSurface>(std::move(vertexInFit),
nullptr,
nullptr,
type));
189 if ((**t).alignmentEffectsOnTrack())
continue;
190 if (!(**t).trackParameters())
continue;
192 if ((**t).materialEffectsOnTrack()) {
193 if (!
m_indetVolume->inside((**t).trackParameters()->position()))
break;
195 double X0 = (**t).materialEffectsOnTrack()->thicknessInX0();
202 Eloss += std::abs(energyLoss->
deltaE());
204 ATH_MSG_DEBUG(
"OutwardsCombinedMuonFit ID Eloss found r " << ((**t).trackParameters())->position().perp() <<
" z "
205 << ((**t).trackParameters())->position().z() <<
" value "
206 << energyLoss->
deltaE() <<
" Eloss " << Eloss);
214 auto energyLossNew = std::make_unique<Trk::EnergyLoss>(
219 const Trk::Surface& surfNew = (**t).trackParameters()->associatedSurface();
221 std::bitset<Trk::MaterialEffectsBase::NumberOfMaterialEffectsTypes> meotPattern(0);
226 std::make_unique<Trk::MaterialEffectsOnTrack>(
X0,
228 std::move(energyLossNew),
233 auto parsNew = ((**t).trackParameters())->
uniqueClone();
235 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePatternScat(0);
238 std::unique_ptr<Trk::TrackStateOnSurface> newTSOS =
239 std::make_unique<Trk::TrackStateOnSurface>(
nullptr, std::move(parsNew), std::move(meotNew), typePatternScat);
241 trackStateOnSurfaces->push_back(std::move(newTSOS));
248 ATH_MSG_DEBUG(
"OutwardsCombinedMuonFit Total ID Eloss " << Eloss <<
" nr of states " << itsos);
255 if ((**t).alignmentEffectsOnTrack())
continue;
257 trackStateOnSurfaces->push_back((**t).clone());
260 ATH_MSG_DEBUG(
" trackStateOnSurfaces found " << trackStateOnSurfaces->size() <<
" from total " << itsos);
262 std::unique_ptr<Trk::Track> standaloneTrack =
263 std::make_unique<Trk::Track>(
combinedTrack.info(), std::move(trackStateOnSurfaces),
nullptr);
266 std::unique_ptr<Trk::Track> refittedTrack =
fit(ctx, *standaloneTrack,
false,
Trk::muon);
268 if (!refittedTrack) {
269 ATH_MSG_DEBUG(
" OutwardsCombinedMuonTrackBuilder standaloneRefit FAILED ");
273 ATH_MSG_DEBUG(
" OutwardsCombinedMuonTrackBuilder standaloneRefit OK ");
276 return refittedTrack;
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ vertexOnTrack()
Definition at line 635 of file OutwardsCombinedMuonTrackBuilder.cxx.
644 covarianceMatrix.setZero();
649 double ptInv = 1. /
parameters->momentum().perp();
655 jacobian(0, 0) = -ptInv *
parameters->momentum().y();
656 jacobian(0, 1) = ptInv *
parameters->momentum().x();
657 jacobian(1, 2) = 1.0;
660 covarianceMatrix =
cov.similarity(jacobian);
662 return std::make_unique<Trk::PseudoMeasurementOnTrack>(std::move(localParameters),
663 std::move(covarianceMatrix),
◆ m_addIDMSerrors
Gaudi::Property<bool> Rec::OutwardsCombinedMuonTrackBuilder::m_addIDMSerrors {this, "AddIDMSerrors", true} |
|
private |
◆ m_allowCleanerVeto
Gaudi::Property<bool> Rec::OutwardsCombinedMuonTrackBuilder::m_allowCleanerVeto {this, "AllowCleanerVeto", true} |
|
private |
◆ m_badFitChi2
Gaudi::Property<double> Rec::OutwardsCombinedMuonTrackBuilder::m_badFitChi2 {this, "BadFitChi2", 2.5} |
|
private |
◆ m_calorimeterVolume
std::unique_ptr<Trk::Volume> Rec::OutwardsCombinedMuonTrackBuilder::m_calorimeterVolume |
|
private |
◆ m_cleanCombined
Gaudi::Property<bool> Rec::OutwardsCombinedMuonTrackBuilder::m_cleanCombined {this, "CleanCombined", true} |
|
private |
◆ m_cleaner
◆ m_detStore
◆ m_evtStore
◆ m_fitter
◆ m_IDMS_rzSigma
Gaudi::Property<double> Rec::OutwardsCombinedMuonTrackBuilder::m_IDMS_rzSigma {this,"IDMS_rzSigma", 1.* Gaudi::Units::mm} |
|
private |
◆ m_IDMS_xySigma
Gaudi::Property<double> Rec::OutwardsCombinedMuonTrackBuilder::m_IDMS_xySigma {this,"IDMS_xySigma", 1.* Gaudi::Units::mm} |
|
private |
◆ m_indetVolume
std::unique_ptr<Trk::Volume> Rec::OutwardsCombinedMuonTrackBuilder::m_indetVolume |
|
private |
◆ m_muonErrorOptimizer
◆ m_muonHoleRecovery
◆ m_recoverCombined
Gaudi::Property<bool> Rec::OutwardsCombinedMuonTrackBuilder::m_recoverCombined {this, "RecoverCombined", false } |
|
private |
◆ m_trackingVolumesSvc
◆ m_trackSummary
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
double deltaPhi() const
returns the
Gaudi::Property< bool > m_addIDMSerrors
std::unique_ptr< Trk::Track > fit(const EventContext &ctx, const Trk::Track &track, const Trk::RunOutlierRemoval runOutlier, const Trk::ParticleHypothesis particleHypothesis) const
refit a track
ToolHandle< Trk::ITrackFitter > m_fitter
Contains information about the 'fitter' of this track.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
Const iterator class for DataVector/DataList.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
static std::unique_ptr< Trk::PseudoMeasurementOnTrack > vertexOnTrack(const Trk::TrackParameters *parameters, const Trk::RecVertex &vertex)
virtual TrackStateOnSurface * clone() const
Pseudo-constructor: needed to avoid excessive RTTI.
Eigen::Matrix< double, 2, 1 > Vector2D
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
@ MuidStandaloneRefit
Standalone muon that was obtained by refitting a combined muon using the calorimeter information of t...
@ MuonSpectrometerEntryLayer
Tracking Volume which defines the entrance surfaces of the MS.
double sigmaDeltaE() const
returns the symmatric error
std::unique_ptr< Trk::Track > addIDMSerrors(const Trk::Track &track) const
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
ServiceHandle< Trk::ITrackingVolumesSvc > m_trackingVolumesSvc
std::unique_ptr< T_Obj > uniqueClone(const T_Obj *obj)
represents a deflection of the track caused through multiple scattering in material.
ToolHandle< Muon::IMuonHoleRecoveryTool > m_muonHoleRecovery
#define ATH_MSG_VERBOSE(x)
void combinedTrack(long int ICH, double *pv0, double *covi, double BMAG, double *par, double *covo)
#define AmgSymMatrix(dim)
virtual void setOwner(IDataHandleHolder *o)=0
@ StraightTrack
A straight track.
represents the full description of deflection and e-loss of a track in material.
double sigmaDeltaTheta() const
returns the
DataVector< const Trk::TrackStateOnSurface > TrackStates
static std::unique_ptr< Trk::TrackStateOnSurface > createMeasTSOS(std::unique_ptr< Trk::MeasurementBase > meas, std::unique_ptr< Trk::TrackParameters > pars, Trk::TrackStateOnSurface::TrackStateOnSurfaceType type)
create a TSOS with a measurement, takes ownership of the pointers
double chi2(TH1 *h0, TH1 *h1)
double deltaE() const
returns the
@ ScatteringEffects
contains material effects due to multiple scattering
std::unique_ptr< Trk::Volume > m_calorimeterVolume
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
double normalizedChi2(const Trk::Track &track) const
Gaudi::Property< double > m_badFitChi2
@ CalorimeterEntryLayer
Tracking Volume which defines the entrance srufaces of the calorimeter.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
const Perigee * perigeeParameters() const
return Perigee.
Ensure that the ATLAS eigen extensions are properly loaded.
Gaudi::Property< double > m_IDMS_xySigma
represents the track state (measurement, material, fit parameters and quality) at a surface.
This class describes energy loss material effects in the ATLAS tracking EDM.
Eigen::Matrix< double, 3, 1 > Vector3D
@ EnergyLossEffects
contains energy loss corrections
const EnergyLoss * energyLoss() const
returns the energy loss object.
Gaudi::Property< bool > m_recoverCombined
Gaudi::Property< bool > m_cleanCombined
#define ATH_MSG_WARNING(x)
Gaudi::Property< double > m_IDMS_rzSigma
const ScatteringAngles * scatteringAngles() const
returns the MCS-angles object.
std::unique_ptr< Trk::Volume > m_indetVolume
double sigmaDeltaPhi() const
returns the
ToolHandle< Trk::ITrackSummaryTool > m_trackSummary
@ Scatterer
This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffe...
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Gaudi::Property< bool > m_allowCleanerVeto
void setPatternRecognitionInfo(const TrackPatternRecoInfo &patternReco)
Method setting the pattern recognition algorithm.
double deltaTheta() const
returns the
ToolHandle< Muon::IMuonErrorOptimisationTool > m_muonErrorOptimizer
ToolHandle< Muon::IMuonTrackCleaner > m_cleaner
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
@ Unknown
Track fitter not defined.