|
ATLAS Offline Software
|
Go to the documentation of this file.
14 #ifndef MUIDTRACKBUILDER_COMBINEDMUONTRACKBUILDER_H
15 #define MUIDTRACKBUILDER_COMBINEDMUONTRACKBUILDER_H
21 #include "GaudiKernel/ServiceHandle.h"
22 #include "GaudiKernel/ToolHandle.h"
57 class TrackStateOnSurface;
72 const Trk::Track& spectrometerTrack)
const override;
78 std::unique_ptr<Trk::TrackParameters> innerParameters,
79 std::unique_ptr<Trk::TrackParameters> middleParameters,
80 std::unique_ptr<Trk::TrackParameters> outerParameters)
const override;
107 const std::vector<std::unique_ptr<const Trk::TrackStateOnSurface>>& trackStateOnSurfaces,
const Trk::RecVertex*
vertex,
125 std::unique_ptr<Trk::TrackParameters>
extrapolatedParameters(
const EventContext& ctx,
bool& badlyDeterminedCurvature,
132 void momentumUpdate(std::unique_ptr<Trk::TrackParameters>&
parameters,
double updatedP,
bool directionUpdate =
false,
133 double deltaPhi = 0.,
double deltaTheta = 0.)
const;
162 "Trk::Extrapolator/AtlasExtrapolator",
182 "Trk::IntersectorWrapper/IntersectorWrapper",
187 "Trk::StraightLinePropagator/MuonStraightLinePropagator",
194 "Muon::MuonAlignmentUncertTool/MuonAlignmentUncertToolTheta" };
196 "Muon::MuonAlignmentUncertTool/MuonAlignmentUncertToolPhi"};
200 "Handle to the service providing the IMuonEDMHelperSvc interface"};
206 "Key of the TrackingGeometry conditions data."};
269 #endif // MUIDTRACKBUILDER_COMBINEDMUONTRACKBUILDER_H
std::unique_ptr< const Trk::RecVertex > m_beamAxis
const Trk::TrackingVolume * getVolume(const EventContext &ctx, const std::string &&vol_name) const
std::unique_ptr< Trk::TrackStateOnSurface > createPhiPseudoMeasurement(const EventContext &ctx, const Trk::Track &track) const
Contains information about the 'fitter' of this track.
Gaudi::Property< double > m_largeMomentumChange
Const iterator class for DataVector/DataList.
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
PublicToolHandle< Muon::IMuonAlignmentUncertTool > m_alignUncertTool_theta
ToolHandles to retrieve the uncertainties for theta and phi for the scattering uncertainties.
static std::unique_ptr< Trk::PseudoMeasurementOnTrack > vertexOnTrack(const Trk::TrackParameters ¶meters, const Trk::RecVertex *vertex, const Trk::RecVertex *mbeamAxis)
std::unique_ptr< Trk::Track > addIDMSerrors(const Trk::Track *track) const
SG::ReadCondHandleKey< Trk::TrackingGeometry > m_trackingGeometryReadKey
std::atomic_uint m_countBeamAxis
Gaudi::Property< bool > m_refineELossStandAloneTrackFit
std::unique_ptr< Trk::TrackStateOnSurface > entrancePerigee(const EventContext &ctx, const Trk::TrackParameters *parameters) const
Gaudi::Property< double > m_numberSigmaFSR
class extending the basic Trk::EnergyLoss to describe the measured or parameterised muon energy loss ...
std::unique_ptr< Trk::Track > createMuonTrack(const EventContext &ctx, const Trk::Track &muonTrack, const Trk::TrackParameters *parameters, std::unique_ptr< CaloEnergy > caloEnergy, const Trk::TrackStates *tsos) const
Summarizes the available information about the ID track, the deposited calorimeter energies and the t...
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_muClusterRotCreator
void removeSpectrometerMaterial(std::unique_ptr< Trk::Track > &track) const
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
const CaloEnergy * caloEnergyParameters(const Trk::Track *combinedTrack, const Trk::Track *muonTrack, const Trk::TrackParameters *&combinedEnergyParameters, const Trk::TrackParameters *&muonEnergyParameters) const
Interface ID for ICombinedMuonTrackBuilder.
std::unique_ptr< Trk::Track > createExtrapolatedTrack(const EventContext &ctx, const Trk::Track &spectrometerTrack, const Trk::TrackParameters ¶meters, Trk::ParticleHypothesis particleHypothesis, Trk::RunOutlierRemoval runOutlier, const std::vector< std::unique_ptr< const Trk::TrackStateOnSurface >> &trackStateOnSurfaces, const Trk::RecVertex *vertex, const Trk::RecVertex *mbeamAxis, const Trk::PerigeeSurface *mperigeeSurface, const Trk::Perigee *seedParameter=nullptr) const
Gaudi::Property< bool > m_addElossID
void appendSelectedTSOS(Trk::TrackStates &trackStateOnSurfaces, Trk::TrackStates::const_iterator begin, Trk::TrackStates::const_iterator end) const
Gaudi::Property< bool > m_refineELossCombinedTrackFit
Gaudi::Property< double > m_lowMomentum
Gaudi::Property< double > m_vertex3DSigmaRPhi
void dumpCaloEloss(const Trk::Track *track, const std::string &txt) const
std::vector< size_t > vec
std::unique_ptr< Trk::Track > reallocateMaterial(const EventContext &ctx, const Trk::Track &spectrometerTrack) const
void combinedTrack(long int ICH, double *pv0, double *covi, double BMAG, double *par, double *covo)
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...
Trk::RecVertex inherits from Trk::Vertex.
bool RunOutlierRemoval
switch to toggle quality processing after fit
Gaudi::Property< double > m_lineMomentum
std::atomic_uint m_countAcceptedStandaloneFit
Gaudi::Property< bool > m_cleanCombined
ToolHandle< Trk::IPropagator > m_propagator
ToolHandle< Muon::IMdtDriftCircleOnTrackCreator > m_mdtRotCreator
Gaudi::Property< double > m_vertex2DSigmaRPhi
CombinedMuonTrackBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Name: MuonSpContainer.h Package : offline/Reconstruction/MuonIdentification/muonEvent.
std::atomic_uint m_countVertexRegion
Gaudi::Property< bool > m_addIDMSerrors
::StatusCode StatusCode
StatusCode definition for legacy code.
std::unique_ptr< Trk::Track > createIndetTrack(const Trk::TrackInfo &info, const Trk::TrackStates *tsos) const
Trk::MagneticFieldProperties m_magFieldProperties
ToolHandle< Muon::IMuonHoleRecoveryTool > m_muonHoleRecovery
Gaudi::Property< double > m_largeImpact
std::unique_ptr< const Trk::PerigeeSurface > m_perigeeSurface
Gaudi::Property< double > m_largeMomentumError
ToolHandle< Trk::IExtrapolator > m_extrapolator
ToolHandle< Trk::IMaterialAllocator > m_materialAllocator
@ FullField
Field is set to be realistic, but within a given Volume.
std::atomic_uint m_countDegradedStandaloneFit
Gaudi::Property< bool > m_cleanStandalone
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
Gaudi::Property< bool > m_iterateCombinedTrackFit
Ensure that the ATLAS eigen extensions are properly loaded.
PublicToolHandle< Muon::IMuonAlignmentUncertTool > m_alignUncertTool_phi
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_cscRotCreator
virtual StatusCode finalize() override
Eigen::Matrix< double, 3, 1 > Vector3D
std::unique_ptr< Trk::TrackParameters > extrapolatedParameters(const EventContext &ctx, bool &badlyDeterminedCurvature, const Trk::Track &spectrometerTrack, const Trk::RecVertex *mvertex, const Trk::PerigeeSurface *mperigeeSurface) const
virtual std::unique_ptr< Trk::Track > standaloneRefit(const EventContext &ctx, const Trk::Track &combinedTrack, const Amg::Vector3D &vec) const override
ICombinedMuonTrackBuilder interface: refit a track removing any indet measurements with optional addi...
Gaudi::Property< double > m_largePhiError
Gaudi::Property< double > m_vertex3DSigmaZ
void momentumUpdate(std::unique_ptr< Trk::TrackParameters > ¶meters, double updatedP, bool directionUpdate=false, double deltaPhi=0., double deltaTheta=0.) const
Gaudi::Property< double > m_minEnergy
ToolHandle< Rec::IMuidCaloEnergy > m_caloEnergyParam
std::vector< std::unique_ptr< const Trk::TrackStateOnSurface > > getCaloTSOSfromMatProvider(const Trk::TrackParameters &track_params, const Trk::Track &me_track) const
Helper method to retrieve the CaloTSO from the Material provider in a memory safe way.
Gaudi::Property< double > m_vertex2DSigmaZ
void finalTrackBuild(const EventContext &ctx, std::unique_ptr< Trk::Track > &track) const
Gaudi::Property< bool > m_reallocateMaterial
Gaudi::Property< bool > m_perigeeAtSpectrometerEntrance
ToolHandle< Trk::IPropagator > m_propagatorSL
std::unique_ptr< const Trk::RecVertex > m_vertex
@ PseudoMeasurementOnTrack
void replaceCaloEnergy(const CaloEnergy *caloEnergy, Trk::Track *track) const
std::vector< std::unique_ptr< const Trk::TrackStateOnSurface > > createSpectrometerTSOS(const EventContext &ctx, const Trk::Track &spectrometerTrack) const
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 ...
virtual ~CombinedMuonTrackBuilder()
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.
Gaudi::Property< bool > m_useRefitTrackError
virtual StatusCode initialize() override