File indexing completed on 2024-04-06 12:26:49
0001 #ifndef RecoMTD_DetLayers_MTDTrayBarrelLayer_H
0002 #define RecoMTD_DetLayers_MTDTrayBarrelLayer_H
0003
0004
0005
0006
0007
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 MTDTrayBarrelLayer : public RodBarrelLayer {
0018 public:
0019
0020 MTDTrayBarrelLayer(std::vector<const DetRod*>& rods);
0021
0022 ~MTDTrayBarrelLayer() override;
0023
0024
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
0039 SubDetector subDetector() const override;
0040
0041
0042
0043
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;
0051 std::vector<const GeomDet*> theBasicComps;
0052 BaseBinFinder<double>* theBinFinder;
0053 bool isOverlapping;
0054 };
0055
0056 #endif