Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-12-12 23:19:25

0001 #ifndef RecoMTD_DetLayers_MTDDetTray_H
0002 #define RecoMTD_DetLayers_MTDDetTray_H
0003 
0004 /** \class MTDDetTray
0005  *  A tray of aligned equal-sized non-overlapping detectors.  
0006  *  Designed for barrel timing layer.
0007  *
0008  *  \author L. Gray - FNAL
0009  *
0010  */
0011 
0012 #include "TrackingTools/DetLayers/interface/DetRodOneR.h"
0013 #include "TrackingTools/DetLayers/interface/PeriodicBinFinderInZ.h"
0014 #include "Utilities/BinningTools/interface/GenericBinFinderInZ.h"
0015 
0016 #include <ostream>
0017 
0018 class GeomDet;
0019 
0020 class MTDDetTray : public DetRodOneR {
0021 public:
0022   /// Construct from iterators on GeomDet*
0023   MTDDetTray(std::vector<const GeomDet*>::const_iterator first, std::vector<const GeomDet*>::const_iterator last);
0024 
0025   /// Construct from a std::vector of GeomDet*
0026   MTDDetTray(const std::vector<const GeomDet*>& dets);
0027 
0028   /// Destructor
0029   ~MTDDetTray() override;
0030 
0031   // GeometricSearchDet interface
0032 
0033   const std::vector<const GeometricSearchDet*>& components() const override;
0034 
0035   std::pair<bool, TrajectoryStateOnSurface> compatible(const TrajectoryStateOnSurface& ts,
0036                                                        const Propagator& prop,
0037                                                        const MeasurementEstimator& est) const override;
0038 
0039   std::vector<DetWithState> compatibleDets(const TrajectoryStateOnSurface& startingState,
0040                                            const Propagator& prop,
0041                                            const MeasurementEstimator& est) const override;
0042 
0043   std::vector<DetGroup> groupedCompatibleDets(const TrajectoryStateOnSurface& startingState,
0044                                               const Propagator& prop,
0045                                               const MeasurementEstimator& est) const override;
0046 
0047 private:
0048   typedef GenericBinFinderInZ<float, GeomDet> BinFinderType;
0049   BinFinderType theBinFinder;
0050 
0051   void init();
0052 };
0053 
0054 #endif