Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:25:45

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