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  public:
19  typedef std::pair<const GeomDet*,TrajectoryStateOnSurface> DetWithState;
23 
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 
44 
53  virtual std::pair<bool, TrajectoryStateOnSurface>
55  const MeasurementEstimator&) const=0;
56 
64  virtual std::vector<DetWithState>
65  compatibleDets( const TrajectoryStateOnSurface& startingState,
66  const Propagator& prop,
67  const MeasurementEstimator& est) const;
68  virtual void
69  compatibleDetsV( const TrajectoryStateOnSurface& startingState,
70  const Propagator& prop,
71  const MeasurementEstimator& est,
72  std::vector<DetWithState>& result) const; //=0;
73 
93  virtual std::vector<DetGroup>
94  groupedCompatibleDets( const TrajectoryStateOnSurface& startingState,
95  const Propagator& prop,
96  const MeasurementEstimator& est) const;
97 
98  virtual void
100  const Propagator& prop,
101  const MeasurementEstimator& est,
102  std::vector<DetGroup> & result) const; // = 0;
103 
104 
105  virtual bool hasGroups() const = 0;
106 
107  protected:
109 
110 };
111 
112 
114 public:
116 
117  void
118  compatibleDetsV( const TrajectoryStateOnSurface& startingState,
119  const Propagator& prop,
120  const MeasurementEstimator& est,
121  std::vector<DetWithState> & result) const;
122 
123  bool hasGroups() const {return true;}
124 
125 };
126 
127 #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
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
void compatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const
virtual const Surface::PositionType & position() const
Returns position of the surface.
virtual bool hasGroups() const =0
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
GeometricSearchDet::DetWithState DetWithState