#include <MuDetRing.h>
Public Member Functions | |
std::pair< bool, TrajectoryStateOnSurface > | compatible (const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est) const override |
std::vector< DetWithState > | compatibleDets (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override |
const std::vector< const GeometricSearchDet * > & | components () const override |
Returns basic components, if any. More... | |
std::vector< DetGroup > | groupedCompatibleDets (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override |
MuDetRing (std::vector< const GeomDet * >::const_iterator first, std::vector< const GeomDet * >::const_iterator last) | |
Construct from iterators on GeomDet*. More... | |
MuDetRing (const std::vector< const GeomDet * > &dets) | |
Construct from a vector of GeomDet*. More... | |
~MuDetRing () override | |
Public Member Functions inherited from ForwardDetRingOneZ | |
const std::vector< const GeomDet * > & | basicComponents () const override |
ForwardDetRingOneZ (std::vector< const GeomDet * >::const_iterator first, std::vector< const GeomDet * >::const_iterator last) | |
Construct from iterators on Det*. More... | |
ForwardDetRingOneZ (const std::vector< const GeomDet * > &dets) | |
~ForwardDetRingOneZ () override | |
Public Member Functions inherited from ForwardDetRing | |
void | compatibleDetsV (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const override |
const BoundDisk & | specificSurface () const |
Return the ring surface as a BoundDisk. More... | |
const BoundSurface & | surface () const final |
The surface of the GeometricSearchDet. More... | |
~ForwardDetRing () override | |
Public Member Functions inherited from GeometricSearchDet | |
GeometricSearchDet (bool doHaveGroups) | |
virtual void | groupedCompatibleDetsV (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const |
bool | hasGroups () const |
virtual const Surface::PositionType & | position () const |
Returns position of the surface. More... | |
virtual | ~GeometricSearchDet () |
Private Types | |
typedef PeriodicBinFinderInPhi < float > | BinFinderType |
Private Member Functions | |
void | init () |
Private Attributes | |
BinFinderType | theBinFinder |
Additional Inherited Members | |
Public Types inherited from GeometricSearchDet | |
typedef std::pair< const GeomDet *, TrajectoryStateOnSurface > | DetWithState |
typedef BoundSurface::PositionType | PositionType |
typedef BoundSurface::RotationType | RotationType |
typedef TrajectoryStateOnSurface | TrajectoryState |
Protected Member Functions inherited from ForwardDetRingOneZ | |
bool | add (int idet, std::vector< DetWithState > &result, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est) const |
Protected Member Functions inherited from ForwardDetRing | |
void | setDisk (BoundDisk *disk) |
Set the rod's disk. More... | |
Protected Attributes inherited from GeometricSearchDet | |
bool | haveGroups |
GeomDetCompatibilityChecker | theCompatibilityChecker |
A ring of periodic, possibly overlapping vertical detectors. Designed for forward muon CSC/RPC chambers.
Definition at line 16 of file MuDetRing.h.
|
private |
Definition at line 43 of file MuDetRing.h.
MuDetRing::MuDetRing | ( | std::vector< const GeomDet * >::const_iterator | first, |
std::vector< const GeomDet * >::const_iterator | last | ||
) |
Construct from iterators on GeomDet*.
Definition at line 17 of file MuDetRing.cc.
References init().
MuDetRing::MuDetRing | ( | const std::vector< const GeomDet * > & | dets | ) |
Construct from a vector of GeomDet*.
Definition at line 22 of file MuDetRing.cc.
References init().
|
override |
Definition at line 28 of file MuDetRing.cc.
|
overridevirtual |
tests the geometrical compatibility of the Det with the predicted state. The FreeTrajectoryState argument is propagated to the Det surface using the Propagator argument. The resulting TrajectoryStateOnSurface is tested for compatibility with the surface bounds. If compatible, a std::pair< true, propagatedState> is returned. If the propagation fails, or if the state is not compatible, a std::pair< false, propagatedState> is returned.
Implements GeometricSearchDet.
Definition at line 37 of file MuDetRing.cc.
References MeasurementEstimator::estimate(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localPosition(), LogTrace, metname, PV3DBase< T, PVType, FrameType >::perp(), Propagator::propagate(), ForwardDetRing::specificSurface(), AlCaHLTBitMon_QueryRunRegistry::string, and PV3DBase< T, PVType, FrameType >::z().
Referenced by compatibleDets().
|
overridevirtual |
Returns all Dets compatible with a trajectory state according to the estimator est. The startingState should be propagated to the surface of each compatible Det using the Propagator passed as an argument. The default implementation should be overridden in dets with specific surface types to avoid propagation to a generic Surface
Reimplemented from GeometricSearchDet.
Definition at line 58 of file MuDetRing.cc.
References ForwardDetRingOneZ::add(), ForwardDetRingOneZ::basicComponents(), PeriodicBinFinderInPhi< T >::binIndex(), compatible(), TrajectoryStateOnSurface::globalPosition(), LogTrace, metname, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), GeometricSearchDet::position(), GloballyPositioned< T >::position(), mps_fire::result, ForwardDetRing::specificSurface(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, ForwardDetRing::surface(), theBinFinder, and PV3DBase< T, PVType, FrameType >::z().
|
overridevirtual |
Returns basic components, if any.
Returns direct components, if any
Implements GeometricSearchDet.
Definition at line 30 of file MuDetRing.cc.
References gather_cfg::cout, and mps_fire::result.
|
overridevirtual |
Similar to compatibleDets(), but the compatible Dets are grouped in one or more groups. Dets are put in the same group if they are mutually exclusive for track crossing, i.e. a reconstructible track cannot cross more than one Det from a group. Pathological tracks (spirals etc.) can of course violate this rule.
The DetGroups are sorted in the sequence of crossing by a track. In order to define the direction of crossing the Propagator used in this method should have a defined direction() : either "alongMomentum" or "oppositeToMomentum" but not "anyDirection".
The three signatures of this method differ by the input trajectory state arguments: the starting state can be a TrajectoryStateOnSurface or a FreeTrajectoryState, and the state on this CompositeDet may be already known or not. The last two arguments are as for the method compatibleDets().
First signature: The first argument is a TrajectoryStateOnSurface, usually not on the surface of this CompositeDet.
Reimplemented from GeometricSearchDet.
Definition at line 144 of file MuDetRing.cc.
References gather_cfg::cout, and mps_fire::result.
|
private |
Definition at line 24 of file MuDetRing.cc.
References ForwardDetRingOneZ::basicComponents(), phi, GeometricSearchDet::position(), findQualityFiles::size, and theBinFinder.
Referenced by MuDetRing().
|
private |
Definition at line 44 of file MuDetRing.h.
Referenced by compatibleDets(), and init().