Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:52

0001 #ifndef DetLayers_MuRingForwardLayer_H
0002 #define DetLayers_MuRingForwardLayer_H
0003 
0004 /** \class MuRingForwardLayer
0005  *  A plane composed of disks (MuRingForwardDisk). Represents forward muon CSC/RPC stations.
0006  *
0007  *  \author N. Amapane - INFN Torino
0008  *
0009  */
0010 
0011 #include "TrackingTools/DetLayers/interface/RingedForwardLayer.h"
0012 #include "Utilities/BinningTools/interface/BaseBinFinder.h"
0013 
0014 class ForwardDetRing;
0015 class ForwardDetRingBuilder;
0016 class GeomDet;
0017 
0018 class MuRingForwardLayer : public RingedForwardLayer {
0019 public:
0020   /// Constructor, takes ownership of pointers
0021   MuRingForwardLayer(const std::vector<const ForwardDetRing*>& rings);
0022 
0023   ~MuRingForwardLayer() override;
0024 
0025   // GeometricSearchDet interface
0026 
0027   const std::vector<const GeomDet*>& basicComponents() const override { return theBasicComps; }
0028 
0029   const std::vector<const GeometricSearchDet*>& components() const override;
0030 
0031   std::vector<DetWithState> compatibleDets(const TrajectoryStateOnSurface& startingState,
0032                                            const Propagator& prop,
0033                                            const MeasurementEstimator& est) const override;
0034 
0035   std::vector<DetGroup> groupedCompatibleDets(const TrajectoryStateOnSurface& startingState,
0036                                               const Propagator& prop,
0037                                               const MeasurementEstimator& est) const override;
0038 
0039   // DetLayer interface
0040   SubDetector subDetector() const override;
0041 
0042   // Extension of the interface
0043 
0044   /// Return the vector of rings.
0045   virtual const std::vector<const ForwardDetRing*>& rings() const { return theRings; }
0046 
0047 private:
0048   std::vector<const ForwardDetRing*> theRings;
0049   std::vector<const GeometricSearchDet*> theComponents;  // duplication of the above
0050   std::vector<const GeomDet*> theBasicComps;             // All chambers
0051   BaseBinFinder<double>* theBinFinder;
0052   bool isOverlapping;
0053 };
0054 #endif