ATLAS Offline Software
Loading...
Searching...
No Matches
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
21namespace Trk {
22 class Track;
23 class Vertex;
24} // namespace Trk
25
26namespace Rec {
27
29
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 }
46
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
Interface ID for ICombinedMuonTrackBuilder.
virtual ~ICombinedMuonTrackBuilder()=default
Virtual destructor.
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...
static const InterfaceID & interfaceID()
AlgTool and IAlgTool interface methods.
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...
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.
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...
This class is a simplest representation of a vertex candidate.
Eigen::Matrix< double, 3, 1 > Vector3D
Gaudi Tools.
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
Definition FitterTypes.h:30