File indexing completed on 2024-04-06 12:26:52
0001 #ifndef DetLayers_MuRingForwardDoubleLayer_H
0002 #define DetLayers_MuRingForwardDoubleLayer_H
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "TrackingTools/DetLayers/interface/RingedForwardLayer.h"
0012 #include "Utilities/BinningTools/interface/BaseBinFinder.h"
0013 #include "RecoMuon/DetLayers/interface/MuRingForwardLayer.h"
0014
0015 class ForwardDetRing;
0016 class ForwardDetRingBuilder;
0017 class GeomDet;
0018
0019 class MuRingForwardDoubleLayer : public RingedForwardLayer {
0020 public:
0021
0022 MuRingForwardDoubleLayer(const std::vector<const ForwardDetRing*>& frontRings,
0023 const std::vector<const ForwardDetRing*>& backRings);
0024
0025 ~MuRingForwardDoubleLayer() override {}
0026
0027
0028
0029 const std::vector<const GeomDet*>& basicComponents() const override { return theBasicComponents; }
0030
0031 const std::vector<const GeometricSearchDet*>& components() const override { return theComponents; }
0032
0033 bool isInsideOut(const TrajectoryStateOnSurface& tsos) const;
0034
0035
0036 std::pair<bool, TrajectoryStateOnSurface> compatible(const TrajectoryStateOnSurface&,
0037 const Propagator&,
0038 const MeasurementEstimator&) const override;
0039
0040 std::vector<DetWithState> compatibleDets(const TrajectoryStateOnSurface& startingState,
0041 const Propagator& prop,
0042 const MeasurementEstimator& est) const override;
0043
0044 std::vector<DetGroup> groupedCompatibleDets(const TrajectoryStateOnSurface& startingState,
0045 const Propagator& prop,
0046 const MeasurementEstimator& est) const override;
0047
0048
0049 SubDetector subDetector() const override { return theBackLayer.subDetector(); }
0050
0051
0052
0053
0054 virtual const std::vector<const ForwardDetRing*>& rings() const { return theRings; }
0055
0056 bool isCrack(const GlobalPoint& gp) const;
0057
0058 const MuRingForwardLayer* frontLayer() const { return &theFrontLayer; }
0059 const MuRingForwardLayer* backLayer() const { return &theBackLayer; }
0060
0061 void selfTest() const;
0062
0063 protected:
0064 BoundDisk* computeSurface() override;
0065
0066 private:
0067 MuRingForwardLayer theFrontLayer;
0068 MuRingForwardLayer theBackLayer;
0069 std::vector<const ForwardDetRing*> theRings;
0070 std::vector<const GeometricSearchDet*> theComponents;
0071 std::vector<const GeomDet*> theBasicComponents;
0072 };
0073 #endif