CMS 3D CMS Logo

MTDDetSector.h
Go to the documentation of this file.
1 #ifndef RecoMTD_DetLayers_MTDDetSector_H
2 #define RecoMTD_DetLayers_MTDDetSector_H
3 
6 
7 #include <ostream>
8 
9 class GeomDet;
10 
12 public:
14 
16  MTDDetSector(std::vector<const GeomDet*>::const_iterator first, std::vector<const GeomDet*>::const_iterator last);
17 
19  MTDDetSector(const std::vector<const GeomDet*>& dets);
20 
21  ~MTDDetSector() override{};
22 
23  // GeometricSearchDet structure
24 
25  const std::vector<const GeomDet*>& basicComponents() const override { return theDets; }
26 
27  const BoundSurface& surface() const final { return *theDiskS; }
28 
29  const std::vector<const GeometricSearchDet*>& components() const override;
30 
31  std::pair<bool, TrajectoryStateOnSurface> compatible(const TrajectoryStateOnSurface& ts,
32  const Propagator& prop,
33  const MeasurementEstimator& est) const override;
34 
35  std::vector<DetWithState> compatibleDets(const TrajectoryStateOnSurface& startingState,
36  const Propagator& prop,
37  const MeasurementEstimator& est) const override;
38 
39  void compatibleDetsV(const TrajectoryStateOnSurface& startingState,
40  const Propagator& prop,
41  const MeasurementEstimator& est,
42  std::vector<DetWithState>& result) const override;
43 
44  std::vector<DetGroup> groupedCompatibleDets(const TrajectoryStateOnSurface& startingState,
45  const Propagator& prop,
46  const MeasurementEstimator& est) const override;
47 
48  // GeometricSearchDet extension
49 
50  const BoundDiskSector& specificSurface() const { return *theDiskS; }
51 
52 protected:
53  void setDisk(BoundDiskSector* diskS) { theDiskS = diskS; }
54 
55  bool add(size_t idet,
56  std::vector<DetWithState>& result,
57  const TrajectoryStateOnSurface& tsos,
58  const Propagator& prop,
59  const MeasurementEstimator& est) const;
60 
61 private:
63  std::vector<const GeomDet*> theDets;
64 
65  // Window of detid ordered modules around that closest to the track extrapolation on the sector surface
66  // needed to limit the size of the vector of distances to sort
67  // value 50 based on the possible mismatch of module number between adjacent
68  // modules, due to left-right type imparity
69 
70  static constexpr size_t detsRange = 50;
71 
72  void init();
73 };
74 
75 std::ostream& operator<<(std::ostream&, const MTDDetSector&);
76 
77 #endif
MeasurementEstimator
Definition: MeasurementEstimator.h:19
GeometricSearchDet::GeometricSearchDet
GeometricSearchDet(bool doHaveGroups)
Definition: GeometricSearchDet.h:24
GeomDet
Definition: GeomDet.h:27
MTDDetSector::theDets
std::vector< const GeomDet * > theDets
Definition: MTDDetSector.h:63
MTDDetSector::compatibleDets
std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override
Definition: MTDDetSector.cc:60
MTDDetSector::compatibleDetsV
void compatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const override
Definition: MTDDetSector.cc:133
GeometricSearchDet.h
Surface
Definition: Surface.h:36
ReferenceCountingPointer< BoundDiskSector >
watchdog.const
const
Definition: watchdog.py:83
Propagator
Definition: Propagator.h:44
MTDDetSector::MTDDetSector
MTDDetSector(std::vector< const GeomDet * >::const_iterator first, std::vector< const GeomDet * >::const_iterator last)
Construct from iterators on GeomDet*.
Definition: MTDDetSector.cc:17
MTDDetSector::groupedCompatibleDets
std::vector< DetGroup > groupedCompatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override
Definition: MTDDetSector.cc:140
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
dqmdumpme.last
last
Definition: dqmdumpme.py:56
MTDDetSector::~MTDDetSector
~MTDDetSector() override
Definition: MTDDetSector.h:21
MTDDetSector::add
bool add(size_t idet, std::vector< DetWithState > &result, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est) const
Definition: MTDDetSector.cc:150
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:112
MTDDetSector::theDiskS
ReferenceCountingPointer< BoundDiskSector > theDiskS
Definition: MTDDetSector.h:62
MTDDetSector::specificSurface
const BoundDiskSector & specificSurface() const
Definition: MTDDetSector.h:50
MTDDetSector::compatible
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est) const override
Definition: MTDDetSector.cc:38
BoundDiskSector
Definition: BoundDiskSector.h:7
operator<<
std::ostream & operator<<(std::ostream &, const MTDDetSector &)
Definition: MTDDetSector.cc:164
MTDDetSector::components
const std::vector< const GeometricSearchDet * > & components() const override
Returns basic components, if any.
Definition: MTDDetSector.cc:31
MTDDetSector::init
void init()
Definition: MTDDetSector.cc:24
MTDDetSector::setDisk
void setDisk(BoundDiskSector *diskS)
Definition: MTDDetSector.h:53
MTDDetSector::basicComponents
const std::vector< const GeomDet * > & basicComponents() const override
Definition: MTDDetSector.h:25
BoundDiskSector.h
mps_fire.result
result
Definition: mps_fire.py:311
MTDDetSector
Definition: MTDDetSector.h:11
GeometricSearchDet
Definition: GeometricSearchDet.h:17
MTDDetSector::detsRange
static constexpr size_t detsRange
Definition: MTDDetSector.h:70
MTDDetSector::surface
const BoundSurface & surface() const final
The surface of the GeometricSearchDet.
Definition: MTDDetSector.h:27