CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuRingForwardDoubleLayer.h
Go to the documentation of this file.
1 #ifndef DetLayers_MuRingForwardDoubleLayer_H
2 #define DetLayers_MuRingForwardDoubleLayer_H
3 
16 
17 class ForwardDetRing;
18 class ForwardDetRingBuilder;
19 class GeomDet;
20 
22 
23  public:
24 
26  MuRingForwardDoubleLayer(const std::vector<const ForwardDetRing*>& frontRings,
27  const std::vector<const ForwardDetRing*>& backRings);
28 
30 
31 
32  // GeometricSearchDet interface
33 
34  virtual const std::vector<const GeomDet*>& basicComponents() const {return theBasicComponents;}
35 
36  virtual const std::vector<const GeometricSearchDet*>& components() const {return theComponents;}
37 
38  bool isInsideOut(const TrajectoryStateOnSurface&tsos) const;
39 
40  // tries closest layer first
41  virtual std::pair<bool, TrajectoryStateOnSurface>
43  const MeasurementEstimator&) const;
44 
45  virtual std::vector<DetWithState>
46  compatibleDets( const TrajectoryStateOnSurface& startingState,
47  const Propagator& prop,
48  const MeasurementEstimator& est) const;
49 
50  virtual std::vector<DetGroup>
51  groupedCompatibleDets( const TrajectoryStateOnSurface& startingState,
52  const Propagator& prop,
53  const MeasurementEstimator& est) const;
54 
55 
56  virtual bool hasGroups() const {return true;}
57 
58 
59  // DetLayer interface
60  virtual SubDetector subDetector() const {return theBackLayer.subDetector();}
61 
62 
63  // Extension of the interface
64 
66  virtual const std::vector<const ForwardDetRing*>& rings() const {return theRings;}
67 
68  bool isCrack(const GlobalPoint & gp) const;
69 
70  const MuRingForwardLayer * frontLayer() const {return &theFrontLayer;}
71  const MuRingForwardLayer * backLayer() const {return &theBackLayer;}
72 
73  void selfTest() const;
74  protected:
75  virtual BoundDisk * computeSurface();
76  private:
79  std::vector<const ForwardDetRing*> theRings;
80  std::vector <const GeometricSearchDet*> theComponents; // duplication of the above
81  std::vector<const GeomDet*> theBasicComponents; // All chambers
82 
83 };
84 #endif
85 
virtual std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &) const
virtual const std::vector< const GeometricSearchDet * > & components() const
Returns basic components, if any.
virtual const std::vector< const GeomDet * > & basicComponents() const
std::vector< const GeomDet * > theBasicComponents
std::vector< const ForwardDetRing * > theRings
const MuRingForwardLayer * backLayer() const
virtual bool hasGroups() const
virtual std::vector< DetGroup > groupedCompatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
bool isCrack(const GlobalPoint &gp) const
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
virtual const std::vector< const ForwardDetRing * > & rings() const
Return the vector of rings.
virtual SubDetector subDetector() const
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
virtual SubDetector subDetector() const
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
const MuRingForwardLayer * frontLayer() const
virtual BoundDisk * computeSurface()
std::vector< const GeometricSearchDet * > theComponents
bool isInsideOut(const TrajectoryStateOnSurface &tsos) const
MuRingForwardDoubleLayer(const std::vector< const ForwardDetRing * > &frontRings, const std::vector< const ForwardDetRing * > &backRings)
Constructor, takes ownership of pointers.