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 public:
19  typedef std::pair<const GeomDet*, TrajectoryStateOnSurface> DetWithState;
23 
24  GeometricSearchDet(bool doHaveGroups) : haveGroups(doHaveGroups) {}
25  virtual ~GeometricSearchDet();
26 
28  virtual const BoundSurface& surface() const = 0;
29 
31  virtual const Surface::PositionType& position() const { return surface().position(); }
32 
34  //virtual std::vector< const GeomDet*> basicComponents() const = 0;
35 
37  virtual const std::vector<const GeometricSearchDet*>& components() const = 0;
38 
39  /* Returns basic components. For the moment they are GeomDet,
40  * but they could become MeasurementDet
41  */
42  virtual const std::vector<const GeomDet*>& basicComponents() const = 0;
43 
52  virtual std::pair<bool, TrajectoryStateOnSurface> compatible(const TrajectoryStateOnSurface& ts,
53  const Propagator&,
54  const MeasurementEstimator&) const = 0;
55 
63  virtual std::vector<DetWithState> compatibleDets(const TrajectoryStateOnSurface& startingState,
64  const Propagator& prop,
65  const MeasurementEstimator& est) const;
66  virtual void compatibleDetsV(const TrajectoryStateOnSurface& startingState,
67  const Propagator& prop,
68  const MeasurementEstimator& est,
69  std::vector<DetWithState>& result) const; //=0;
70 
90  virtual std::vector<DetGroup> groupedCompatibleDets(const TrajectoryStateOnSurface& startingState,
91  const Propagator& prop,
92  const MeasurementEstimator& est) const;
93 
94  virtual void groupedCompatibleDetsV(const TrajectoryStateOnSurface& startingState,
95  const Propagator& prop,
96  const MeasurementEstimator& est,
97  std::vector<DetGroup>& result) const; // = 0;
98 
99  bool hasGroups() const { return haveGroups; }
100 
101 protected:
104 };
105 
106 #endif
virtual std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const =0
BoundSurface::RotationType RotationType
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
virtual const Surface::PositionType & position() const
Returns position of the surface.
BoundSurface::PositionType PositionType
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
virtual std::vector< DetGroup > groupedCompatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
virtual const std::vector< const GeometricSearchDet * > & components() const =0
Returns basic components, if any.
GeometricSearchDet(bool doHaveGroups)
GeomDetCompatibilityChecker theCompatibilityChecker
TrajectoryStateOnSurface TrajectoryState
const PositionType & position() const
virtual void groupedCompatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const
virtual const std::vector< const GeomDet * > & basicComponents() const =0
virtual void compatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState