CMS 3D CMS Logo

Phase1PixelBlade.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_Phase1PixelBlade_h
2 #define TkDetLayers_Phase1PixelBlade_h
3 
4 #include "BoundDiskSector.h"
6 
8 #include "SubLayerCrossings.h"
9 
10 #include <utility>
11 
15 #pragma GCC visibility push(hidden)
16 class Phase1PixelBlade final : public GeometricSearchDet {
17  public:
18 
19  Phase1PixelBlade(std::vector<const GeomDet*>& frontDets,
20  std::vector<const GeomDet*>& backDets ) __attribute__ ((cold));
21 
22  ~Phase1PixelBlade() override __attribute__ ((cold));
23 
24  // GeometricSearchDet interface
25  const BoundSurface& surface() const override {return *theDiskSector;}
26 
27  const std::vector<const GeomDet*>& basicComponents() const override {return theDets;}
28 
29  const std::vector<const GeometricSearchDet*>& components() const override __attribute__ ((cold));
30 
31  std::pair<bool, TrajectoryStateOnSurface>
33  const MeasurementEstimator&) const override __attribute__ ((cold));
34 
35  void
37  const Propagator& prop,
38  const MeasurementEstimator& est,
39  std::vector<DetGroup> & result) const override __attribute__ ((hot));
40 
41  //Extension of the interface
42  virtual const BoundDiskSector& specificSurface() const {return *theDiskSector;}
43 
44  private:
45  // private methods for the implementation of groupedCompatibleDets()
46 
48  PropagationDirection propDir) const __attribute__ ((hot));
49 
50  bool addClosest( const TrajectoryStateOnSurface& tsos,
51  const Propagator& prop,
52  const MeasurementEstimator& est,
53  const SubLayerCrossing& crossing,
54  std::vector<DetGroup>& result) const __attribute__ ((hot));
55 
56  float computeWindowSize( const GeomDet* det,
57  const TrajectoryStateOnSurface& tsos,
58  const MeasurementEstimator& est) const;
59 
60 
61  void searchNeighbors( const TrajectoryStateOnSurface& tsos,
62  const Propagator& prop,
63  const MeasurementEstimator& est,
64  const SubLayerCrossing& crossing,
65  float window,
66  std::vector<DetGroup>& result,
67  bool checkClosest) const __attribute__ ((hot));
68 
69  bool overlap( const GlobalPoint& gpos, const GeomDet& det, float phiWin) const;
70 
71  // This 2 find methods should be substituted with the use
72  // of a GeneralBinFinderInR
73 
74  int findBin( float R,int layer) const;
75  int findBin2( GlobalPoint thispoint,int layer) const;
76 
77  GlobalPoint findPosition(int index,int diskSectorIndex) const ;
78 
79  const std::vector<const GeomDet*>& subBlade( int ind) const {
80  return (ind==0 ? theFrontDets : theBackDets);
81  }
82 
83  std::pair<float, float> computeRadiusRanges(const std::vector<const GeomDet*>&);
84 
85 private:
86  std::vector<const GeomDet*> theDets;
87  std::vector<const GeomDet*> theFrontDets;
88  std::vector<const GeomDet*> theBackDets;
89  std::pair<float, float> front_radius_range_;
90  std::pair<float, float> back_radius_range_;
91 
95 };
96 
97 
98 #pragma GCC visibility pop
99 #endif
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const
std::pair< float, float > front_radius_range_
std::vector< const GeomDet * > theBackDets
std::pair< float, float > computeRadiusRanges(const std::vector< const GeomDet * > &)
Phase1PixelBlade(std::vector< const GeomDet * > &frontDets, std::vector< const GeomDet * > &backDets) __attribute__((cold))
float __attribute__((vector_size(8))) cms_float32x2_t
Definition: ExtVec.h:12
PropagationDirection
const std::vector< const GeomDet * > & subBlade(int ind) const
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const override __attribute__((cold))
bool addClosest(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result) const __attribute__((hot))
int findBin2(GlobalPoint thispoint, int layer) const
std::vector< const GeomDet * > theDets
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
SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface &tsos, PropagationDirection propDir) const __attribute__((hot))
bool overlap(const GlobalPoint &gpos, const GeomDet &det, float phiWin) const
const std::vector< const GeometricSearchDet * > & components() const override __attribute__((cold))
Returns basic components, if any.
const BoundSurface & surface() const override
The surface of the GeometricSearchDet.
~Phase1PixelBlade() override __attribute__((cold))
ReferenceCountingPointer< BoundDiskSector > theDiskSector
virtual const BoundDiskSector & specificSurface() const
GlobalPoint findPosition(int index, int diskSectorIndex) const
ReferenceCountingPointer< BoundDiskSector > theFrontDiskSector
int findBin(float R, int layer) const
void searchNeighbors(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, float window, std::vector< DetGroup > &result, bool checkClosest) const __attribute__((hot))
std::pair< float, float > back_radius_range_
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override __attribute__((hot))
std::vector< const GeomDet * > theFrontDets
ReferenceCountingPointer< BoundDiskSector > theBackDiskSector
const std::vector< const GeomDet * > & basicComponents() const override