#include <MTDDetSector.h>
Public Member Functions | |
const std::vector< const GeomDet * > & | basicComponents () const override |
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 |
void | compatibleDetsLine (const size_t idetMin, std::vector< DetWithState > &result, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est) const |
void | compatibleDetsV (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const override |
const std::vector< const GeometricSearchDet * > & | components () const override |
Returns basic components, if any. More... | |
GeometricSearchDet (bool doHaveGroups) | |
std::vector< DetGroup > | groupedCompatibleDets (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override |
size_t | hshift (const uint32_t detid, const int horizontalShift) const |
MTDDetSector (std::vector< const GeomDet *>::const_iterator first, std::vector< const GeomDet *>::const_iterator last, const MTDTopology &topo) | |
Construct from iterators on GeomDet*. More... | |
MTDDetSector (const std::vector< const GeomDet *> &dets, const MTDTopology &topo) | |
Construct from a vector of GeomDet*. More... | |
const BoundDiskSector & | specificSurface () const |
const BoundSurface & | surface () const final |
The surface of the GeometricSearchDet. More... | |
size_t | vshift (const uint32_t detid, const int verticalShift, size_t &closest) const |
~MTDDetSector () 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 () |
Protected Member Functions | |
bool | add (size_t idet, std::vector< DetWithState > &result, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est) const |
void | setDisk (BoundDiskSector *diskS) |
Private Member Functions | |
void | init () |
Private Attributes | |
std::vector< const GeomDet * > | theDets |
ReferenceCountingPointer< BoundDiskSector > | theDiskS |
const MTDTopology * | topo_ |
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 Attributes inherited from GeometricSearchDet | |
bool | haveGroups |
GeomDetCompatibilityChecker | theCompatibilityChecker |
Definition at line 12 of file MTDDetSector.h.
MTDDetSector::MTDDetSector | ( | std::vector< const GeomDet *>::const_iterator | first, |
std::vector< const GeomDet *>::const_iterator | last, | ||
const MTDTopology & | topo | ||
) |
Construct from iterators on GeomDet*.
Definition at line 21 of file MTDDetSector.cc.
References init().
MTDDetSector::MTDDetSector | ( | const std::vector< const GeomDet *> & | dets, |
const MTDTopology & | topo | ||
) |
Construct from a vector of GeomDet*.
Definition at line 28 of file MTDDetSector.cc.
References init().
|
inlineoverride |
Definition at line 24 of file MTDDetSector.h.
|
protected |
Definition at line 165 of file MTDDetSector.cc.
References TrajectoryStateOnSurface::globalPosition(), GeomDetCompatibilityChecker::isCompatible(), LogTrace, mag2(), mps_fire::result, mathSSE::sqrt(), GeometricSearchDet::theCompatibilityChecker, and theDets.
Referenced by compatibleDets(), compatibleDetsLine(), and counter.Counter::register().
|
inlineoverridevirtual |
Implements GeometricSearchDet.
Definition at line 28 of file MTDDetSector.h.
References theDets.
Referenced by compatibleDets().
|
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 47 of file MTDDetSector.cc.
References MeasurementEstimator::estimate(), alignBH_cfg::fixed, TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localPosition(), LogTrace, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), Propagator::propagate(), specificSurface(), 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 69 of file MTDDetSector.cc.
References add(), basicComponents(), pv::closest(), compatible(), compatibleDetsLine(), alignBH_cfg::fixed, TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), LogTrace, PV3DBase< T, PVType, FrameType >::mag(), mag2(), SiStripPI::max, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), nano_mu_digi_cff::rawId, mps_fire::result, findQualityFiles::size, theDets, vshift(), and PV3DBase< T, PVType, FrameType >::z().
void MTDDetSector::compatibleDetsLine | ( | const size_t | idetMin, |
std::vector< DetWithState > & | result, | ||
const TrajectoryStateOnSurface & | tsos, | ||
const Propagator & | prop, | ||
const MeasurementEstimator & | est | ||
) | const |
Definition at line 202 of file MTDDetSector.cc.
References add(), hshift(), nano_mu_digi_cff::rawId, mps_fire::result, and theDets.
Referenced by compatibleDets().
|
overridevirtual |
|
overridevirtual |
Returns basic components, if any.
Returns direct components, if any
Implements GeometricSearchDet.
Definition at line 40 of file MTDDetSector.cc.
References mps_fire::result.
|
inline |
Definition at line 24 of file GeometricSearchDet.h.
|
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 155 of file MTDDetSector.cc.
References mps_fire::result.
size_t MTDDetSector::hshift | ( | const uint32_t | detid, |
const int | horizontalShift | ||
) | const |
Definition at line 223 of file MTDDetSector.cc.
References MTDTopology::hshiftETL(), and topo_.
Referenced by compatibleDetsLine().
|
private |
Definition at line 33 of file MTDDetSector.cc.
References setDisk(), and theDets.
Referenced by MTDDetSector().
|
inlineprotected |
Definition at line 65 of file MTDDetSector.h.
References theDiskS.
Referenced by init().
|
inline |
Definition at line 53 of file MTDDetSector.h.
References theDiskS.
Referenced by compatible().
|
inlinefinalvirtual |
The surface of the GeometricSearchDet.
Implements GeometricSearchDet.
Definition at line 30 of file MTDDetSector.h.
References theDiskS.
size_t MTDDetSector::vshift | ( | const uint32_t | detid, |
const int | verticalShift, | ||
size_t & | closest | ||
) | const |
Definition at line 227 of file MTDDetSector.cc.
References pv::closest(), topo_, and MTDTopology::vshiftETL().
Referenced by compatibleDets().
|
private |
Definition at line 75 of file MTDDetSector.h.
Referenced by add(), basicComponents(), compatibleDets(), compatibleDetsLine(), and init().
|
private |
Definition at line 74 of file MTDDetSector.h.
Referenced by setDisk(), specificSurface(), and surface().
|
private |
Definition at line 77 of file MTDDetSector.h.