ATLAS Offline Software
ICombinedMuonTrackBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // ICombinedMuonTrackBuilder
7 // interface to build and fit a combined muon from input track(s)
8 // and/or MeasurementSet, gathering material effects along the
9 // track (in particular for the calorimeter).
10 //
12 
13 #ifndef MUIDINTERFACES_ICOMBINEDMUONTRACKBUILDER_H
14 #define MUIDINTERFACES_ICOMBINEDMUONTRACKBUILDER_H
15 
16 #include "GaudiKernel/IAlgTool.h"
20 
21 namespace Trk {
22  class Track;
23  class Vertex;
24 } // namespace Trk
25 
26 namespace Rec {
27 
36  class ICombinedMuonTrackBuilder : virtual public IAlgTool {
37  public:
39  virtual ~ICombinedMuonTrackBuilder() = default;
40 
42  static const InterfaceID& interfaceID() {
43  static const InterfaceID IID_ICombinedMuonTrackBuilder("ICombinedMuonTrackBuilder", 1, 0);
44  return IID_ICombinedMuonTrackBuilder;
45  }
47  virtual std::unique_ptr<Trk::Track> combinedFit(const EventContext& ctx,
48  const Trk::Track& indetTrack, const Trk::Track& extrapolatedTrack,
49  const Trk::Track& spectrometerTrack) const = 0;
50 
54  virtual std::unique_ptr<Trk::Track> indetExtension(const EventContext& ctx,
55  const Trk::Track& indetTrack,
56  const Trk::MeasurementSet& spectrometerMeasurements,
57  std::unique_ptr<Trk::TrackParameters> innerParameters = nullptr,
58  std::unique_ptr<Trk::TrackParameters> middleParameters = nullptr,
59  std::unique_ptr<Trk::TrackParameters> outerParameters = nullptr) const = 0;
60 
65  virtual std::unique_ptr<Trk::Track> standaloneFit(const EventContext& ctx, const Trk::Track& spectrometerTrack,
66  const Amg::Vector3D& bs, const Trk::Vertex* vertex = nullptr) const = 0;
67 
72  virtual std::unique_ptr<Trk::Track> standaloneRefit(const EventContext& ctx, const Trk::Track& combinedTrack, const Amg::Vector3D& bs) const = 0;
73 
74  };
75 
76 } // namespace Rec
77 
78 #endif // MUIDINTERFACES_ICOMBINEDMUONTRACKBUILDER_H
Trk::Vertex
Definition: Tracking/TrkEvent/VxVertex/VxVertex/Vertex.h:26
TrackParameters.h
xAOD::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition: Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Rec::ICombinedMuonTrackBuilder::standaloneFit
virtual std::unique_ptr< Trk::Track > standaloneFit(const EventContext &ctx, const Trk::Track &spectrometerTrack, const Amg::Vector3D &bs, const Trk::Vertex *vertex=nullptr) const =0
ICombinedMuonTrackBuilder interface : propagate to perigee adding calo energy-loss and material to MS...
Rec::ICombinedMuonTrackBuilder
Interface ID for ICombinedMuonTrackBuilder.
Definition: ICombinedMuonTrackBuilder.h:36
FitterTypes.h
Rec::ICombinedMuonTrackBuilder::combinedFit
virtual std::unique_ptr< Trk::Track > combinedFit(const EventContext &ctx, const Trk::Track &indetTrack, const Trk::Track &extrapolatedTrack, const Trk::Track &spectrometerTrack) const =0
ICombinedMuonTrackBuilder interface: build and fit combined ID/Calo/MS track.
Trk::combinedTrack
void combinedTrack(long int ICH, double *pv0, double *covi, double BMAG, double *par, double *covo)
Definition: XYZtrp.cxx:113
Rec
Name: MuonSpContainer.h Package : offline/Reconstruction/MuonIdentification/muonEvent.
Definition: FakeTrackBuilder.h:10
Rec::ICombinedMuonTrackBuilder::indetExtension
virtual std::unique_ptr< Trk::Track > indetExtension(const EventContext &ctx, const Trk::Track &indetTrack, const Trk::MeasurementSet &spectrometerMeasurements, std::unique_ptr< Trk::TrackParameters > innerParameters=nullptr, std::unique_ptr< Trk::TrackParameters > middleParameters=nullptr, std::unique_ptr< Trk::TrackParameters > outerParameters=nullptr) const =0
ICombinedMuonTrackBuilder interface: build and fit indet track extended to include MS Measurement set...
ParticleHypothesis.h
Trk::MeasurementSet
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
Definition: FitterTypes.h:30
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Rec::ICombinedMuonTrackBuilder::standaloneRefit
virtual std::unique_ptr< Trk::Track > standaloneRefit(const EventContext &ctx, const Trk::Track &combinedTrack, const Amg::Vector3D &bs) const =0
ICombinedMuonTrackBuilder interface: refit a track removing any indet measurements with optional addi...
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
Rec::ICombinedMuonTrackBuilder::~ICombinedMuonTrackBuilder
virtual ~ICombinedMuonTrackBuilder()=default
Virtual destructor.
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
Rec::ICombinedMuonTrackBuilder::interfaceID
static const InterfaceID & interfaceID()
AlgTool and IAlgTool interface methods.
Definition: ICombinedMuonTrackBuilder.h:42