ATLAS Offline Software
IMuonSegmentMaker.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUON_IMUONSEGMENTMAKER_H
6 #define MUON_IMUONSEGMENTMAKER_H
7 
8 #include <vector>
9 
10 #include "GaudiKernel/IAlgTool.h"
13 
14 static const InterfaceID IID_IMuonSegmentMaker("Muon::IMuonSegmentMaker", 1, 0);
15 
16 namespace Trk {
17  class PrepRawData;
18  class RIO_OnTrack;
19  class TrackRoad;
20 } // namespace Trk
21 
22 namespace Muon {
23 
24  class MuonSegment;
25  class MdtDriftCircleOnTrack;
26  class MuonClusterOnTrack;
27 
69  class IMuonSegmentMaker : virtual public IAlgTool {
70  public:
72  static const InterfaceID& interfaceID();
73 
79  virtual void find(const std::vector<const Trk::RIO_OnTrack*>& rios, Trk::SegmentCollection* segColl = nullptr) const = 0;
80 
86  virtual void find(const std::vector<const Trk::RIO_OnTrack*>& rios1, const std::vector<const Trk::RIO_OnTrack*>& rios2) const = 0;
87 
94  virtual void find(const std::vector<const MdtDriftCircleOnTrack*>& mdts, const std::vector<const MuonClusterOnTrack*>& clusters,
95  Trk::SegmentCollection* segColl = nullptr) const = 0;
96 
110  virtual void find(const Amg::Vector3D& gpos, const Amg::Vector3D& gdir, const std::vector<const MdtDriftCircleOnTrack*>& mdts,
111  const std::vector<const MuonClusterOnTrack*>& clusters, bool updatePhi = false,
112  Trk::SegmentCollection* segColl = nullptr, double momentum = 1e9, double sinAngleCut = 0.) const = 0;
113 
128  virtual void find(const Trk::TrackRoad& road, const std::vector<std::vector<const MdtDriftCircleOnTrack*> >& mdts,
129  const std::vector<std::vector<const MuonClusterOnTrack*> >& clusters, Trk::SegmentCollection* segColl,
130  bool updatePhi = false, double momentum = 1e9) const = 0;
131  };
132 
133  inline const InterfaceID& IMuonSegmentMaker::interfaceID() { return IID_IMuonSegmentMaker; }
134 } // namespace Muon
135 
136 #endif // IMuonSegmentMaker_H
Trk::TrackRoad
Encapsulates the information required by the find() method of the muon segment makers.
Definition: TrackRoad.h:21
Muon::IMuonSegmentMaker::find
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 MuonCluster...
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::IMuonSegmentMaker::find
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
xAOD::MuonSegment
MuonSegment_v1 MuonSegment
Reference the current persistent version:
Definition: Event/xAOD/xAODMuon/xAODMuon/MuonSegment.h:13
Muon::IMuonSegmentMaker
The IMuonSegmentFinder is a pure virtual interface for tools to find segments in the muon spectromete...
Definition: IMuonSegmentMaker.h:69
GeoPrimitives.h
ParticleGun_EoverP_Config.momentum
momentum
Definition: ParticleGun_EoverP_Config.py:63
Muon::IMuonSegmentMaker::find
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 ...
DataVector< Trk::Segment >
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
Trk::MeasurementBaseType::RIO_OnTrack
@ RIO_OnTrack
Definition: MeasurementBase.h:49
Muon::IMuonSegmentMaker::find
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 MuonCluster...
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
Muon::IMuonSegmentMaker::interfaceID
static const InterfaceID & interfaceID()
access to tool interface
Definition: IMuonSegmentMaker.h:133
SegmentCollection.h
Muon::IMuonSegmentMaker::find
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