The IMuonSegmentFinder is a pure virtual interface for tools to find segments in the muon spectrometer.
More...
|
virtual void | find (const std::vector< const Trk::RIO_OnTrack * > &rios, Trk::SegmentCollection *segColl=nullptr) const =0 |
| find segments starting from a list of Trk::RIO_OnTrack objects More...
|
|
virtual void | find (const std::vector< const Trk::RIO_OnTrack * > &rios1, const std::vector< const Trk::RIO_OnTrack * > &rios2) const =0 |
| find segments starting from two lists of Trk::RIO_OnTrack objects in two neighbouring chambers More...
|
|
virtual void | find (const std::vector< const MdtDriftCircleOnTrack * > &mdts, const std::vector< const MuonClusterOnTrack * > &clusters, Trk::SegmentCollection *segColl=nullptr) const =0 |
| find segments starting from a list of MdtDriftCircleOnTrack objects and a list of MuonClusterOnTrack objects More...
|
|
virtual void | find (const Amg::Vector3D &gpos, const Amg::Vector3D &gdir, const std::vector< const MdtDriftCircleOnTrack * > &mdts, const std::vector< const MuonClusterOnTrack * > &clusters, bool updatePhi=false, Trk::SegmentCollection *segColl=nullptr, double momentum=1e9, double sinAngleCut=0.) const =0 |
| seeded segment search starting from a list of MdtDriftCircleOnTrack objects and a list of MuonClusterOnTrack objects More...
|
|
virtual void | find (const Trk::TrackRoad &road, const std::vector< std::vector< const MdtDriftCircleOnTrack * > > &mdts, const std::vector< std::vector< const MuonClusterOnTrack * > > &clusters, Trk::SegmentCollection *segColl, bool updatePhi=false, double momentum=1e9) const =0 |
| seeded segment search starting from a list of MdtDriftCircleOnTrack objects and a list of MuonClusterOnTrack objects More...
|
|
The IMuonSegmentFinder is a pure virtual interface for tools to find segments in the muon spectrometer.
It provides several routines for the segment search. These routines have in common that they take a set of RIO_OnTrack objects as input and return a pointer to a vector of MuonSegment objects. The client calling the IMuonSegmentFinder is responsible for the memory management of the segments and should ensure that they get deleted before the end of the event.
Several interfaces are available, they can be divided into two categories:
- unseeded search
virtual std::vector<const MuonSegment*>*
find(
const std::vector<const MdtDriftCircleOnTrack*>& mdts,
const std::vector<const MuonClusterOnTrack*>&
clusters) =0;
virtual std::vector<const MuonSegment*>*
find(
const std::vector<const Trk::RIO_OnTrack*>& rios ) =0;
virtual std::vector<const MuonSegment*>*
find(
const std::vector<const Trk::RIO_OnTrack*>& rios1,
const std::vector<const Trk::RIO_OnTrack*>& rios2 ) =0;
- seeded search
const std::vector<const MdtDriftCircleOnTrack*>& mdts,
const std::vector<const MuonClusterOnTrack*>&
clusters,
bool updatePhi=
false,
double momentum ) =0;
const std::vector< std::vector< const MdtDriftCircleOnTrack* > >& mdts,
const std::vector< std::vector< const MuonClusterOnTrack* > >&
clusters,
bool updatePhi=
false,
double momentum ) =0;
The boolean updatePhi is used to determine whether the predicted phi measurement should be used to update the \( \phi \) coordinate of the segment or whether the center of the tube should be used.
It is recommended but not required that users implement all interfaces. Currently the following implementations of the interface exist:
- Muon::DCMathSegmentMaker, tool to find segments using in a station layer using both MDT hits and trigger hits.
- Muon::MooMdtSegmentMaker, tool to find segments in a MDT chamber.
- Muon::MDT_DHoughSegmentMakerTool, tool to find segments in a station layer using MDT hits.
- Muon::MooCscSegmentMaker, tool to find segments in a CSC chamber.
- Muon::CSC_DHoughSegmentMakerTool, tool to find segments in a CSC chamber.
- Muon::RPC_LinearSegmentMakerTool, tool to find segments in a RPC station layer.
- Muon::TGC_LinearSegmentMakerTool, tool to find segments in a TGC station layer.
Definition at line 69 of file IMuonSegmentMaker.h.