|
ATLAS Offline Software
|
#include <MuonNSWSegmentFinderTool.h>
|
| NSWSeed ()=default |
|
| NSWSeed (const MuonNSWSegmentFinderTool *parent, const std::array< SeedMeasurement, 4 > &seed, const std::array< double, 2 > &lengths) |
|
| NSWSeed (const MuonNSWSegmentFinderTool *parent, const SeedMeasurement &first, const SeedMeasurement &second) |
|
| NSWSeed (const MuonNSWSegmentFinderTool *parent, const Muon::MuonSegment &seg) |
| Constructor to build a seed from an existing segment. More...
|
|
| NSWSeed (const MuonNSWSegmentFinderTool *parent, const Amg::Vector3D &pos, const Amg::Vector3D &dir) |
|
double | chi2 () const |
|
size_t | size () const |
| Returns the number of measurements. More...
|
|
const Amg::Vector3D & | pos () const |
| Returns the position of the seed. More...
|
|
const Amg::Vector3D & | dir () const |
| Returns the direction of the seed. More...
|
|
MeasVec | measurements () 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 seed or the seed is invalid. More...
|
|
const Muon::MuonClusterOnTrack * | newCalibClust (std::unique_ptr< const Muon::MuonClusterOnTrack > new_clust) |
| Adds a calibrated cluster to the garbage collection. More...
|
|
SeedOR | overlap (const NSWSeed &other) const |
|
Definition at line 29 of file MuonNSWSegmentFinderTool.h.
◆ MeasVec
◆ SeedMeasCache
◆ SeedOR
Enumerator |
---|
NoOverlap | |
Same | |
SubSet | |
SuperSet | |
Definition at line 89 of file MuonNSWSegmentFinderTool.h.
89 { NoOverlap, Same, SubSet, SuperSet };
◆ NSWSeed() [1/5]
Muon::NSWSeed::NSWSeed |
( |
| ) |
|
|
default |
◆ NSWSeed() [2/5]
◆ NSWSeed() [3/5]
◆ NSWSeed() [4/5]
◆ NSWSeed() [5/5]
◆ add()
Tries to add the measurement to the seeds. Returns false if the measurement is incompatible with the seed or the seed is invalid.
Definition at line 160 of file MuonNSWSegmentFinderTool.cxx.
161 if (!
size() || !meas)
return false;
162 if (
find(meas))
return true;
165 if (!meas->associatedSurface().globalToLocal(
intersect.position,
dir(), lpos_seed))
return false;
168 if (!meas->associatedSurface().insideBounds(lpos_seed))
return false;
173 if (prd->detectorElement()->isEtaZero(prd->identify(), lpos_seed))
return false;
178 if (!prd)
return false;
180 if (!design)
return false;
182 const double dist = std::hypot(padDist.x(), padDist.y());
183 meas.setDistance(dist);
185 return (meas.distance() / uncertD < max_uncert) &&
insert(meas);
192 <<
". covariance: " << (meas.distance() / uncertD) <<
endmsg;
194 return (meas.distance() / uncertD < max_uncert) &&
insert(meas);
◆ channel()
◆ chi2()
double Muon::NSWSeed::chi2 |
( |
| ) |
const |
|
inline |
◆ dir()
◆ distance()
Calculates the minimal distance between seed and measurement.
Definition at line 147 of file MuonNSWSegmentFinderTool.cxx.
152 const double BdotD =
B.dot(D);
155 if (std::abs(
divisor) < std::numeric_limits<double>::epsilon())
return diff.mag();
158 return (
beta * B - delta * D -
diff).mag();
◆ find()
◆ insert() [1/2]
◆ insert() [2/2]
◆ measurements()
MeasVec Muon::NSWSeed::measurements |
( |
| ) |
const |
Definition at line 213 of file MuonNSWSegmentFinderTool.cxx.
215 meas.reserve(
size());
221 std::sort(meas.begin(), meas.end(), [](
const SeedMeasurement&
a,
const SeedMeasurement&
b) {
222 return std::abs(a->globalPosition().z()) < std::abs(b->globalPosition().z());
◆ newCalibClust()
◆ overlap()
◆ pos()
◆ size()
size_t Muon::NSWSeed::size |
( |
| ) |
const |
|
inline |
◆ m_calibClust
◆ m_chi2
double Muon::NSWSeed::m_chi2 {0.} |
|
private |
◆ m_dir
◆ m_measurements
◆ m_padMeasurements
◆ m_parent
◆ m_phiMeasurements
◆ m_pos
◆ m_size
size_t Muon::NSWSeed::m_size {0} |
|
private |
◆ m_width
double Muon::NSWSeed::m_width {0.} |
|
private |
The documentation for this struct was generated from the following files:
Parameters defining the design of the readout sTGC pads.
const MuonNSWSegmentFinderTool * m_parent
Amg::Vector3D m_dir
Seed direction.
Eigen::Matrix< double, 2, 1 > Vector2D
Amg::Vector3D m_pos
Starting position of the seed.
bool msgLvl(const MSG::Level lvl) const
SeedMeasCache m_measurements
Cache the eta measurements.
virtual bool measuresPhi(const Identifier &id) const =0
returns whether channel measures phi or not
std::array< SeedMeasurement, 16 > SeedMeasCache
Helper pair to cache the measurements with the respective distances.
const Amg::Vector3D & pos() const
Returns the position of the seed.
std::set< std::shared_ptr< const Muon::MuonClusterOnTrack > > m_calibClust
Garbage container per seed.
const std::vector< const Trk::MeasurementBase * > & containedMeasurements() const
returns the vector of Trk::MeasurementBase objects
std::pair< std::vector< unsigned int >, bool > res
const Amg::Vector3D & dir() const
Returns the direction of the seed.
double distance(const SeedMeasurement &meas) const
Calculates the minimal distance between seed and measurement.
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
SeedMeasCache m_padMeasurements
Cache the sTGC pad measurements.
int channel(const SeedMeasurement &meas) const
Returns the channel of the measurement on the layer.
std::string to_string(const DetectorType &type)
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
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.
std::optional< double > intersect(const AmgVector(N)&posA, const AmgVector(N)&dirA, const AmgVector(N)&posB, const AmgVector(N)&dirB)
Calculates the point of closest approach of two lines.
std::vector< SeedMeasurement > MeasVec
Returns the contained measurements.
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
bool find(const SeedMeasurement &meas) const
Checks whether the measurement is already part of the seed.
virtual const Amg::Vector3D & globalPosition() const override final
global position
Amg::Vector2D distanceToPad(const Amg::Vector2D &pos, int channel) const
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Base class for Muon cluster RIO_OnTracks.
const Amg::Vector3D & globalDirection() const
global direction