CMS 3D CMS Logo

MTDRingForwardDoubleLayer.h
Go to the documentation of this file.
1 #ifndef DetLayers_MTDRingForwardDoubleLayer_H
2 #define DetLayers_MTDRingForwardDoubleLayer_H
3 
14 
15 class ForwardDetRing;
16 class ForwardDetRingBuilder;
17 class GeomDet;
18 
20 
21  public:
22 
24  MTDRingForwardDoubleLayer(const std::vector<const ForwardDetRing*>& frontRings,
25  const std::vector<const ForwardDetRing*>& backRings);
26 
28 
29 
30  // GeometricSearchDet interface
31 
32  const std::vector<const GeomDet*>& basicComponents() const override {return theBasicComponents;}
33 
34  const std::vector<const GeometricSearchDet*>& components() const override {return theComponents;}
35 
36  bool isInsideOut(const TrajectoryStateOnSurface&tsos) const;
37 
38  // tries closest layer first
39  std::pair<bool, TrajectoryStateOnSurface>
41  const MeasurementEstimator&) const override;
42 
43  std::vector<DetWithState>
44  compatibleDets( const TrajectoryStateOnSurface& startingState,
45  const Propagator& prop,
46  const MeasurementEstimator& est) const override;
47 
48  std::vector<DetGroup>
49  groupedCompatibleDets( const TrajectoryStateOnSurface& startingState,
50  const Propagator& prop,
51  const MeasurementEstimator& est) const override;
52 
53 
54  // DetLayer interface
55  SubDetector subDetector() const override {return theBackLayer.subDetector();}
56 
57 
58  // Extension of the interface
59 
61  virtual const std::vector<const ForwardDetRing*>& rings() const {return theRings;}
62 
63  bool isCrack(const GlobalPoint & gp) const;
64 
65  const MTDRingForwardLayer * frontLayer() const {return &theFrontLayer;}
66  const MTDRingForwardLayer * backLayer() const {return &theBackLayer;}
67 
68  void selfTest() const;
69  protected:
70  BoundDisk * computeSurface() override;
71  private:
74  std::vector<const ForwardDetRing*> theRings;
75  std::vector <const GeometricSearchDet*> theComponents; // duplication of the above
76  std::vector<const GeomDet*> theBasicComponents; // All chambers
77 
78 };
79 #endif
80 
std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override
MTDRingForwardDoubleLayer(const std::vector< const ForwardDetRing * > &frontRings, const std::vector< const ForwardDetRing * > &backRings)
Constructor, takes ownership of pointers.
BoundDisk * computeSurface() override
std::vector< const ForwardDetRing * > theRings
const MTDRingForwardLayer * frontLayer() const
const std::vector< const GeomDet * > & basicComponents() const override
bool isCrack(const GlobalPoint &gp) const
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &) const override
std::vector< const GeomDet * > theBasicComponents
virtual const std::vector< const ForwardDetRing * > & rings() const
Return the vector of rings.
SubDetector subDetector() const override
const std::vector< const GeometricSearchDet * > & components() const override
bool isInsideOut(const TrajectoryStateOnSurface &tsos) const
SubDetector subDetector() const override
std::vector< const GeometricSearchDet * > theComponents
std::vector< DetGroup > groupedCompatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override
const MTDRingForwardLayer * backLayer() const