CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PixelForwardLayerPhase1.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_PixelForwardLayerPhase1_h
2 #define TkDetLayers_PixelForwardLayerPhase1_h
3 
4 
6 #include "PixelBlade.h"
8 #include "PixelForwardLayer.h"
9 
14 #pragma GCC visibility push(hidden)
15 class PixelForwardLayerPhase1 GCC11_FINAL : public ForwardDetLayer {
16 
17  public:
18  PixelForwardLayerPhase1(std::vector<const PixelBlade*>& blades);
19  ~PixelForwardLayerPhase1();
20 
21  // GeometricSearchDet interface
22 
23  virtual const std::vector<const GeomDet*>& basicComponents() const {return theBasicComps;}
24 
25  virtual const std::vector<const GeometricSearchDet*>& components() const __attribute__ ((cold)) {return theComps;}
26 
28  const Propagator& prop,
29  const MeasurementEstimator& est,
30  std::vector<DetGroup> & result) const __attribute__ ((hot));
31 
32  // DetLayer interface
34 
35 
36  private:
37 
38  // methods for groupedCompatibleDets implementation
39  int computeHelicity(const GeometricSearchDet* firstBlade,const GeometricSearchDet* secondBlade) const;
40 
41  struct SubTurbineCrossings {
42  SubTurbineCrossings(): isValid(false){};
43  SubTurbineCrossings( int ci, int ni, float nd) :
44  isValid(true),closestIndex(ci), nextIndex(ni), nextDistance(nd) {}
45 
46  bool isValid;
47  int closestIndex;
48  int nextIndex;
49  float nextDistance;
50  };
51 
52 
53 
54  void searchNeighbors( const TrajectoryStateOnSurface& tsos,
55  const Propagator& prop,
56  const MeasurementEstimator& est,
57  const SubTurbineCrossings& crossings,
58  float window,
59  std::vector<DetGroup>& result,
60  bool innerDisk) const;
61 
62  SubTurbineCrossings
63  computeCrossings( const TrajectoryStateOnSurface& startingState,
64  PropagationDirection propDir, bool innerDisk) const;
65 
66  float computeWindowSize( const GeomDet* det,
67  const TrajectoryStateOnSurface& tsos,
68  const MeasurementEstimator& est) const;
69 
70  private:
71  // need separate objects for inner and outer disk
72  // or a smarter bin finder class
74 
77  unsigned int _num_innerpanels;
78  unsigned int _num_outerpanels;
79 
80  std::vector<const GeometricSearchDet*> theComps;
81  std::vector<const GeomDet*> theBasicComps;
82 
83 };
84 
85 #pragma GCC visibility pop
86 
87 #endif
def window
Definition: svgfig.py:642
unsigned int _num_outerpanels
virtual void groupedCompatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const
PropagationDirection
virtual const std::vector< const GeomDet * > & basicComponents() const
virtual const std::vector< const GeometricSearchDet * > & components() const __attribute__((cold))
Returns basic components, if any.
PeriodicBinFinderInPhi< double > BinFinderType
virtual SubDetector subDetector() const
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
tuple result
Definition: query.py:137
SubTurbineCrossings(int ci, int ni, float nd)
unsigned int _num_innerpanels
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est)
Definition: BarrelUtil.h:35
float __attribute__((vector_size(8))) float32x2_t
Definition: ExtVec.h:6
string const
Definition: compareJSON.py:14
volatile std::atomic< bool > shutdown_flag false
BinFinderType theBinFinder_outer
BinFinderType theBinFinder_inner
Unlimited (trivial) bounds.