CMS 3D CMS Logo

PixelForwardLayer.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_PixelForwardLayer_h
2 #define TkDetLayers_PixelForwardLayer_h
3 
5 #include "PixelBlade.h"
7 
12 #pragma GCC visibility push(hidden)
13 class PixelForwardLayer final : public ForwardDetLayer {
14 public:
15  PixelForwardLayer(std::vector<const PixelBlade*>& blades);
16  ~PixelForwardLayer() override;
17 
18  // GeometricSearchDet interface
19 
20  const std::vector<const GeomDet*>& basicComponents() const override { return theBasicComps; }
21 
22  const std::vector<const GeometricSearchDet*>& components() const override __attribute__((cold)) { return theComps; }
23 
25  const Propagator& prop,
26  const MeasurementEstimator& est,
27  std::vector<DetGroup>& result) const override __attribute__((hot));
28 
29  // DetLayer interface
31 
32 private:
33  // methods for groupedCompatibleDets implementation
34  static int computeHelicity(const GeometricSearchDet* firstBlade, const GeometricSearchDet* secondBlade);
35 
38  SubTurbineCrossings(int ci, int ni, float nd) : isValid(true), closestIndex(ci), nextIndex(ni), nextDistance(nd) {}
39 
40  bool isValid;
42  int nextIndex;
43  float nextDistance;
44  };
45 
47  const Propagator& prop,
48  const MeasurementEstimator& est,
49  const SubTurbineCrossings& crossings,
50  float window,
51  std::vector<DetGroup>& result) const __attribute__((hot));
52 
54  PropagationDirection propDir) const __attribute__((hot));
55 
56  static float computeWindowSize(const GeomDet* det,
57  const TrajectoryStateOnSurface& tsos,
58  const MeasurementEstimator& est);
59 
60 private:
63 
64  std::vector<const GeometricSearchDet*> theComps;
65  std::vector<const GeomDet*> theBasicComps;
66 };
67 
68 #pragma GCC visibility pop
69 #endif
PixelForwardLayer(std::vector< const PixelBlade *> &blades)
constexpr SubDetector subDetGeom[21]
PropagationDirection
~PixelForwardLayer() override
static int computeHelicity(const GeometricSearchDet *firstBlade, const GeometricSearchDet *secondBlade)
float __attribute__((vector_size(8))) cms_float32x2_t
Definition: ExtVec.h:8
PeriodicBinFinderInPhi< float > BinFinderType
std::vector< const GeometricSearchDet * > theComps
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override __attribute__((hot))
double f[11][100]
def window(xmin, xmax, ymin, ymax, x=0, y=0, width=100, height=100, xlogbase=None, ylogbase=None, minusInfinity=-1000, flipx=False, flipy=True)
Definition: svgfig.py:643
static float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est)
SubTurbineCrossings computeCrossings(const TrajectoryStateOnSurface &startingState, PropagationDirection propDir) const __attribute__((hot))
SubTurbineCrossings(int ci, int ni, float nd)
SubDetector subDetector() const override
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
void searchNeighbors(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubTurbineCrossings &crossings, float window, std::vector< DetGroup > &result) const __attribute__((hot))
const std::vector< const GeometricSearchDet * > & components() const override __attribute__((cold))
Returns basic components, if any.
BinFinderType theBinFinder
std::vector< const GeomDet * > theBasicComps
const std::vector< const GeomDet * > & basicComponents() const override