CMS 3D CMS Logo

GeometricSearchDet.h
Go to the documentation of this file.
1 #ifndef DetLayers_GeometricSearchDet_h
2 #define DetLayers_GeometricSearchDet_h
3 
6 
10 
12 
13 #include <vector>
14 
16 
18 
20 public:
21  typedef std::pair<const GeomDet*, TrajectoryStateOnSurface> DetWithState;
25 
26  GeometricSearchDet(bool doHaveGroups) : haveGroups(doHaveGroups) {}
27  virtual ~GeometricSearchDet();
28 
30  virtual const BoundSurface& surface() const = 0;
31 
33  virtual const Surface::PositionType& position() const { return surface().position(); }
34 
36  //virtual std::vector< const GeomDet*> basicComponents() const = 0;
37 
39  virtual const std::vector<const GeometricSearchDet*>& components() const = 0;
40 
41  /* Returns basic components. For the moment they are GeomDet,
42  * but they could become MeasurementDet
43  */
44  virtual const std::vector<const GeomDet*>& basicComponents() const = 0;
45 
54  virtual std::pair<bool, TrajectoryStateOnSurface> compatible(const TrajectoryStateOnSurface& ts,
55  const Propagator&,
56  const MeasurementEstimator&) const = 0;
57 
65  virtual std::vector<DetWithState> compatibleDets(const TrajectoryStateOnSurface& startingState,
66  const Propagator& prop,
67  const MeasurementEstimator& est) const;
68  virtual void compatibleDetsV(const TrajectoryStateOnSurface& startingState,
69  const Propagator& prop,
70  const MeasurementEstimator& est,
71  std::vector<DetWithState>& result) const; //=0;
72 
92  virtual std::vector<DetGroup> groupedCompatibleDets(const TrajectoryStateOnSurface& startingState,
93  const Propagator& prop,
94  const MeasurementEstimator& est) const;
95 
96  virtual void groupedCompatibleDetsV(const TrajectoryStateOnSurface& startingState,
97  const Propagator& prop,
98  const MeasurementEstimator& est,
99  std::vector<DetGroup>& result) const; // = 0;
100 
101  bool hasGroups() const { return haveGroups; }
102 
103 protected:
106 };
107 
108 #endif
BoundSurface::RotationType RotationType
BoundSurface::PositionType PositionType
virtual std::vector< DetGroup > groupedCompatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
virtual const std::vector< const GeomDet * > & basicComponents() const =0
virtual void groupedCompatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const
virtual const std::vector< const GeometricSearchDet * > & components() const =0
Returns basic components, if any.
GeometricSearchDet(bool doHaveGroups)
GeomDetCompatibilityChecker theCompatibilityChecker
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
TrajectoryStateOnSurface TrajectoryState
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
virtual std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const =0
virtual const Surface::PositionType & position() const
Returns position of the surface.
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
const PositionType & position() const
virtual void compatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const