CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Types | Protected Attributes | Private Member Functions
TECLayer Class Reference

#include <TECLayer.h>

Inheritance diagram for TECLayer:
ForwardDetLayer DetLayer GeometricSearchDet

Public Member Functions

virtual const std::vector
< const GeomDet * > & 
basicComponents () const
 
virtual const std::vector
< const GeometricSearchDet * > & 
components () const __attribute__((cold))
 Returns basic components, if any. More...
 
void groupedCompatibleDetsV (const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const __attribute__((hot))
 
virtual SubDetector subDetector () const
 The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap) More...
 
 TECLayer (std::vector< const TECPetal * > &innerPetals, std::vector< const TECPetal * > &outerPetals) __attribute__((cold))
 
 ~TECLayer () __attribute__((cold))
 
- Public Member Functions inherited from ForwardDetLayer
virtual std::pair< bool,
TrajectoryStateOnSurface
compatible (const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &) const
 
bool contains (const Local3DPoint &p) const
 
 ForwardDetLayer (bool doHaveGroups)
 
virtual Location location () const
 Which part of the detector (barrel, endcap) More...
 
virtual const BoundDiskspecificSurface () const
 
virtual const BoundSurfacesurface () const
 The surface of the GeometricSearchDet. More...
 
virtual ~ForwardDetLayer ()
 
- Public Member Functions inherited from DetLayer
 DetLayer (bool doHaveGroup, bool ibar)
 
bool isBarrel () const
 
bool isForward () const
 
int seqNum () const
 
void setSeqNum (int sq)
 
virtual ~DetLayer ()
 
- 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::PositionType
position () const
 Returns position of the surface. More...
 
virtual ~GeometricSearchDet ()
 

Protected Types

typedef PeriodicBinFinderInPhi
< float > 
BinFinderPhi
 

Protected Attributes

BinFinderPhi theBackBinFinder
 
std::vector< const TECPetal * > theBackComps
 
ReferenceCountingPointer
< BoundDisk
theBackDisk
 
std::vector< const GeomDet * > theBasicComps
 
std::vector< const
GeometricSearchDet * > 
theComps
 
BinFinderPhi theFrontBinFinder
 
std::vector< const TECPetal * > theFrontComps
 
ReferenceCountingPointer
< BoundDisk
theFrontDisk
 
- Protected Attributes inherited from GeometricSearchDet
bool haveGroups
 
GeomDetCompatibilityChecker theCompatibilityChecker
 

Private Member Functions

bool addClosest (const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result) const __attribute__((hot))
 
SubLayerCrossings computeCrossings (const TrajectoryStateOnSurface &startingState, 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, bool checkClosest) const __attribute__((hot))
 
const std::vector< const
TECPetal * > & 
subLayer (int ind) const
 

Additional Inherited Members

- Public Types inherited from DetLayer
typedef
GeomDetEnumerators::Location 
Location
 
typedef
GeomDetEnumerators::SubDetector 
SubDetector
 
- Public Types inherited from GeometricSearchDet
typedef std::pair< const
GeomDet
*, TrajectoryStateOnSurface
DetWithState
 
typedef BoundSurface::PositionType PositionType
 
typedef BoundSurface::RotationType RotationType
 
typedef TrajectoryStateOnSurface TrajectoryState
 
- Protected Member Functions inherited from ForwardDetLayer
SimpleDiskBounds const & bounds () const
 
virtual BoundDiskcomputeSurface ()
 
virtual void initialize ()
 
float rmax () const
 
float rmin () const
 
void setSurface (BoundDisk *cp)
 
float zmax () const
 
float zmin () const
 

Detailed Description

A concrete implementation for TEC layer built out of TECPetals

Definition at line 16 of file TECLayer.h.

Member Typedef Documentation

Definition at line 78 of file TECLayer.h.

Constructor & Destructor Documentation

TECLayer::TECLayer ( std::vector< const TECPetal * > &  innerPetals,
std::vector< const TECPetal * > &  outerPetals 
)

Definition at line 56 of file TECLayer.cc.

References LogDebug, PV3DBase< T, PVType, FrameType >::perp(), GeometricSearchDet::position(), ForwardDetLayer::setSurface(), ForwardDetLayer::specificSurface(), theBackBinFinder, theBackComps, theBackDisk, theBasicComps, theComps, theFrontBinFinder, theFrontComps, theFrontDisk, and PV3DBase< T, PVType, FrameType >::z().

57  :
58  ForwardDetLayer(true),
59  theFrontComps(innerPetals.begin(),innerPetals.end()),
60  theBackComps(outerPetals.begin(),outerPetals.end())
61 {
62  theComps.assign(theFrontComps.begin(),theFrontComps.end());
63  theComps.insert(theComps.end(),theBackComps.begin(),theBackComps.end());
64 
65  for(vector<const GeometricSearchDet*>::const_iterator it=theComps.begin();
66  it!=theComps.end();it++){
67  theBasicComps.insert(theBasicComps.end(),
68  (**it).basicComponents().begin(),
69  (**it).basicComponents().end());
70  }
71 
72 
73  //This should be no necessary. TO BE CHECKED
74  //sort(theFrontPetals.begin(), theFrontPetals.end(), PetalLessPhi());
75  //sort(theBackPetals.begin(), theBackPetals.end(), PetalLessPhi());
76 
77  // building disk for front and back petals
78  setSurface( computeDisk( theComps ) );
79  theFrontDisk = computeDisk( theFrontComps);
80  theBackDisk = computeDisk( theBackComps);
81 
82  // set up the bin finders
83  theFrontBinFinder = BinFinderPhi(theFrontComps.front()->position().phi(),
84  theFrontComps.size());
85  theBackBinFinder = BinFinderPhi(theBackComps.front()->position().phi(),
86  theBackComps.size());
87 
88  //--------- DEBUG INFO --------------
89  LogDebug("TkDetLayers") << "DEBUG INFO for TECLayer" << "\n"
90  << "TECLayer z,perp, innerRadius, outerR: "
91  << this->position().z() << " , "
92  << this->position().perp() << " , "
93  << this->specificSurface().innerRadius() << " , "
94  << this->specificSurface().outerRadius() ;
95 
96 
97  for(auto it=theFrontComps.begin();
98  it!=theFrontComps.end(); it++){
99  LogDebug("TkDetLayers") << "frontPetal phi,z,r: "
100  << (*it)->surface().position().phi() << " , "
101  << (*it)->surface().position().z() << " , "
102  << (*it)->surface().position().perp() ;
103  }
104 
105  for(auto it=theBackComps.begin();
106  it!=theBackComps.end(); it++){
107  LogDebug("TkDetLayers") << "backPetal phi,z,r: "
108  << (*it)->surface().position().phi() << " , "
109  << (*it)->surface().position().z() << " , "
110  << (*it)->surface().position().perp() ;
111  }
112  //-----------------------------------
113 
114 
115 }
#define LogDebug(id)
std::vector< const TECPetal * > theBackComps
Definition: TECLayer.h:72
T perp() const
Definition: PV3DBase.h:72
std::vector< const GeomDet * > theBasicComps
Definition: TECLayer.h:69
void setSurface(BoundDisk *cp)
ForwardDetLayer(bool doHaveGroups)
ReferenceCountingPointer< BoundDisk > theFrontDisk
Definition: TECLayer.h:75
std::vector< const GeometricSearchDet * > theComps
Definition: TECLayer.h:68
ReferenceCountingPointer< BoundDisk > theBackDisk
Definition: TECLayer.h:76
T z() const
Definition: PV3DBase.h:64
virtual const BoundDisk & specificSurface() const
BinFinderPhi theBackBinFinder
Definition: TECLayer.h:81
virtual const Surface::PositionType & position() const
Returns position of the surface.
BinFinderPhi theFrontBinFinder
Definition: TECLayer.h:80
std::vector< const TECPetal * > theFrontComps
Definition: TECLayer.h:71
PeriodicBinFinderInPhi< float > BinFinderPhi
Definition: TECLayer.h:78
TECLayer::~TECLayer ( )

Definition at line 119 of file TECLayer.cc.

References i, and theComps.

119  {
120  for (auto i=theComps.begin(); i!=theComps.end(); i++) {
121  delete *i;
122  }
123 }
int i
Definition: DBlmapReader.cc:9
std::vector< const GeometricSearchDet * > theComps
Definition: TECLayer.h:68

Member Function Documentation

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

Definition at line 225 of file TECLayer.cc.

References CompatibleDetToGroupAdder::add(), SubLayerCrossing::closestDetIndex(), LogDebug, subLayer(), and SubLayerCrossing::subLayerIndex().

Referenced by groupedCompatibleDetsV().

230 {
231  const auto & sub( subLayer( crossing.subLayerIndex()));
232  const auto det(sub[crossing.closestDetIndex()]);
233 
234  LogDebug("TkDetLayers")
235  << "in TECLayer, adding petal at r,z,phi: ("
236  << det->position().perp() << ","
237  << det->position().z() << ","
238  << det->position().phi() << ")" << endl;
239 
240  return CompatibleDetToGroupAdder().add( *det, tsos, prop, est, result);
241 }
#define LogDebug(id)
int closestDetIndex() const
const std::vector< const TECPetal * > & subLayer(int ind) const
Definition: TECLayer.h:61
int subLayerIndex() const
tuple result
Definition: query.py:137
static bool add(const GeometricSearchDet &det, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) __attribute__((hot))
virtual const std::vector<const GeomDet*>& TECLayer::basicComponents ( ) const
inlinevirtual

Implements GeometricSearchDet.

Definition at line 24 of file TECLayer.h.

References theBasicComps.

24 {return theBasicComps;}
std::vector< const GeomDet * > theBasicComps
Definition: TECLayer.h:69
virtual const std::vector<const GeometricSearchDet*>& TECLayer::components ( ) const
inlinevirtual

Returns basic components, if any.

Returns direct components, if any

Implements GeometricSearchDet.

Definition at line 26 of file TECLayer.h.

References theComps.

26 {return theComps;}
std::vector< const GeometricSearchDet * > theComps
Definition: TECLayer.h:68
SubLayerCrossings TECLayer::computeCrossings ( const TrajectoryStateOnSurface startingState,
PropagationDirection  propDir 
) const
private

Definition at line 167 of file TECLayer.cc.

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

Referenced by groupedCompatibleDetsV().

169 {
170  double rho( startingState.transverseCurvature());
171 
172  HelixPlaneCrossing::PositionType startPos( startingState.globalPosition() );
173  HelixPlaneCrossing::DirectionType startDir( startingState.globalMomentum() );
174  HelixForwardPlaneCrossing crossing(startPos,startDir,rho,propDir);
175 
176  pair<bool,double> frontPath = crossing.pathLength( *theFrontDisk);
177  if (!frontPath.first) SubLayerCrossings();
178 
179 
180  GlobalPoint gFrontPoint(crossing.position(frontPath.second));
181 
182  LogDebug("TkDetLayers")
183  << "in TECLayer,front crossing point: r,z,phi: ("
184  << gFrontPoint.perp() << ","
185  << gFrontPoint.z() << ","
186  << gFrontPoint.phi() << ")" << endl;
187 
188 
189  int frontIndex = theFrontBinFinder.binIndex(gFrontPoint.barePhi());
190  SubLayerCrossing frontSLC( 0, frontIndex, gFrontPoint);
191 
192 
193 
194  pair<bool,double> backPath = crossing.pathLength( *theBackDisk);
195  if (!backPath.first) SubLayerCrossings();
196 
197 
198  GlobalPoint gBackPoint( crossing.position(backPath.second));
199  LogDebug("TkDetLayers")
200  << "in TECLayer,back crossing point: r,z,phi: ("
201  << gBackPoint.perp() << ","
202  << gFrontPoint.z() << ","
203  << gBackPoint.phi() << ")" << endl;
204 
205 
206  int backIndex = theBackBinFinder.binIndex(gBackPoint.barePhi());
207  SubLayerCrossing backSLC( 1, backIndex, gBackPoint);
208 
209 
210  // 0ss: frontDisk has index=0, backDisk has index=1
211  float frontDist = std::abs(Geom::deltaPhi( gFrontPoint.barePhi(),
212  theFrontComps[frontIndex]->surface().phi()) );
213  float backDist = std::abs(Geom::deltaPhi( gBackPoint.barePhi(),
214  theBackComps[backIndex]->surface().phi()) );
215 
216 
217  if (frontDist < backDist) {
218  return SubLayerCrossings( frontSLC, backSLC, 0);
219  }
220  else {
221  return SubLayerCrossings( backSLC, frontSLC, 1);
222  }
223 }
#define LogDebug(id)
std::vector< const TECPetal * > theBackComps
Definition: TECLayer.h:72
GlobalPoint globalPosition() const
ReferenceCountingPointer< BoundDisk > theFrontDisk
Definition: TECLayer.h:75
virtual int binIndex(T phi) const
returns an index in the valid range for the bin that contains phi
ReferenceCountingPointer< BoundDisk > theBackDisk
Definition: TECLayer.h:76
BinFinderPhi theBackBinFinder
Definition: TECLayer.h:81
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
BinFinderPhi theFrontBinFinder
Definition: TECLayer.h:80
GlobalVector globalMomentum() const
std::vector< const TECPetal * > theFrontComps
Definition: TECLayer.h:71
void TECLayer::groupedCompatibleDetsV ( const TrajectoryStateOnSurface tsos,
const Propagator prop,
const MeasurementEstimator est,
std::vector< DetGroup > &  result 
) const
virtual

Reimplemented from GeometricSearchDet.

Definition at line 127 of file TECLayer.cc.

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

130  {
131  SubLayerCrossings crossings;
132  crossings = computeCrossings( tsos, prop.propagationDirection());
133  if(! crossings.isValid()) return;
134 
135  vector<DetGroup> closestResult;
136  addClosest( tsos, prop, est, crossings.closest(), closestResult);
137  LogDebug("TkDetLayers") << "in TECLayer, closestResult.size(): " << closestResult.size();
138 
139  // this differs from other groupedCompatibleDets logic, which DON'T check next in such cases!!!
140  if(closestResult.empty()){
141  vector<DetGroup> nextResult;
142  addClosest( tsos, prop, est, crossings.other(), nextResult);
143  LogDebug("TkDetLayers") << "in TECLayer, nextResult.size(): " << nextResult.size();
144  if(nextResult.empty()) return;
145 
146 
147  DetGroupElement nextGel( nextResult.front().front());
148  int crossingSide = LayerCrossingSide::endcapSide( nextGel.trajectoryState(), prop);
149  DetGroupMerger::orderAndMergeTwoLevels( std::move(closestResult), std::move(nextResult), result,
150  crossings.closestIndex(), crossingSide);
151  }
152  else {
153  DetGroupElement closestGel( closestResult.front().front());
154  float phiWindow = tkDetUtil::computeWindowSize( closestGel.det(), closestGel.trajectoryState(), est);
155  searchNeighbors( tsos, prop, est, crossings.closest(), phiWindow,
156  closestResult, false);
157  vector<DetGroup> nextResult;
158  searchNeighbors( tsos, prop, est, crossings.other(), phiWindow,
159  nextResult, true);
160 
161  int crossingSide = LayerCrossingSide::endcapSide( closestGel.trajectoryState(), prop);
163  crossings.closestIndex(), crossingSide);
164  }
165 }
#define LogDebug(id)
virtual PropagationDirection propagationDirection() const
Definition: Propagator.h:155
int closestIndex() const
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est)
Definition: TkDetUtil.cc:10
void searchNeighbors(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, float window, std::vector< DetGroup > &result, bool checkClosest) const __attribute__((hot))
Definition: TECLayer.cc:259
bool addClosest(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result) const __attribute__((hot))
Definition: TECLayer.cc:225
SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface &startingState, PropagationDirection propDir) const __attribute__((hot))
Definition: TECLayer.cc:167
tuple result
Definition: query.py:137
def move
Definition: eostools.py:510
static int endcapSide(const TrajectoryStateOnSurface &startingState, const Propagator &prop)
const SubLayerCrossing & other() const
const SubLayerCrossing & closest() const
static void orderAndMergeTwoLevels(std::vector< DetGroup > &&one, std::vector< DetGroup > &&two, std::vector< DetGroup > &result, int firstIndex, int firstCrossed)
void TECLayer::searchNeighbors ( const TrajectoryStateOnSurface tsos,
const Propagator prop,
const MeasurementEstimator est,
const SubLayerCrossing crossing,
float  window,
std::vector< DetGroup > &  result,
bool  checkClosest 
) const
private

Definition at line 259 of file TECLayer.cc.

References Clusterizer1DCommons::add(), PV3DBase< T, PVType, FrameType >::barePhi(), PeriodicBinFinderInPhi< T >::binIndex(), SubLayerCrossing::closestDetIndex(), muon::overlap(), phi, SubLayerCrossing::position(), subLayer(), SubLayerCrossing::subLayerIndex(), ForwardDetLayer::surface(), theBackBinFinder, and theFrontBinFinder.

Referenced by groupedCompatibleDetsV().

266 {
267  GlobalPoint gCrossingPos = crossing.position();
268  auto gphi = gCrossingPos.barePhi();
269 
270  const auto & sLayer( subLayer( crossing.subLayerIndex()));
271 
272  int closestIndex = crossing.closestDetIndex();
273  int negStartIndex = closestIndex-1;
274  int posStartIndex = closestIndex+1;
275 
276  if (checkClosest) { // must decide if the closest is on the neg or pos side
277  if ( PhiLess()( gphi, sLayer[closestIndex]->surface().phi())) {
278  posStartIndex = closestIndex;
279  }
280  else {
281  negStartIndex = closestIndex;
282  }
283  }
284 
285  const BinFinderPhi& binFinder = (crossing.subLayerIndex()==0 ? theFrontBinFinder : theBackBinFinder);
286 
287  typedef CompatibleDetToGroupAdder Adder;
288  int half = sLayer.size()/2; // to check if dets are called twice....
289  for (int idet=negStartIndex; idet >= negStartIndex - half; idet--) {
290  const auto & neighborPetal = *sLayer[binFinder.binIndex(idet)];
291  if (!overlap( gphi, neighborPetal, window)) break;
292  if (!Adder::add( neighborPetal, tsos, prop, est, result)) break;
293  // maybe also add shallow crossing angle test here???
294  }
295  for (int idet=posStartIndex; idet < posStartIndex + half; idet++) {
296  const auto & neighborPetal = *sLayer[binFinder.binIndex(idet)];
297  if (!overlap( gphi, neighborPetal, window)) break;
298  if (!Adder::add( neighborPetal, tsos, prop, est, result)) break;
299  // maybe also add shallow crossing angle test here???
300  }
301 }
def window
Definition: svgfig.py:642
int closestDetIndex() const
virtual const BoundSurface & surface() const
The surface of the GeometricSearchDet.
void add(const std::vector< const T * > &source, std::vector< const T * > &dest)
const std::vector< const TECPetal * > & subLayer(int ind) const
Definition: TECLayer.h:61
bool overlap(const reco::Muon &muon1, const reco::Muon &muon2, double pullX=1.0, double pullY=1.0, bool checkAdjacentChambers=false)
const GlobalPoint & position() const
T barePhi() const
Definition: PV3DBase.h:68
int subLayerIndex() const
tuple result
Definition: query.py:137
BinFinderPhi theBackBinFinder
Definition: TECLayer.h:81
BinFinderPhi theFrontBinFinder
Definition: TECLayer.h:80
PeriodicBinFinderInPhi< float > BinFinderPhi
Definition: TECLayer.h:78
virtual SubDetector TECLayer::subDetector ( ) const
inlinevirtual

The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)

Implements DetLayer.

Definition at line 34 of file TECLayer.h.

References GeomDetEnumerators::subDetGeom, and GeomDetEnumerators::TEC.

const std::vector<const TECPetal*>& TECLayer::subLayer ( int  ind) const
inlineprivate

Definition at line 61 of file TECLayer.h.

References theBackComps, and theFrontComps.

Referenced by addClosest(), and searchNeighbors().

61  {
62  return (ind==0 ? theFrontComps : theBackComps);
63  }
std::vector< const TECPetal * > theBackComps
Definition: TECLayer.h:72
std::vector< const TECPetal * > theFrontComps
Definition: TECLayer.h:71

Member Data Documentation

BinFinderPhi TECLayer::theBackBinFinder
protected

Definition at line 81 of file TECLayer.h.

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

std::vector<const TECPetal*> TECLayer::theBackComps
protected

Definition at line 72 of file TECLayer.h.

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

ReferenceCountingPointer<BoundDisk> TECLayer::theBackDisk
protected

Definition at line 76 of file TECLayer.h.

Referenced by computeCrossings(), and TECLayer().

std::vector<const GeomDet*> TECLayer::theBasicComps
protected

Definition at line 69 of file TECLayer.h.

Referenced by basicComponents(), and TECLayer().

std::vector<const GeometricSearchDet*> TECLayer::theComps
protected

Definition at line 68 of file TECLayer.h.

Referenced by components(), TECLayer(), and ~TECLayer().

BinFinderPhi TECLayer::theFrontBinFinder
protected

Definition at line 80 of file TECLayer.h.

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

std::vector<const TECPetal*> TECLayer::theFrontComps
protected

Definition at line 71 of file TECLayer.h.

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

ReferenceCountingPointer<BoundDisk> TECLayer::theFrontDisk
protected

Definition at line 75 of file TECLayer.h.

Referenced by computeCrossings(), and TECLayer().