CMS 3D CMS Logo

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