CMS 3D CMS Logo

PixelForwardLayerPhase1.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_PixelForwardLayerPhase1_h
2 #define TkDetLayers_PixelForwardLayerPhase1_h
3 
5 #include "Phase1PixelBlade.h"
7 
12 #pragma GCC visibility push(hidden)
13 
15 public:
16  PixelForwardLayerPhase1(std::vector<const Phase1PixelBlade*>& blades);
17  ~PixelForwardLayerPhase1() override;
18 
19  // GeometricSearchDet interface
20 
21  const std::vector<const GeomDet*>& basicComponents() const override { return theBasicComps; }
22 
23  const std::vector<const GeometricSearchDet*>& components() const override __attribute__((cold)) { return theComps; }
24 
26  const Propagator& prop,
27  const MeasurementEstimator& est,
28  std::vector<DetGroup>& result) const override __attribute__((hot));
29 
30  // DetLayer interface
32 
33 private:
34  // methods for groupedCompatibleDets implementation
35  static int computeHelicity(const GeometricSearchDet* firstBlade, const GeometricSearchDet* secondBlade);
36 
39  SubTurbineCrossings(int ci, int ni, float nd) : isValid(true), closestIndex(ci), nextIndex(ni), nextDistance(nd) {}
40 
41  bool isValid;
43  int nextIndex;
44  float nextDistance;
45  };
46 
48  const Propagator& prop,
49  const MeasurementEstimator& est,
50  const SubTurbineCrossings& crossings,
51  float window,
52  std::vector<DetGroup>& result,
53  bool innerDisk) const __attribute__((hot));
54 
56  PropagationDirection propDir,
57  bool innerDisk) const __attribute__((hot));
58 
59  static float computeWindowSize(const GeomDet* det,
60  const TrajectoryStateOnSurface& tsos,
61  const MeasurementEstimator& est);
62 
63 private:
65  // need separate objects for inner and outer disk
66  // or a smarter bin finder class
69  unsigned int _num_innerpanels;
70  unsigned int _num_outerpanels;
71 
72  std::vector<float> theBinFinder_byR;
73  std::vector<unsigned int> theBinFinder_byR_index;
74  std::vector<unsigned int> theBinFinder_byR_nextindex;
75  // bool useR;
76  std::vector<const GeometricSearchDet*> theComps;
77  std::vector<const GeomDet*> theBasicComps;
78 };
79 
80 #pragma GCC visibility pop
81 #endif
std::vector< unsigned int > theBinFinder_byR_index
PeriodicBinFinderInPhi< float > BinFinderType
std::vector< unsigned int > theBinFinder_byR_nextindex
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override __attribute__((hot))
constexpr SubDetector subDetGeom[21]
static int computeHelicity(const GeometricSearchDet *firstBlade, const GeometricSearchDet *secondBlade)
const std::vector< const GeomDet * > & basicComponents() const override
PropagationDirection
std::vector< const GeometricSearchDet * > theComps
void searchNeighbors(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubTurbineCrossings &crossings, float window, std::vector< DetGroup > &result, bool innerDisk) const __attribute__((hot))
SubDetector subDetector() const override
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
std::vector< const GeomDet * > theBasicComps
float __attribute__((vector_size(8))) cms_float32x2_t
Definition: ExtVec.h:8
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)
std::vector< float > theBinFinder_byR
SubTurbineCrossings computeCrossings(const TrajectoryStateOnSurface &startingState, PropagationDirection propDir, bool innerDisk) const __attribute__((hot))
PixelForwardLayerPhase1(std::vector< const Phase1PixelBlade *> &blades)
const std::vector< const GeometricSearchDet * > & components() const override __attribute__((cold))
Returns basic components, if any.