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 #include "TECPetal.h"
7 #include "TECWedge.h"
8 #include "SubLayerCrossings.h"
9 
11 
12 
16 #pragma GCC visibility push(hidden)
17 class CompositeTECPetal GCC11_FINAL : public TECPetal{
18  public:
19  struct WedgePar { float theR, thetaMin, thetaMax;};
20 
21  CompositeTECPetal(std::vector<const TECWedge*>& innerWedges,
22  std::vector<const TECWedge*>& outerWedges);
23 
24  ~CompositeTECPetal();
25 
26  // GeometricSearchDet interface
27  virtual const std::vector<const GeomDet*>& basicComponents() const {return theBasicComps;}
28 
29  virtual const std::vector<const GeometricSearchDet*>& components() const {return theComps;}
30 
31  virtual std::pair<bool, TrajectoryStateOnSurface>
33  const MeasurementEstimator&) const;
34 
35  virtual void
37  const Propagator& prop,
38  const MeasurementEstimator& est,
39  std::vector<DetGroup> & result) const;
40 
41 
42  private:
43 
44 
45  // private methods for the implementation of groupedCompatibleDets()
46  SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface& tsos,
47  PropagationDirection propDir) const dso_internal;
48 
49 
50 
51  bool addClosest( const TrajectoryStateOnSurface& tsos,
52  const Propagator& prop,
53  const MeasurementEstimator& est,
54  const SubLayerCrossing& crossing,
55  std::vector<DetGroup>& result) const dso_internal;
56 
57  void searchNeighbors( const TrajectoryStateOnSurface& tsos,
58  const Propagator& prop,
59  const MeasurementEstimator& est,
60  const SubLayerCrossing& crossing,
61  float window,
62  std::vector<DetGroup>& result,
63  bool checkClosest) const dso_internal;
64 
65 
66  static
67  float computeWindowSize( const GeomDet* det,
68  const TrajectoryStateOnSurface& tsos,
70 
71  int findBin( float R,int layer) const dso_internal;
72 
73  WedgePar const & findPar(int index,int diskSectorType) const dso_internal {
74  return (diskSectorType == 0) ? theFrontPars[index] : theBackPars[index];
75  }
76 
77  const std::vector<const TECWedge*>& subLayer( int ind) const dso_internal {
78  return (ind==0 ? theFrontComps : theBackComps);
79  }
80 
81 
82  private:
83  std::vector<const GeomDet*> theBasicComps;
84  std::vector<const GeometricSearchDet*> theComps;
85 
86  std::vector<const TECWedge*> theFrontComps;
87  std::vector<const TECWedge*> theBackComps;
88 
89  std::vector<float> theFrontBoundaries;
90  std::vector<float> theBackBoundaries;
91  std::vector<WedgePar> theFrontPars;
92  std::vector<WedgePar> theBackPars;
93 
96 
97 };
98 
99 
100 #pragma GCC visibility pop
101 #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 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
std::vector< const GeometricSearchDet * > theComps
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est)
Definition: TkDetUtil.cc:31
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
virtual const std::vector< const GeometricSearchDet * > & components() const
std::vector< float > theFrontBoundaries
std::vector< const TECWedge * > theFrontComps
std::vector< const GeomDet * > theBasicComps
ReferenceCountingPointer< BoundDiskSector > theBackSector
WedgePar const & findPar(int index, int diskSectorType) const dso_internal
std::vector< WedgePar > theFrontPars
std::vector< float > theBackBoundaries
Unlimited (trivial) bounds.