File indexing completed on 2024-04-06 12:28:46
0001 #ifndef TkDetLayers_CompositeTECWedge_h
0002 #define TkDetLayers_CompositeTECWedge_h
0003
0004 #include "TECWedge.h"
0005 #include "SubLayerCrossings.h"
0006
0007
0008
0009
0010
0011 #pragma GCC visibility push(hidden)
0012 class CompositeTECWedge final : public TECWedge {
0013 public:
0014 CompositeTECWedge(std::vector<const GeomDet*>& innerDets, std::vector<const GeomDet*>& outerDets)
0015 __attribute__((cold));
0016
0017 ~CompositeTECWedge() override __attribute__((cold));
0018
0019
0020 const std::vector<const GeomDet*>& basicComponents() const override { return theDets; }
0021
0022 const std::vector<const GeometricSearchDet*>& components() const override __attribute__((cold));
0023
0024 std::pair<bool, TrajectoryStateOnSurface> compatible(const TrajectoryStateOnSurface& ts,
0025 const Propagator&,
0026 const MeasurementEstimator&) const override
0027 __attribute__((cold));
0028
0029 void groupedCompatibleDetsV(const TrajectoryStateOnSurface& startingState,
0030 const Propagator& prop,
0031 const MeasurementEstimator& est,
0032 std::vector<DetGroup>& result) const override __attribute__((hot));
0033
0034 private:
0035
0036 SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface& tsos, PropagationDirection propDir) const
0037 __attribute__((hot));
0038
0039 bool addClosest(const TrajectoryStateOnSurface& tsos,
0040 const Propagator& prop,
0041 const MeasurementEstimator& est,
0042 const SubLayerCrossing& crossing,
0043 std::vector<DetGroup>& result) const __attribute__((hot));
0044
0045 void searchNeighbors(const TrajectoryStateOnSurface& tsos,
0046 const Propagator& prop,
0047 const MeasurementEstimator& est,
0048 const SubLayerCrossing& crossing,
0049 float window,
0050 std::vector<DetGroup>& result,
0051 bool checkClosest) const __attribute__((hot));
0052
0053 int findClosestDet(const GlobalPoint& startPos, int sectorId) const;
0054
0055 const std::vector<const GeomDet*>& subWedge(int ind) const { return (ind == 0 ? theFrontDets : theBackDets); }
0056
0057 private:
0058 std::vector<const GeomDet*> theFrontDets;
0059 std::vector<const GeomDet*> theBackDets;
0060 std::vector<const GeomDet*> theDets;
0061
0062 ReferenceCountingPointer<BoundDiskSector> theFrontSector;
0063 ReferenceCountingPointer<BoundDiskSector> theBackSector;
0064 };
0065
0066 #pragma GCC visibility pop
0067 #endif