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 
7 
8 #include <ostream>
9 
10 class GeomDet;
11 
13 public:
15 
17  MTDDetSector(std::vector<const GeomDet*>::const_iterator first,
18  std::vector<const GeomDet*>::const_iterator last,
19  const MTDTopology& topo);
20 
22  MTDDetSector(const std::vector<const GeomDet*>& dets, const MTDTopology& topo);
23 
24  ~MTDDetSector() override{};
25 
26  // GeometricSearchDet structure
27 
28  const std::vector<const GeomDet*>& basicComponents() const override { return theDets; }
29 
30  const BoundSurface& surface() const final { return *theDiskS; }
31 
32  const std::vector<const GeometricSearchDet*>& components() const override;
33 
34  std::pair<bool, TrajectoryStateOnSurface> compatible(const TrajectoryStateOnSurface& ts,
35  const Propagator& prop,
36  const MeasurementEstimator& est) const override;
37 
38  std::vector<DetWithState> compatibleDets(const TrajectoryStateOnSurface& startingState,
39  const Propagator& prop,
40  const MeasurementEstimator& est) const override;
41 
42  void compatibleDetsV(const TrajectoryStateOnSurface& startingState,
43  const Propagator& prop,
44  const MeasurementEstimator& est,
45  std::vector<DetWithState>& result) const override;
46 
47  std::vector<DetGroup> groupedCompatibleDets(const TrajectoryStateOnSurface& startingState,
48  const Propagator& prop,
49  const MeasurementEstimator& est) const override;
50 
51  // GeometricSearchDet extension
52 
53  const BoundDiskSector& specificSurface() const { return *theDiskS; }
54 
55  void compatibleDetsLine(const size_t idetMin,
56  std::vector<DetWithState>& result,
57  const TrajectoryStateOnSurface& tsos,
58  const Propagator& prop,
59  const MeasurementEstimator& est) const;
60 
61  size_t hshift(const uint32_t detid, const int horizontalShift) const;
62  size_t vshift(const uint32_t detid, const int verticalShift, size_t& closest) const;
63 
64 protected:
65  void setDisk(BoundDiskSector* diskS) { theDiskS = diskS; }
66 
67  bool add(size_t idet,
68  std::vector<DetWithState>& result,
69  const TrajectoryStateOnSurface& tsos,
70  const Propagator& prop,
71  const MeasurementEstimator& est) const;
72 
73 private:
75  std::vector<const GeomDet*> theDets;
76 
78 
79  void init();
80 };
81 
82 std::ostream& operator<<(std::ostream&, const MTDDetSector&);
83 
84 #endif
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est) const override
Definition: MTDDetSector.cc:47
int closest(std::vector< int > const &vec, int value)
const BoundDiskSector & specificSurface() const
Definition: MTDDetSector.h:53
const std::vector< const GeometricSearchDet * > & components() const override
Returns basic components, if any.
Definition: MTDDetSector.cc:40
std::vector< const GeomDet * > theDets
Definition: MTDDetSector.h:75
void compatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const override
GeometricSearchDet(bool doHaveGroups)
void setDisk(BoundDiskSector *diskS)
Definition: MTDDetSector.h:65
MTDDetSector(std::vector< const GeomDet *>::const_iterator first, std::vector< const GeomDet *>::const_iterator last, const MTDTopology &topo)
Construct from iterators on GeomDet*.
Definition: MTDDetSector.cc:21
std::ostream & operator<<(std::ostream &, const MTDDetSector &)
size_t vshift(const uint32_t detid, const int verticalShift, size_t &closest) const
const BoundSurface & surface() const final
The surface of the GeometricSearchDet.
Definition: MTDDetSector.h:30
std::vector< DetGroup > groupedCompatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override
std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override
Definition: MTDDetSector.cc:69
ReferenceCountingPointer< BoundDiskSector > theDiskS
Definition: MTDDetSector.h:74
const std::vector< const GeomDet * > & basicComponents() const override
Definition: MTDDetSector.h:28
const MTDTopology * topo_
Definition: MTDDetSector.h:77
~MTDDetSector() override
Definition: MTDDetSector.h:24
bool add(size_t idet, std::vector< DetWithState > &result, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est) const
void compatibleDetsLine(const size_t idetMin, std::vector< DetWithState > &result, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est) const
size_t hshift(const uint32_t detid, const int horizontalShift) const