CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
Phase2EndcapRing Class Referencefinal

#include <Phase2EndcapRing.h>

Inheritance diagram for Phase2EndcapRing:
GeometricSearchDet

Public Member Functions

const std::vector< const GeomDet * > & basicComponents () const override
 
std::pair< bool, TrajectoryStateOnSurfacecompatible (const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &) const override
 
const std::vector< const GeometricSearchDet * > & components () const override __attribute__((cold))
 Returns basic components, if any. More...
 
void groupedCompatibleDetsV (const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override __attribute__((hot))
 
 Phase2EndcapRing (std::vector< const GeomDet * > &innerDets, std::vector< const GeomDet * > &outerDets, const std::vector< const GeomDet * > &innerDetBrothers=std::vector< const GeomDet * >(), const std::vector< const GeomDet * > &outerDetBrothers=std::vector< const GeomDet * >())
 
virtual const BoundDiskspecificSurface () const
 
const BoundSurfacesurface () const override
 The surface of the GeometricSearchDet. More...
 
 ~Phase2EndcapRing () override
 
- Public Member Functions inherited from GeometricSearchDet
virtual std::vector< DetWithStatecompatibleDets (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
 
virtual void compatibleDetsV (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const
 
 GeometricSearchDet (bool doHaveGroups)
 
virtual std::vector< DetGroupgroupedCompatibleDets (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
 
bool hasGroups () const
 
virtual const Surface::PositionTypeposition () const
 Returns position of the surface. More...
 
virtual ~GeometricSearchDet ()
 

Private Types

typedef PeriodicBinFinderInPhi< float > BinFinderType
 

Private Member Functions

bool addClosest (const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result, std::vector< DetGroup > &brotherresult) const __attribute__((hot))
 
SubLayerCrossings computeCrossings (const TrajectoryStateOnSurface &tsos, PropagationDirection propDir) const __attribute__((hot))
 
void searchNeighbors (const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, float window, std::vector< DetGroup > &result, std::vector< DetGroup > &brotherresult, bool checkClosest) const __attribute__((hot))
 
const std::vector< const GeomDet * > & subLayer (int ind) const
 
const std::vector< const GeomDet * > & subLayerBrothers (int ind) const
 

Private Attributes

BinFinderType theBackBinFinder
 
std::vector< const GeomDet * > theBackDetBrothers
 
std::vector< const GeomDet * > theBackDets
 
ReferenceCountingPointer< BoundDisktheBackDisk
 
std::vector< const GeomDet * > theDets
 
ReferenceCountingPointer< BoundDisktheDisk
 
BinFinderType theFrontBinFinder
 
std::vector< const GeomDet * > theFrontDetBrothers
 
std::vector< const GeomDet * > theFrontDets
 
ReferenceCountingPointer< BoundDisktheFrontDisk
 

Additional Inherited Members

- Public Types inherited from GeometricSearchDet
typedef std::pair< const GeomDet *, TrajectoryStateOnSurfaceDetWithState
 
typedef BoundSurface::PositionType PositionType
 
typedef BoundSurface::RotationType RotationType
 
typedef TrajectoryStateOnSurface TrajectoryState
 
- Protected Attributes inherited from GeometricSearchDet
bool haveGroups
 
GeomDetCompatibilityChecker theCompatibilityChecker
 

Detailed Description

A concrete implementation for TID rings

Definition at line 13 of file Phase2EndcapRing.h.

Member Typedef Documentation

Definition at line 79 of file Phase2EndcapRing.h.

Constructor & Destructor Documentation

Phase2EndcapRing::Phase2EndcapRing ( std::vector< const GeomDet * > &  innerDets,
std::vector< const GeomDet * > &  outerDets,
const std::vector< const GeomDet * > &  innerDetBrothers = std::vector<const GeomDet*>(),
const std::vector< const GeomDet * > &  outerDetBrothers = std::vector<const GeomDet*>() 
)

Definition at line 30 of file Phase2EndcapRing.cc.

References LogDebug, theBackBinFinder, theBackDetBrothers, theBackDets, theBackDisk, theDets, theDisk, theFrontBinFinder, theFrontDetBrothers, theFrontDets, and theFrontDisk.

34  : GeometricSearchDet(true),
35  theFrontDets(innerDets.begin(), innerDets.end()),
36  theBackDets(outerDets.begin(), outerDets.end()),
37  theFrontDetBrothers(innerDetBrothers.begin(), innerDetBrothers.end()),
38  theBackDetBrothers(outerDetBrothers.begin(), outerDetBrothers.end()) {
39  theDets.assign(theFrontDets.begin(), theFrontDets.end());
40  theDets.insert(theDets.end(), theBackDets.begin(), theBackDets.end());
41  theDets.insert(theDets.end(), theFrontDetBrothers.begin(), theFrontDetBrothers.end());
42  theDets.insert(theDets.end(), theBackDetBrothers.begin(), theBackDetBrothers.end());
43 
44  // the dets should be already phi-ordered. TO BE CHECKED
45  //sort( theFrontDets.begin(), theFrontDets.end(), DetLessPhi() );
46  //sort( theBackDets.begin(), theBackDets.end(), DetLessPhi() );
47 
49 
52 
53  theFrontBinFinder = BinFinderType(theFrontDets.front()->surface().position().phi(), theFrontDets.size());
54  theBackBinFinder = BinFinderType(theBackDets.front()->surface().position().phi(), theBackDets.size());
55 
56 #ifdef EDM_ML_DEBUG
57  LogDebug("TkDetLayers") << "DEBUG INFO for Phase2EndcapRing";
58  for (vector<const GeomDet*>::const_iterator it = theFrontDets.begin(); it != theFrontDets.end(); it++) {
59  LogDebug("TkDetLayers") << "frontDet detId,phi,z,r: " << (*it)->geographicalId().rawId() << " , "
60  << (*it)->surface().position().phi() << " , " << (*it)->surface().position().z() << " , "
61  << (*it)->surface().position().perp();
62  }
63 
64  if (!theFrontDetBrothers.empty()) {
65  for (vector<const GeomDet*>::const_iterator it = theFrontDetBrothers.begin(); it != theFrontDetBrothers.end();
66  it++) {
67  LogDebug("TkDetLayers") << "frontDet brothers detId,phi,z,r: " << (*it)->geographicalId().rawId() << " , "
68  << (*it)->surface().position().phi() << " , " << (*it)->surface().position().z() << " , "
69  << (*it)->surface().position().perp();
70  }
71  }
72 
73  for (vector<const GeomDet*>::const_iterator it = theBackDets.begin(); it != theBackDets.end(); it++) {
74  LogDebug("TkDetLayers") << "backDet detId,phi,z,r: " << (*it)->geographicalId().rawId() << " , "
75  << (*it)->surface().position().phi() << " , " << (*it)->surface().position().z() << " , "
76  << (*it)->surface().position().perp();
77  }
78 
79  if (!theBackDetBrothers.empty()) {
80  for (vector<const GeomDet*>::const_iterator it = theBackDetBrothers.begin(); it != theBackDetBrothers.end(); it++) {
81  LogDebug("TkDetLayers") << "backDet brothers detId,phi,z,r: " << (*it)->geographicalId().rawId() << " , "
82  << (*it)->surface().position().phi() << " , " << (*it)->surface().position().z() << " , "
83  << (*it)->surface().position().perp();
84  }
85  }
86 #endif
87 }
#define LogDebug(id)
std::vector< const GeomDet * > theDets
std::vector< const GeomDet * > theFrontDets
std::vector< const GeomDet * > theFrontDetBrothers
std::vector< const GeomDet * > theBackDets
GeometricSearchDet(bool doHaveGroups)
ReferenceCountingPointer< BoundDisk > theFrontDisk
BinFinderType theFrontBinFinder
ReferenceCountingPointer< BoundDisk > theDisk
std::vector< const GeomDet * > theBackDetBrothers
PeriodicBinFinderInPhi< float > BinFinderType
BinFinderType theBackBinFinder
ReferenceCountingPointer< BoundDisk > theBackDisk
Phase2EndcapRing::~Phase2EndcapRing ( )
override

Definition at line 89 of file Phase2EndcapRing.cc.

89 {}

Member Function Documentation

bool Phase2EndcapRing::addClosest ( const TrajectoryStateOnSurface tsos,
const Propagator prop,
const MeasurementEstimator est,
const SubLayerCrossing crossing,
std::vector< DetGroup > &  result,
std::vector< DetGroup > &  brotherresult 
) const
private

Definition at line 192 of file Phase2EndcapRing.cc.

References CompatibleDetToGroupAdder::add(), SubLayerCrossing::closestDetIndex(), subLayer(), subLayerBrothers(), SubLayerCrossing::subLayerIndex(), theBackDetBrothers, and theFrontDetBrothers.

Referenced by groupedCompatibleDetsV(), and specificSurface().

197  {
198  const vector<const GeomDet*>& sub(subLayer(crossing.subLayerIndex()));
199  const GeomDet* det(sub[crossing.closestDetIndex()]);
200  bool firstgroup = CompatibleDetToGroupAdder::add(*det, tsos, prop, est, result);
201  if (theFrontDetBrothers.empty() && theBackDetBrothers.empty())
202  return firstgroup;
203  // it assumes that the closestDetIndex is ok also for the brother detectors: the crossing is NOT recomputed
204  const vector<const GeomDet*>& subBrothers(subLayerBrothers(crossing.subLayerIndex()));
205  const GeomDet* detBrother(subBrothers[crossing.closestDetIndex()]);
206  bool brothergroup = CompatibleDetToGroupAdder::add(*detBrother, tsos, prop, est, brotherresult);
207  return firstgroup || brothergroup;
208 }
int closestDetIndex() const
std::vector< const GeomDet * > theFrontDetBrothers
const std::vector< const GeomDet * > & subLayer(int ind) const
int subLayerIndex() const
const std::vector< const GeomDet * > & subLayerBrothers(int ind) const
std::vector< const GeomDet * > theBackDetBrothers
static bool add(const GeometricSearchDet &det, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) __attribute__((hot))
const std::vector<const GeomDet*>& Phase2EndcapRing::basicComponents ( ) const
inlineoverridevirtual

Implements GeometricSearchDet.

Definition at line 24 of file Phase2EndcapRing.h.

References compatible(), components(), groupedCompatibleDetsV(), mps_fire::result, and theDets.

24 { return theDets; }
std::vector< const GeomDet * > theDets
pair< bool, TrajectoryStateOnSurface > Phase2EndcapRing::compatible ( const TrajectoryStateOnSurface ts,
const Propagator ,
const MeasurementEstimator  
) const
overridevirtual

tests the geometrical compatibility of the Det with the predicted state. The FreeTrajectoryState argument is propagated to the Det surface using the Propagator argument. The resulting TrajectoryStateOnSurface is tested for compatibility with the surface bounds. If compatible, a std::pair< true, propagatedState> is returned. If the propagation fails, or if the state is not compatible, a std::pair< false, propagatedState> is returned.

Implements GeometricSearchDet.

Definition at line 95 of file Phase2EndcapRing.cc.

Referenced by basicComponents().

97  {
98  edm::LogError("TkDetLayers") << "temporary dummy implementation of Phase2EndcapRing::compatible()!!";
99  return pair<bool, TrajectoryStateOnSurface>();
100 }
const vector< const GeometricSearchDet * > & Phase2EndcapRing::components ( ) const
overridevirtual

Returns basic components, if any.

Returns direct components, if any

Implements GeometricSearchDet.

Definition at line 91 of file Phase2EndcapRing.cc.

Referenced by basicComponents().

91  {
92  throw DetLayerException("Phase2EndcapRing doesn't have GeometricSearchDet components");
93 }
Common base class.
SubLayerCrossings Phase2EndcapRing::computeCrossings ( const TrajectoryStateOnSurface tsos,
PropagationDirection  propDir 
) const
private

Definition at line 156 of file Phase2EndcapRing.cc.

References funct::abs(), PeriodicBinFinderInPhi< T >::binIndex(), SiPixelRawToDigiRegional_cfi::deltaPhi, TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), rho, theBackBinFinder, theBackDets, theBackDisk, theFrontBinFinder, theFrontDets, theFrontDisk, and TrajectoryStateOnSurface::transverseCurvature().

Referenced by groupedCompatibleDetsV(), and specificSurface().

157  {
158  auto rho = startingState.transverseCurvature();
159 
160  HelixPlaneCrossing::PositionType startPos(startingState.globalPosition());
161  HelixPlaneCrossing::DirectionType startDir(startingState.globalMomentum());
162  HelixForwardPlaneCrossing crossing(startPos, startDir, rho, propDir);
163 
164  pair<bool, double> frontPath = crossing.pathLength(*theFrontDisk);
165  if (!frontPath.first)
166  return SubLayerCrossings();
167 
168  pair<bool, double> backPath = crossing.pathLength(*theBackDisk);
169  if (!backPath.first)
170  return SubLayerCrossings();
171 
172  GlobalPoint gFrontPoint(crossing.position(frontPath.second));
173  GlobalPoint gBackPoint(crossing.position(backPath.second));
174 
175  int frontIndex = theFrontBinFinder.binIndex(gFrontPoint.barePhi());
176  SubLayerCrossing frontSLC(0, frontIndex, gFrontPoint);
177 
178  int backIndex = theBackBinFinder.binIndex(gBackPoint.barePhi());
179  SubLayerCrossing backSLC(1, backIndex, gBackPoint);
180 
181  // 0ss: frontDisk has index=0, backDisk has index=1
182  float frontDist = std::abs(Geom::deltaPhi(gFrontPoint.barePhi(), theFrontDets[frontIndex]->surface().phi()));
183  float backDist = std::abs(Geom::deltaPhi(gBackPoint.barePhi(), theBackDets[backIndex]->surface().phi()));
184 
185  if (frontDist < backDist) {
186  return SubLayerCrossings(frontSLC, backSLC, 0);
187  } else {
188  return SubLayerCrossings(backSLC, frontSLC, 1);
189  }
190 }
std::vector< const GeomDet * > theFrontDets
int binIndex(T phi) const override
returns an index in the valid range for the bin that contains phi
std::vector< const GeomDet * > theBackDets
ReferenceCountingPointer< BoundDisk > theFrontDisk
BinFinderType theFrontBinFinder
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
BinFinderType theBackBinFinder
ReferenceCountingPointer< BoundDisk > theBackDisk
void Phase2EndcapRing::groupedCompatibleDetsV ( const TrajectoryStateOnSurface tsos,
const Propagator prop,
const MeasurementEstimator est,
std::vector< DetGroup > &  result 
) const
overridevirtual

Reimplemented from GeometricSearchDet.

Definition at line 102 of file Phase2EndcapRing.cc.

References addClosest(), SubLayerCrossings::closest(), SubLayerCrossings::closestIndex(), computeCrossings(), tkDetUtil::computeWindowSize(), LayerCrossingSide::endcapSide(), SubLayerCrossings::isValid(), LogTrace, eostools::move(), DetGroupMerger::orderAndMergeTwoLevels(), SubLayerCrossings::other(), trackingPOGFilters_cfi::phiWindow, Propagator::propagationDirection(), searchNeighbors(), theBackDetBrothers, and theFrontDetBrothers.

Referenced by basicComponents().

105  {
106  SubLayerCrossings crossings;
107  crossings = computeCrossings(tsos, prop.propagationDirection());
108  if (!crossings.isValid())
109  return;
110 
111  std::vector<DetGroup> closestResult;
112  std::vector<DetGroup> closestBrotherResult;
113  addClosest(tsos, prop, est, crossings.closest(), closestResult, closestBrotherResult);
114  if (closestResult.empty())
115  return;
116 
117  DetGroupElement closestGel(closestResult.front().front());
118  int crossingSide = LayerCrossingSide().endcapSide(closestGel.trajectoryState(), prop);
119  float phiWindow = tkDetUtil::computeWindowSize(closestGel.det(), closestGel.trajectoryState(), est);
120  searchNeighbors(tsos, prop, est, crossings.closest(), phiWindow, closestResult, closestBrotherResult, false);
121 
122  vector<DetGroup> closestCompleteResult;
124  std::move(closestResult), std::move(closestBrotherResult), closestCompleteResult, 0, crossingSide);
125 
126  vector<DetGroup> nextResult;
127  vector<DetGroup> nextBrotherResult;
128  searchNeighbors(tsos, prop, est, crossings.other(), phiWindow, nextResult, nextBrotherResult, true);
129 
130  vector<DetGroup> nextCompleteResult;
132  std::move(nextResult), std::move(nextBrotherResult), nextCompleteResult, 0, crossingSide);
133 
135  std::move(closestCompleteResult), std::move(nextCompleteResult), result, crossings.closestIndex(), crossingSide);
136 
137  //due to propagator problems, when we add single pt sub modules, we should order them in z (endcap)
138  if (!theFrontDetBrothers.empty() && !theBackDetBrothers.empty())
139  sort(result.begin(), result.end(), DetGroupElementZLess());
140 
141 #ifdef EDM_ML_DEBUG
142  LogTrace("TkDetLayers") << "Number of groups : " << result.size() << std::endl;
143  for (auto& grp : result) {
144  if (grp.empty())
145  continue;
146  LogTrace("TkDetLayers") << "New group in Phase2EndcapRing made by : " << std::endl;
147  for (auto const& det : grp) {
148  LogTrace("TkDetLayers") << " geom det at r: " << det.det()->position().perp()
149  << " id:" << det.det()->geographicalId().rawId()
150  << " tsos at:" << det.trajectoryState().globalPosition() << std::endl;
151  }
152  }
153 #endif
154 }
int closestIndex() const
std::vector< const GeomDet * > theFrontDetBrothers
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est)
Definition: TkDetUtil.cc:10
virtual PropagationDirection propagationDirection() const final
Definition: Propagator.h:139
static int endcapSide(const TrajectoryStateOnSurface &startingState, const Propagator &prop)
#define LogTrace(id)
std::vector< const GeomDet * > theBackDetBrothers
void searchNeighbors(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, float window, std::vector< DetGroup > &result, std::vector< DetGroup > &brotherresult, bool checkClosest) const __attribute__((hot))
const SubLayerCrossing & other() const
bool addClosest(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result, std::vector< DetGroup > &brotherresult) const __attribute__((hot))
const SubLayerCrossing & closest() const
static void orderAndMergeTwoLevels(std::vector< DetGroup > &&one, std::vector< DetGroup > &&two, std::vector< DetGroup > &result, int firstIndex, int firstCrossed)
SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface &tsos, PropagationDirection propDir) const __attribute__((hot))
def move(src, dest)
Definition: eostools.py:511
void Phase2EndcapRing::searchNeighbors ( const TrajectoryStateOnSurface tsos,
const Propagator prop,
const MeasurementEstimator est,
const SubLayerCrossing crossing,
float  window,
std::vector< DetGroup > &  result,
std::vector< DetGroup > &  brotherresult,
bool  checkClosest 
) const
private

Definition at line 210 of file Phase2EndcapRing.cc.

References PVValHelper::add(), PV3DBase< T, PVType, FrameType >::barePhi(), PeriodicBinFinderInPhi< T >::binIndex(), SubLayerCrossing::closestDetIndex(), tkDetUtil::overlapInPhi(), Geom::phiLess(), SubLayerCrossing::position(), subLayer(), subLayerBrothers(), SubLayerCrossing::subLayerIndex(), theBackBinFinder, theBackDetBrothers, theFrontBinFinder, and theFrontDetBrothers.

Referenced by groupedCompatibleDetsV(), and specificSurface().

217  {
218  const GlobalPoint& gCrossingPos = crossing.position();
219 
220  const vector<const GeomDet*>& sLayer(subLayer(crossing.subLayerIndex()));
221  // It assumes that what is ok for the front modules in the pt modules is ok also for the back module
222  const vector<const GeomDet*>& sBrotherLayer(subLayerBrothers(crossing.subLayerIndex()));
223 
224  int closestIndex = crossing.closestDetIndex();
225  int negStartIndex = closestIndex - 1;
226  int posStartIndex = closestIndex + 1;
227 
228  if (checkClosest) { // must decide if the closest is on the neg or pos side
229  if (Geom::phiLess(gCrossingPos.barePhi(), sLayer[closestIndex]->surface().phi())) {
230  posStartIndex = closestIndex;
231  } else {
232  negStartIndex = closestIndex;
233  }
234  }
235 
236  const BinFinderType& binFinder = (crossing.subLayerIndex() == 0 ? theFrontBinFinder : theBackBinFinder);
237 
238  typedef CompatibleDetToGroupAdder Adder;
239  int half = sLayer.size() / 2; // to check if dets are called twice....
240  for (int idet = negStartIndex; idet >= negStartIndex - half; idet--) {
241  const GeomDet& neighborDet = *sLayer[binFinder.binIndex(idet)];
242  if (!tkDetUtil::overlapInPhi(gCrossingPos, neighborDet, window))
243  break;
244  if (!Adder::add(neighborDet, tsos, prop, est, result))
245  break;
246  if (theFrontDetBrothers.empty() && theBackDetBrothers.empty())
247  break;
248  // If the two above checks are passed also the brother module will be added with no further checks
249  const GeomDet& neighborBrotherDet = *sBrotherLayer[binFinder.binIndex(idet)];
250  Adder::add(neighborBrotherDet, tsos, prop, est, brotherresult);
251  // maybe also add shallow crossing angle test here???
252  }
253  for (int idet = posStartIndex; idet < posStartIndex + half; idet++) {
254  const GeomDet& neighborDet = *sLayer[binFinder.binIndex(idet)];
255  if (!tkDetUtil::overlapInPhi(gCrossingPos, neighborDet, window))
256  break;
257  if (!Adder::add(neighborDet, tsos, prop, est, result))
258  break;
259  if (theFrontDetBrothers.empty() && theBackDetBrothers.empty())
260  break;
261  // If the two above checks are passed also the brother module will be added with no further checks
262  const GeomDet& neighborBrotherDet = *sBrotherLayer[binFinder.binIndex(idet)];
263  Adder::add(neighborBrotherDet, tsos, prop, est, brotherresult);
264  // maybe also add shallow crossing angle test here???
265  }
266 }
int closestDetIndex() const
std::vector< const GeomDet * > theFrontDetBrothers
bool overlapInPhi(float phi, const GeomDet &det, float phiWindow)
Definition: TkDetUtil.h:18
const std::vector< const GeomDet * > & subLayer(int ind) const
const GlobalPoint & position() const
T barePhi() const
Definition: PV3DBase.h:65
int subLayerIndex() const
BinFinderType theFrontBinFinder
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
const std::vector< const GeomDet * > & subLayerBrothers(int ind) const
std::vector< const GeomDet * > theBackDetBrothers
bool phiLess(float phi1, float phi2)
Definition: VectorUtil.h:18
void add(std::map< std::string, TH1 * > &h, TH1 *hist)
PeriodicBinFinderInPhi< float > BinFinderType
BinFinderType theBackBinFinder
virtual const BoundDisk& Phase2EndcapRing::specificSurface ( ) const
inlinevirtual

Definition at line 38 of file Phase2EndcapRing.h.

References addClosest(), computeCrossings(), searchNeighbors(), theDisk, and svgfig::window().

38 { return *theDisk; }
ReferenceCountingPointer< BoundDisk > theDisk
const std::vector<const GeomDet*>& Phase2EndcapRing::subLayer ( int  ind) const
inlineprivate

Definition at line 62 of file Phase2EndcapRing.h.

References theBackDets, and theFrontDets.

Referenced by addClosest(), and searchNeighbors().

62 { return (ind == 0 ? theFrontDets : theBackDets); }
std::vector< const GeomDet * > theFrontDets
std::vector< const GeomDet * > theBackDets
const std::vector<const GeomDet*>& Phase2EndcapRing::subLayerBrothers ( int  ind) const
inlineprivate

Definition at line 64 of file Phase2EndcapRing.h.

References theBackDetBrothers, and theFrontDetBrothers.

Referenced by addClosest(), and searchNeighbors().

64  {
65  return (ind == 0 ? theFrontDetBrothers : theBackDetBrothers);
66  }
std::vector< const GeomDet * > theFrontDetBrothers
std::vector< const GeomDet * > theBackDetBrothers
const BoundSurface& Phase2EndcapRing::surface ( ) const
inlineoverridevirtual

The surface of the GeometricSearchDet.

Implements GeometricSearchDet.

Definition at line 22 of file Phase2EndcapRing.h.

References theDisk.

22 { return *theDisk; }
ReferenceCountingPointer< BoundDisk > theDisk

Member Data Documentation

BinFinderType Phase2EndcapRing::theBackBinFinder
private

Definition at line 82 of file Phase2EndcapRing.h.

Referenced by computeCrossings(), Phase2EndcapRing(), and searchNeighbors().

std::vector<const GeomDet*> Phase2EndcapRing::theBackDetBrothers
private
std::vector<const GeomDet*> Phase2EndcapRing::theBackDets
private

Definition at line 71 of file Phase2EndcapRing.h.

Referenced by computeCrossings(), Phase2EndcapRing(), and subLayer().

ReferenceCountingPointer<BoundDisk> Phase2EndcapRing::theBackDisk
private

Definition at line 77 of file Phase2EndcapRing.h.

Referenced by computeCrossings(), and Phase2EndcapRing().

std::vector<const GeomDet*> Phase2EndcapRing::theDets
private

Definition at line 69 of file Phase2EndcapRing.h.

Referenced by basicComponents(), and Phase2EndcapRing().

ReferenceCountingPointer<BoundDisk> Phase2EndcapRing::theDisk
private

Definition at line 75 of file Phase2EndcapRing.h.

Referenced by Phase2EndcapRing(), specificSurface(), and surface().

BinFinderType Phase2EndcapRing::theFrontBinFinder
private

Definition at line 81 of file Phase2EndcapRing.h.

Referenced by computeCrossings(), Phase2EndcapRing(), and searchNeighbors().

std::vector<const GeomDet*> Phase2EndcapRing::theFrontDetBrothers
private
std::vector<const GeomDet*> Phase2EndcapRing::theFrontDets
private

Definition at line 70 of file Phase2EndcapRing.h.

Referenced by computeCrossings(), Phase2EndcapRing(), and subLayer().

ReferenceCountingPointer<BoundDisk> Phase2EndcapRing::theFrontDisk
private

Definition at line 76 of file Phase2EndcapRing.h.

Referenced by computeCrossings(), and Phase2EndcapRing().