ATLAS Offline Software
Loading...
Searching...
No Matches
Muon::IMuonSegmentMaker Class Referenceabstract

The IMuonSegmentFinder is a pure virtual interface for tools to find segments in the muon spectrometer. More...

#include <IMuonSegmentMaker.h>

Inheritance diagram for Muon::IMuonSegmentMaker:
Collaboration diagram for Muon::IMuonSegmentMaker:

Public Member Functions

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
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
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
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., double beta=1.) const =0
 seeded segment search starting from a list of MdtDriftCircleOnTrack objects and a list of MuonClusterOnTrack objects
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

Static Public Member Functions

static const InterfaceID & interfaceID ()
 access to tool interface

Detailed Description

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;
    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
  • seeded search
    virtual std::vector<const MuonSegment*>* find( const Amg::Vector3D& gpos, const Amg::Vector3D& gdir,
    const std::vector<const MdtDriftCircleOnTrack*>& mdts,
    const std::vector<const MuonClusterOnTrack*>& clusters,
    bool updatePhi=false, double momentum ) =0;
    virtual std::vector<const MuonSegment*>* find( const Trk::TrackRoad& road,
    const std::vector< std::vector< const MdtDriftCircleOnTrack* > >& mdts,
    const std::vector< std::vector< const MuonClusterOnTrack* > >& clusters,
    bool updatePhi=false, double momentum ) =0;
    Encapsulates the information required by the find() method of the muon segment makers.
    Definition TrackRoad.h:21
    Eigen::Matrix< double, 3, 1 > Vector3D
    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.

Member Function Documentation

◆ find() [1/5]

virtual void Muon::IMuonSegmentMaker::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.,
double beta = 1. ) const
pure virtual

seeded segment search starting from a list of MdtDriftCircleOnTrack objects and a list of MuonClusterOnTrack objects

Parameters
gposan estimate of the global position of the muon in the chamber
gdiran estimate of the global direction of the muon in the chamber
mdtsa vector of Muon::MdtDriftCircleOnTrack obejcts
clustersa vector of Muon::MuonClusterOnTrack obejcts
updatePhia boolean to indicate whether the external prediction should be used to set the \( \phi \)-direction of the segment
momentumfor low momentum tracks the segment finders may increase the errors on the measurements to allow for multiple scattering
segColla Trk::SegmentCollection to store the segments The ownership of the segments is passed to the SegmentCollection

◆ find() [2/5]

virtual void Muon::IMuonSegmentMaker::find ( const std::vector< const MdtDriftCircleOnTrack * > & mdts,
const std::vector< const MuonClusterOnTrack * > & clusters,
Trk::SegmentCollection * segColl = nullptr ) const
pure virtual

find segments starting from a list of MdtDriftCircleOnTrack objects and a list of MuonClusterOnTrack objects

Parameters
mdtsa vector of Muon::MdtDriftCircleOnTrack obejcts
clustersa vector of Muon::MuonClusterOnTrack obejcts
segColla Trk::SegmentCollection to store the segments The ownership of the segments is passed to the SegmentCollection

◆ find() [3/5]

virtual void Muon::IMuonSegmentMaker::find ( const std::vector< const Trk::RIO_OnTrack * > & rios,
Trk::SegmentCollection * segColl = nullptr ) const
pure virtual

find segments starting from a list of Trk::RIO_OnTrack objects

Parameters
riosa vector of Trk::RIO_OnTrack objects
segColla Trk::SegmentCollection to store the segments The ownership of the segments is passed to the SegmentCollection

◆ find() [4/5]

virtual void Muon::IMuonSegmentMaker::find ( const std::vector< const Trk::RIO_OnTrack * > & rios1,
const std::vector< const Trk::RIO_OnTrack * > & rios2 ) const
pure virtual

find segments starting from two lists of Trk::RIO_OnTrack objects in two neighbouring chambers

Parameters
rios1a vector of Trk::RIO_OnTrack objects in the first chamber
rios2a vector of Trk::RIO_OnTrack objects in the second chamber Note: this interface is deprecated!

◆ find() [5/5]

virtual void Muon::IMuonSegmentMaker::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
pure virtual

seeded segment search starting from a list of MdtDriftCircleOnTrack objects and a list of MuonClusterOnTrack objects

Parameters
roadan estimate of the position and direction of the muon in the chamber
mdtsa vector of Muon::MdtDriftCircleOnTrack obejcts
clustersa vector of Muon::MuonClusterOnTrack obejcts
updatePhia boolean to indicate whether the external prediction should be used to set the \( \phi \)-direction of the segment
segCollif a Trk::SegmentCollection is passed (should be the case if segments will go into SG), store the segments in here directly
momentumfor low momentum tracks the segment finders may increase the errors on the measurements to allow for multiple scattering
segColla Trk::SegmentCollection to store the segments The ownership of the segments is passed to the SegmentCollection

◆ interfaceID()

const InterfaceID & Muon::IMuonSegmentMaker::interfaceID ( )
inlinestatic

access to tool interface

Definition at line 133 of file IMuonSegmentMaker.h.

133{ return IID_IMuonSegmentMaker; }
static const InterfaceID IID_IMuonSegmentMaker("Muon::IMuonSegmentMaker", 1, 0)

The documentation for this class was generated from the following file: