Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DetLayers_MuDetRing_H
0002 #define DetLayers_MuDetRing_H
0003 
0004 /** \class MuDetRing
0005  *  A ring of periodic, possibly overlapping vertical detectors.
0006  *  Designed for forward muon CSC/RPC chambers.
0007  *
0008  *  \author N. Amapane - INFN Torino
0009  */
0010 
0011 #include "TrackingTools/DetLayers/interface/ForwardDetRingOneZ.h"
0012 #include "Utilities/BinningTools/interface/PeriodicBinFinderInPhi.h"
0013 
0014 class GeomDet;
0015 
0016 class MuDetRing : public ForwardDetRingOneZ {
0017 public:
0018   /// Construct from iterators on GeomDet*
0019   MuDetRing(std::vector<const GeomDet*>::const_iterator first, std::vector<const GeomDet*>::const_iterator last);
0020 
0021   /// Construct from a vector of GeomDet*
0022   MuDetRing(const std::vector<const GeomDet*>& dets);
0023 
0024   ~MuDetRing() override;
0025 
0026   // GeometricSearchDet interface
0027 
0028   const std::vector<const GeometricSearchDet*>& components() const override;
0029 
0030   std::pair<bool, TrajectoryStateOnSurface> compatible(const TrajectoryStateOnSurface& ts,
0031                                                        const Propagator& prop,
0032                                                        const MeasurementEstimator& est) const override;
0033 
0034   std::vector<DetWithState> compatibleDets(const TrajectoryStateOnSurface& startingState,
0035                                            const Propagator& prop,
0036                                            const MeasurementEstimator& est) const override;
0037 
0038   std::vector<DetGroup> groupedCompatibleDets(const TrajectoryStateOnSurface& startingState,
0039                                               const Propagator& prop,
0040                                               const MeasurementEstimator& est) const override;
0041 
0042 private:
0043   typedef PeriodicBinFinderInPhi<float> BinFinderType;
0044   BinFinderType theBinFinder;
0045 
0046   void init();
0047 };
0048 #endif