CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CompositeTECPetal.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_CompositeTECPetal_h
2 #define TkDetLayers_CompositeTECPetal_h
3 
4 
6 
7 #include "TECWedge.h"
8 
9 #include "BoundDiskSector.h"
10 
11 #include "SubLayerCrossings.h"
12 
14 
15 
19 #pragma GCC visibility push(hidden)
20 class CompositeTECPetal GCC11_FINAL : public GeometricSearchDet {
21  public:
22  struct WedgePar { float theR, thetaMin, thetaMax;};
23 
24  CompositeTECPetal(std::vector<const TECWedge*>& innerWedges,
25  std::vector<const TECWedge*>& outerWedges) __attribute__ ((cold));
26 
27  ~CompositeTECPetal() __attribute__ ((cold));
28 
29  // GeometricSearchDet interface
30  virtual const BoundSurface& surface() const final {return *theDiskSector;}
31  //Extension of the interface
32  virtual const BoundDiskSector& specificSurface() const final {return *theDiskSector;}
33 
34 
35 
36  // GeometricSearchDet interface
37  virtual const std::vector<const GeomDet*>& basicComponents() const {return theBasicComps;}
38 
39  virtual const std::vector<const GeometricSearchDet*>& components() const __attribute__ ((cold)) {return theComps;}
40 
41  virtual std::pair<bool, TrajectoryStateOnSurface>
44 
45  virtual void
46  groupedCompatibleDetsV( const TrajectoryStateOnSurface& startingState,
47  const Propagator& prop,
49  std::vector<DetGroup> & result) const __attribute__ ((hot));
50 
51 
52  private:
53 
54  ReferenceCountingPointer<BoundDiskSector> theDiskSector;
55 
56 
57  // private methods for the implementation of groupedCompatibleDets()
58  SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface& tsos,
60 
61 
62 
63  bool addClosest( const TrajectoryStateOnSurface& tsos,
64  const Propagator& prop,
66  const SubLayerCrossing& crossing,
67  std::vector<DetGroup>& result) const __attribute__ ((hot)) dso_internal;
68 
69  void searchNeighbors( const TrajectoryStateOnSurface& tsos,
70  const Propagator& prop,
72  const SubLayerCrossing& crossing,
73  float window,
74  std::vector<DetGroup>& result,
75  bool checkClosest) const __attribute__ ((hot)) dso_internal;
76 
77 
78  static
79  float computeWindowSize( const GeomDet* det,
81  const MeasurementEstimator& est) __attribute__ ((hot)) dso_internal;
82 
83  int findBin( float R,int layer) const dso_internal;
84 
85  WedgePar const & findPar(int index,int diskSectorType) const dso_internal {
86  return (diskSectorType == 0) ? theFrontPars[index] : theBackPars[index];
87  }
88 
89  const std::vector<const TECWedge*>& subLayer( int ind) const dso_internal {
90  return (ind==0 ? theFrontComps : theBackComps);
91  }
92 
93 
94  private:
95  std::vector<const GeomDet*> theBasicComps;
96  std::vector<const GeometricSearchDet*> theComps;
97 
98  std::vector<const TECWedge*> theFrontComps;
99  std::vector<const TECWedge*> theBackComps;
100 
101  std::vector<float> theFrontBoundaries;
102  std::vector<float> theBackBoundaries;
103  std::vector<WedgePar> theFrontPars;
104  std::vector<WedgePar> theBackPars;
105 
108 
109 };
110 
111 
112 #pragma GCC visibility pop
113 #endif
virtual std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const =0
def window
Definition: svgfig.py:642
const std::vector< const TECWedge * > & subLayer(int ind) const dso_internal
virtual const BoundDiskSector & specificSurface() const final
PropagationDirection
virtual const std::vector< const GeomDet * > & basicComponents() const
virtual const std::vector< const GeometricSearchDet * > & components() const __attribute__((cold))
Returns basic components, if any.
std::vector< const GeometricSearchDet * > theComps
std::vector< WedgePar > theBackPars
tuple result
Definition: query.py:137
std::vector< const TECWedge * > theBackComps
#define dso_internal
Definition: Visibility.h:13
ReferenceCountingPointer< BoundDiskSector > theFrontSector
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est)
Definition: BarrelUtil.h:35
std::vector< float > theFrontBoundaries
std::vector< const TECWedge * > theFrontComps
float __attribute__((vector_size(8))) float32x2_t
Definition: ExtVec.h:6
std::vector< const GeomDet * > theBasicComps
ReferenceCountingPointer< BoundDiskSector > theBackSector
string const
Definition: compareJSON.py:14
#define private
Definition: FWFileEntry.h:17
std::vector< WedgePar > theFrontPars
std::vector< float > theBackBoundaries
Unlimited (trivial) bounds.