CMS 3D CMS Logo

TBLayer.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_TBLayer_h
2 #define TkDetLayers_TBLayer_h
3 
4 
6 #include "SubLayerCrossings.h"
7 #include <tuple>
8 
9 
10 
11 // A base class for Barrel Layers
12 #pragma GCC visibility push(hidden)
13 class TBLayer: public BarrelDetLayer {
14  public:
15 
16  template<typename TDET>
17  TBLayer(std::vector<const TDET*>& inner,
18  std::vector<const TDET*>& outer, GeomDetEnumerators::SubDetector ime) :
20  theInnerComps(inner.begin(),inner.end()),
21  theOuterComps(outer.begin(),outer.end()), me(ime){}
22 
23 
24  ~TBLayer() __attribute__ ((cold));
25 
26  // GeometricSearchDet interface
27 
28  virtual const std::vector<const GeomDet*>& basicComponents() const final {return theBasicComps;}
29 
30  virtual const std::vector<const GeometricSearchDet*>& components() const final __attribute__ ((cold)) {return theComps;}
31 
33  const Propagator& prop,
34  const MeasurementEstimator& est,
35  std::vector<DetGroup> & result) const __attribute__ ((hot));
36 
37 
38  // DetLayer interface
39  virtual SubDetector subDetector() const final {return GeomDetEnumerators::subDetGeom[me];}
40 
41 
42 protected:
43 
44 
46  PropagationDirection propDir) const __attribute__ ((hot));
47 
48 
49  virtual std::tuple<bool,int,int> computeIndexes(GlobalPoint gInnerPoint, GlobalPoint gOuterPoint) const=0;
50 
51  virtual float computeWindowSize( const GeomDet* det,
52  const TrajectoryStateOnSurface& tsos,
53  const MeasurementEstimator& est) const =0;
54 
55 
56  bool addClosest( const TrajectoryStateOnSurface& tsos,
57  const Propagator& prop,
58  const MeasurementEstimator& est,
59  const SubLayerCrossing& crossing,
60  std::vector<DetGroup>& result) const __attribute__ ((hot));
61 
62 
63 
64  const std::vector<const GeometricSearchDet*>& subLayer( int ind) const {
65  return (ind==0 ? theInnerComps : theOuterComps);
66  }
67 
68  bool isTIB() const { return me==GeomDetEnumerators::TIB;}
69  bool isTOB() const { return me==GeomDetEnumerators::TOB;}
70  bool isPixel() const { return me==GeomDetEnumerators::PixelBarrel;}
71  bool isPhase2OT() const { return me==GeomDetEnumerators::P2OTB;}
72 
73  virtual void searchNeighbors( const TrajectoryStateOnSurface& tsos,
74  const Propagator& prop,
75  const MeasurementEstimator& est,
76  const SubLayerCrossing& crossing,
77  float window,
78  std::vector<DetGroup>& result,
79  bool checkClosest) const=0;
80 
81 
82 protected:
83  std::vector<const GeometricSearchDet*> theComps;
84  std::vector<const GeometricSearchDet*> theInnerComps;
85  std::vector<const GeometricSearchDet*> theOuterComps;
86  std::vector<const GeomDet*> theBasicComps;
87 
90 
92 
93 };
94 
95 
96 #pragma GCC visibility pop
97 
98 #endif
ReferenceCountingPointer< BoundCylinder > theOuterCylinder
Definition: TBLayer.h:89
SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface &startingState, PropagationDirection propDir) const __attribute__((hot))
Definition: TBLayer.cc:50
bool isPixel() const
Definition: TBLayer.h:70
virtual float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const =0
std::vector< const GeometricSearchDet * > theInnerComps
Definition: TBLayer.h:84
std::vector< const GeometricSearchDet * > theComps
Definition: TBLayer.h:83
float __attribute__((vector_size(8))) cms_float32x2_t
Definition: ExtVec.h:12
virtual std::tuple< bool, int, int > computeIndexes(GlobalPoint gInnerPoint, GlobalPoint gOuterPoint) const =0
bool isTOB() const
Definition: TBLayer.h:69
PropagationDirection
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const __attribute__((hot))
Definition: TBLayer.cc:18
bool addClosest(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result) const __attribute__((hot))
Definition: TBLayer.cc:86
~TBLayer() __attribute__((cold))
Definition: TBLayer.cc:11
TBLayer(std::vector< const TDET * > &inner, std::vector< const TDET * > &outer, GeomDetEnumerators::SubDetector ime)
Definition: TBLayer.h:17
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:642
SubDetector subDetGeom[21]
#define end
Definition: vmac.h:37
GeomDetEnumerators::SubDetector me
Definition: TBLayer.h:91
virtual const std::vector< const GeomDet * > & basicComponents() const final
Definition: TBLayer.h:28
virtual const std::vector< const GeometricSearchDet * > & components() const final __attribute__((cold))
Returns basic components, if any.
Definition: TBLayer.h:30
const std::vector< const GeometricSearchDet * > & subLayer(int ind) const
Definition: TBLayer.h:64
virtual SubDetector subDetector() const final
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
Definition: TBLayer.h:39
#define begin
Definition: vmac.h:30
bool isTIB() const
Definition: TBLayer.h:68
std::vector< const GeomDet * > theBasicComps
Definition: TBLayer.h:86
virtual void searchNeighbors(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, float window, std::vector< DetGroup > &result, bool checkClosest) const =0
std::vector< const GeometricSearchDet * > theOuterComps
Definition: TBLayer.h:85
bool isPhase2OT() const
Definition: TBLayer.h:71
ReferenceCountingPointer< BoundCylinder > theInnerCylinder
Definition: TBLayer.h:88