CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
46 
55  virtual std::pair<bool, TrajectoryStateOnSurface>
57  const MeasurementEstimator&) const=0;
58 
66  virtual std::vector<DetWithState>
67  compatibleDets( const TrajectoryStateOnSurface& startingState,
68  const Propagator& prop,
69  const MeasurementEstimator& est) const;
70  virtual void
71  compatibleDetsV( const TrajectoryStateOnSurface& startingState,
72  const Propagator& prop,
73  const MeasurementEstimator& est,
74  std::vector<DetWithState>& result) const; //=0;
75 
95  virtual std::vector<DetGroup>
96  groupedCompatibleDets( const TrajectoryStateOnSurface& startingState,
97  const Propagator& prop,
98  const MeasurementEstimator& est) const;
99 
100  virtual void
101  groupedCompatibleDetsV( const TrajectoryStateOnSurface& startingState,
102  const Propagator& prop,
103  const MeasurementEstimator& est,
104  std::vector<DetGroup> & result) const; // = 0;
105 
106 
107  bool hasGroups() const { return haveGroups; }
108 
109  protected:
112 
113 };
114 
115 
116 #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.
BoundSurface::PositionType PositionType
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.
virtual void groupedCompatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const
GeometricSearchDet(bool doHaveGroups)
GeomDetCompatibilityChecker theCompatibilityChecker
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
TrajectoryStateOnSurface TrajectoryState
tuple result
Definition: query.py:137
virtual const Surface::PositionType & position() const
Returns position of the surface.
virtual const std::vector< const GeomDet * > & basicComponents() const =0
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