CMS 3D CMS Logo

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