|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef MUONNSWSEGMENTFINDERTOOL_H
6 #define MUONNSWSEGMENTFINDERTOOL_H
28 class MuonNSWSegmentFinderTool;
64 const std::array<double, 2>& lengths);
82 using MeasVec = std::vector<SeedMeasurement>;
94 int channel(
const SeedMeasurement& meas)
const;
96 bool find(
const SeedMeasurement& meas)
const;
98 double distance(
const SeedMeasurement& meas)
const;
101 bool insert(SeedMeasurement meas);
123 std::set<std::shared_ptr<const Muon::MuonClusterOnTrack>>
m_calibClust{};
139 "Muon::MuonIdHelperSvc/MuonIdHelperSvc",
144 "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
145 "Handle to the service providing the IMuonEDMHelperSvc interface",
150 "SegmentAmbiguityTool",
151 "Trk::SimpleAmbiguityProcessorTool/MuonAmbiProcessor",
156 "Trk::GlobalChi2Fitter/MCTBSLFitter",
160 "TrackToSegmentTool",
161 "Muon::MuonTrackToSegmentTool/MuonTrackToSegmentTool",
166 "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
171 "Muon::MuonTrackCleaner/MuonTrackCleaner",
176 "Trk::TrackSummaryTool/MuidTrackSummaryTool",
192 "Size of the channel window to group the MicroMegaCluster"};
194 "Cut on the number of MicroMega clusters in a particular occupancy bin"};
196 "Cut on the number of MicroMega clusters in two neighbouring occupancy bins"};
218 std::string
printSeed(
const std::array<SeedMeasurement, N>& seed)
const;
234 std::vector<std::unique_ptr<Muon::MuonSegment>>
findStereoSegments(
const EventContext& ctx,
235 const std::vector<const Muon::MuonClusterOnTrack*>& allClusts,
236 int singleWedge = 0)
const;
240 const std::vector<const Muon::MuonClusterOnTrack*>& MuonClusters,
241 int singleWedge = 0)
const;
243 std::vector<std::unique_ptr<Muon::MuonSegment>>
find3DSegments(
const EventContext& ctx,
244 const std::vector<const Muon::MuonClusterOnTrack*>& MuonClusters,
245 std::vector<std::unique_ptr<Muon::MuonSegment>>& etaSegs,
246 int singleWedge = 0)
const;
249 int hit_sel,
int singleWedge)
const;
260 std::array<unsigned int,4> selLayers,
261 unsigned int& trial_counter)
const;
267 std::vector<std::pair<double, double>>
getPadPhiOverlap(
const std::vector<std::vector<const Muon::sTgcPrepData*>>& pads)
const;
271 const std::set<unsigned int>&
exclude)
const;
282 std::unique_ptr<Trk::PseudoMeasurementOnTrack>
ipConstraint(
const EventContext& ctx)
const;
287 std::vector<std::unique_ptr<Muon::MuonSegment>>
resolveAmbiguities(
const EventContext& ctx,
290 std::unique_ptr<Trk::Track>
fit(
const EventContext& ctx,
const std::vector<const Trk::MeasurementBase*>& fit_meas,
311 #endif // MUONROADFINDERTOOL_H
Author
enum to identify who created the segment.
const Muon::MuonClusterOnTrack * m_cl
MeasVec measurements() const
const MuonNSWSegmentFinderTool * m_parent
virtual const Amg::Vector3D & globalPosition() const override
Returns global position.
const Muon::MuonClusterOnTrack * operator->() const
Amg::Vector3D m_dir
Seed direction.
double dirDot(const Amg::Vector3D &v) const
Amg::Vector3D m_pos
Starting position of the seed.
const Amg::Vector3D & dir() const
SeedMeasCache m_measurements
Cache the eta measurements.
std::set< std::string > exclude
list of directories to be excluded
This class provides conversion from CSC RDO data to CSC Digits.
void setDistance(double d)
const Amg::Vector3D & pos() const
std::array< SeedMeasurement, 16 > SeedMeasCache
Helper pair to cache the measurements with the respective distances.
const Muon::MuonClusterOnTrack * get() const
Accomodations of the interface to make the changes as transparent as possible.
const Amg::Vector3D & pos() const
Returns the position of the seed.
SeedMeasurement()=default
NSWSeed::MeasVec MeasVec
Stereo seeds can be formed using hits from 4 independent layers by solving the following system of eq...
::StatusCode StatusCode
StatusCode definition for legacy code.
std::set< std::shared_ptr< const Muon::MuonClusterOnTrack > > m_calibClust
Garbage container per seed.
const Muon::MuonClusterOnTrack * newCalibClust(std::unique_ptr< const Muon::MuonClusterOnTrack > new_clust)
Adds a calibrated cluster to the garbage collection.
Struct caching the MuonClusterOnTrack and providing the orientation of the strip in addtion.
const Amg::Vector3D & dir() const
Returns the direction of the seed.
bool operator==(const SeedMeasurement &other) const
double distance(const SeedMeasurement &meas) const
Calculates the minimal distance between seed and measurement.
SeedOR overlap(const NSWSeed &other) const
bool add(SeedMeasurement meas, double max_uncert)
Tries to add the measurement to the seeds. Returns false if the measurement is incompatible with the ...
SeedMeasCache m_padMeasurements
Cache the sTGC pad measurements.
int channel(const SeedMeasurement &meas) const
Returns the channel of the measurement on the layer.
bool insert(const Muon::MuonClusterOnTrack *cl)
size_t size() const
Returns the number of measurements.
Eigen::Matrix< double, 3, 1 > Vector3D
SeedMeasCache m_phiMeasurements
Cache the phi measurements.
size_t m_size
Added measurements on track.
double dirDot(const SeedMeasurement &other) const
std::vector< SeedMeasurement > MeasVec
Returns the contained measurements.
bool find(const SeedMeasurement &meas) const
Checks whether the measurement is already part of the seed.
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
setBGCode setTAP setLVL2ErrorBits bool
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Base class for Muon cluster RIO_OnTracks.