CMS 3D CMS Logo

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

#include <PixelBarrelLayer.h>

Inheritance diagram for PixelBarrelLayer:
RodBarrelLayer GeometricSearchDetWithGroups BarrelDetLayer GeometricSearchDet DetLayer GeometricSearchDet

Public Types

typedef PeriodicBinFinderInPhi
< double > 
BinFinderType
 
- 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
 
- Public Types inherited from GeometricSearchDetWithGroups
typedef
GeometricSearchDet::DetWithState 
DetWithState
 

Public Member Functions

virtual const std::vector
< const GeomDet * > & 
basicComponents () const
 
virtual const std::vector
< const GeometricSearchDet * > & 
components () const
 Returns basic components, if any. More...
 
void groupedCompatibleDetsV (const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const
 
 PixelBarrelLayer (std::vector< const PixelRod * > &innerRods, std::vector< const PixelRod * > &outerRods)
 
virtual SubDetector subDetector () const
 The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap) More...
 
 ~PixelBarrelLayer ()
 
- Public Member Functions inherited from RodBarrelLayer
 RodBarrelLayer ()
 
virtual ~RodBarrelLayer ()
 
- Public Member Functions inherited from BarrelDetLayer
 BarrelDetLayer ()
 
virtual std::pair< bool,
TrajectoryStateOnSurface
compatible (const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const
 
bool contains (const Local3DPoint &p) const
 
virtual Location location () const
 DetLayer interface. More...
 
virtual const BoundCylinderspecificSurface () const
 Extension of the interface. More...
 
virtual const BoundSurfacesurface () const
 GeometricSearchDet interface. More...
 
virtual ~BarrelDetLayer ()
 
- Public Member Functions inherited from DetLayer
std::vector< const DetLayer * > compatibleLayers (NavigationDirection direction) const
 
std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
 
std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const
 
 DetLayer ()
 
NavigableLayernavigableLayer () const
 Return the NavigableLayer associated with this DetLayer. More...
 
virtual std::vector< const
DetLayer * > 
nextLayers (NavigationDirection direction) const
 
virtual std::vector< const
DetLayer * > 
nextLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
 
virtual void setNavigableLayer (NavigableLayer *nlp)
 Set the NavigableLayer associated with this DetLayer. More...
 
virtual ~DetLayer ()
 
- Public Member Functions inherited from GeometricSearchDet
virtual std::vector< DetWithStatecompatibleDets (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
 
 GeometricSearchDet ()
 
virtual std::vector< DetGroupgroupedCompatibleDets (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
 
virtual const
Surface::PositionType
position () const
 Returns position of the surface. More...
 
virtual ~GeometricSearchDet ()
 
- Public Member Functions inherited from GeometricSearchDetWithGroups
void compatibleDetsV (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const
 
bool hasGroups () const
 

Private Member Functions

bool addClosest (const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result) const
 
double calculatePhiWindow (double Xmax, const GeomDet &det, const TrajectoryStateOnSurface &state) const
 
SubLayerCrossings computeCrossings (const TrajectoryStateOnSurface &tsos, PropagationDirection propDir) const
 
float computeWindowSize (const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const
 
BoundCylindercylinder (const std::vector< const GeometricSearchDet * > &rods) const
 
bool overlap (const GlobalPoint &gpos, const GeometricSearchDet &rod, float phiWin) const
 
void searchNeighbors (const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, float window, std::vector< DetGroup > &result, bool checkClosest) const
 
const std::vector< const
GeometricSearchDet * > & 
subLayer (int ind) const
 

Private Attributes

std::vector< const GeomDet * > theBasicComps
 
std::vector< const
GeometricSearchDet * > 
theComps
 
BinFinderType theInnerBinFinder
 
std::vector< const
GeometricSearchDet * > 
theInnerComps
 
ReferenceCountingPointer
< BoundCylinder
theInnerCylinder
 
BinFinderType theOuterBinFinder
 
std::vector< const
GeometricSearchDet * > 
theOuterComps
 
ReferenceCountingPointer
< BoundCylinder
theOuterCylinder
 

Additional Inherited Members

- Protected Member Functions inherited from BarrelDetLayer
virtual BoundCylindercomputeSurface ()
 
virtual void initialize ()
 
void setSurface (BoundCylinder *cp)
 
- Protected Attributes inherited from GeometricSearchDet
GeomDetCompatibilityChecker theCompatibilityChecker
 

Detailed Description

A concrete implementation for PixelBarrel layer built out of BarrelPixelRod

Definition at line 17 of file PixelBarrelLayer.h.

Member Typedef Documentation

Definition at line 19 of file PixelBarrelLayer.h.

Constructor & Destructor Documentation

PixelBarrelLayer::PixelBarrelLayer ( std::vector< const PixelRod * > &  innerRods,
std::vector< const PixelRod * > &  outerRods 
)

Definition at line 20 of file PixelBarrelLayer.cc.

References cylinder(), i, BarrelDetLayer::initialize(), LogDebug, theBasicComps, theComps, theInnerBinFinder, theInnerComps, theInnerCylinder, theOuterBinFinder, theOuterComps, and theOuterCylinder.

21  :
22  theInnerComps(innerRods.begin(),innerRods.end()),
23  theOuterComps(outerRods.begin(),outerRods.end())
24 {
25  theComps.assign(theInnerComps.begin(),theInnerComps.end());
26  theComps.insert(theComps.end(),theOuterComps.begin(),theOuterComps.end());
27 
28  for(vector<const GeometricSearchDet*>::const_iterator it=theComps.begin();
29  it!=theComps.end();it++){
30  theBasicComps.insert(theBasicComps.end(),
31  (**it).basicComponents().begin(),
32  (**it).basicComponents().end());
33  }
34 
37 
38  theInnerBinFinder = BinFinderType(theInnerComps.front()->position().phi(),
39  theInnerComps.size());
40  theOuterBinFinder = BinFinderType(theOuterComps.front()->position().phi(),
41  theOuterComps.size());
42 
43 
45 
46 
47  //--------- DEBUG INFO --------------
48  LogDebug("TkDetLayers") << "==== DEBUG PixelBarrelLayer =====" ;
49  LogDebug("TkDetLayers") << "PixelBarrelLayer innerCyl r,lenght: "
50  << theInnerCylinder->radius() << " , "
51  << theInnerCylinder->bounds().length();
52 
53  LogDebug("TkDetLayers") << "PixelBarrelLayer outerCyl r,lenght: "
54  << theOuterCylinder->radius() << " , "
55  << theOuterCylinder->bounds().length();
56 
57 
58  for (vector<const GeometricSearchDet*>::const_iterator i=theInnerComps.begin();
59  i != theInnerComps.end(); i++){
60  LogDebug("TkDetLayers") << "inner PixelRod pos z,perp,eta,phi: "
61  << (**i).position().z() << " , "
62  << (**i).position().perp() << " , "
63  << (**i).position().eta() << " , "
64  << (**i).position().phi() ;
65  }
66 
67  for (vector<const GeometricSearchDet*>::const_iterator i=theOuterComps.begin();
68  i != theOuterComps.end(); i++){
69  LogDebug("TkDetLayers") << "outer PixelRod pos z,perp,eta,phi: "
70  << (**i).position().z() << " , "
71  << (**i).position().perp() << " , "
72  << (**i).position().eta() << " , "
73  << (**i).position().phi() ;
74  }
75  LogDebug("TkDetLayers") << "==== end DEBUG PixelBarrelLayer =====" ;
76  //-----------------------------------
77 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
virtual void initialize()
ReferenceCountingPointer< BoundCylinder > theInnerCylinder
std::vector< const GeometricSearchDet * > theInnerComps
ReferenceCountingPointer< BoundCylinder > theOuterCylinder
BoundCylinder * cylinder(const std::vector< const GeometricSearchDet * > &rods) const
std::vector< const GeomDet * > theBasicComps
BinFinderType theOuterBinFinder
BinFinderType theInnerBinFinder
PeriodicBinFinderInPhi< double > BinFinderType
std::vector< const GeometricSearchDet * > theComps
std::vector< const GeometricSearchDet * > theOuterComps
PixelBarrelLayer::~PixelBarrelLayer ( )

Definition at line 79 of file PixelBarrelLayer.cc.

References i, and theComps.

79  {
80  vector<const GeometricSearchDet*>::const_iterator i;
81  for (i=theComps.begin(); i!=theComps.end(); i++) {
82  delete *i;
83  }
84 }
int i
Definition: DBlmapReader.cc:9
std::vector< const GeometricSearchDet * > theComps

Member Function Documentation

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

Definition at line 169 of file PixelBarrelLayer.cc.

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

Referenced by groupedCompatibleDetsV().

174 {
175  const vector<const GeometricSearchDet*>& sub( subLayer( crossing.subLayerIndex()));
176  const GeometricSearchDet* det(sub[crossing.closestDetIndex()]);
177  return CompatibleDetToGroupAdder::add( *det, tsos, prop, est, result);
178 }
const std::vector< const GeometricSearchDet * > & subLayer(int ind) const
int closestDetIndex() const
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)
virtual const std::vector<const GeomDet*>& PixelBarrelLayer::basicComponents ( ) const
inlinevirtual

Implements GeometricSearchDet.

Definition at line 29 of file PixelBarrelLayer.h.

References theBasicComps.

29 {return theBasicComps;}
std::vector< const GeomDet * > theBasicComps
double PixelBarrelLayer::calculatePhiWindow ( double  Xmax,
const GeomDet det,
const TrajectoryStateOnSurface state 
) const
private

Definition at line 190 of file PixelBarrelLayer.cc.

References TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::localPosition(), min, PV3DBase< T, PVType, FrameType >::phi(), edm::shift, GeomDet::surface(), and Surface::toGlobal().

Referenced by computeWindowSize().

192 {
193 
194  LocalPoint startPoint = state.localPosition();
195  LocalVector shift( Xmax , 0. , 0.);
196  LocalPoint shift1 = startPoint + shift;
197  LocalPoint shift2 = startPoint + (-shift);
198  //LocalPoint shift2( startPoint); //original code;
199  //shift2 -= shift;
200 
201  double phi1 = det.surface().toGlobal(shift1).phi();
202  double phi2 = det.surface().toGlobal(shift2).phi();
203  double phiStart = state.globalPosition().phi();
204  double phiWin = min(fabs(phiStart-phi1),fabs(phiStart-phi2));
205 
206  return phiWin;
207 }
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:78
Geom::Phi< T > phi() const
Definition: PV3DBase.h:68
GlobalPoint globalPosition() const
#define min(a, b)
Definition: mlp_lapack.h:161
const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
static unsigned int const shift
virtual const std::vector<const GeometricSearchDet*>& PixelBarrelLayer::components ( ) const
inlinevirtual

Returns basic components, if any.

Returns direct components, if any

Implements GeometricSearchDet.

Definition at line 31 of file PixelBarrelLayer.h.

References theComps.

31 {return theComps;}
std::vector< const GeometricSearchDet * > theComps
SubLayerCrossings PixelBarrelLayer::computeCrossings ( const TrajectoryStateOnSurface tsos,
PropagationDirection  propDir 
) const
private

Definition at line 121 of file PixelBarrelLayer.cc.

References PeriodicBinFinderInPhi< T >::binIndex(), PeriodicBinFinderInPhi< T >::binPosition(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), HelixBarrelCylinderCrossing::hasSolution(), Geom::pi(), HelixBarrelCylinderCrossing::position(), rho, theInnerBinFinder, theInnerCylinder, theOuterBinFinder, theOuterCylinder, and TrajectoryStateOnSurface::transverseCurvature().

Referenced by groupedCompatibleDetsV().

123 {
124  GlobalPoint startPos( startingState.globalPosition());
125  GlobalVector startDir( startingState.globalMomentum());
126  double rho( startingState.transverseCurvature());
127 
128  HelixBarrelCylinderCrossing innerCrossing( startPos, startDir, rho,
129  propDir,*theInnerCylinder);
130 
131  if (!innerCrossing.hasSolution()) return SubLayerCrossings();
132  //{
133  //edm::LogInfo(TkDetLayers) << "ERROR in PixelBarrelLayer: inner cylinder not crossed by track" ;
134  //throw DetLayerException("TkRodBarrelLayer: inner subRod not crossed by track");
135  //}
136 
137  GlobalPoint gInnerPoint( innerCrossing.position());
138  int innerIndex = theInnerBinFinder.binIndex(gInnerPoint.phi());
139  float innerDist = theInnerBinFinder.binPosition(innerIndex) - gInnerPoint.phi();
140  SubLayerCrossing innerSLC( 0, innerIndex, gInnerPoint);
141 
142  HelixBarrelCylinderCrossing outerCrossing( startPos, startDir, rho,
143  propDir,*theOuterCylinder);
144 
145  if (!outerCrossing.hasSolution()) return SubLayerCrossings();
146  //if (!outerCrossing.hasSolution()) {
147  // throw DetLayerException("PixelBarrelLayer: inner cylinder not crossed by track");
148  //}
149 
150  GlobalPoint gOuterPoint( outerCrossing.position());
151  int outerIndex = theOuterBinFinder.binIndex(gOuterPoint.phi());
152  float outerDist = theOuterBinFinder.binPosition(outerIndex) - gOuterPoint.phi() ;
153  SubLayerCrossing outerSLC( 1, outerIndex, gOuterPoint);
154 
155  innerDist *= PhiLess()( theInnerBinFinder.binPosition(innerIndex),gInnerPoint.phi()) ? -1. : 1.;
156  outerDist *= PhiLess()( theOuterBinFinder.binPosition(outerIndex),gOuterPoint.phi()) ? -1. : 1.;
157  if (innerDist < 0.) { innerDist += 2.*Geom::pi();}
158  if (outerDist < 0.) { outerDist += 2.*Geom::pi();}
159 
160 
161  if (innerDist < outerDist) {
162  return SubLayerCrossings( innerSLC, outerSLC, 0);
163  }
164  else {
165  return SubLayerCrossings( outerSLC, innerSLC, 1);
166  }
167 }
ReferenceCountingPointer< BoundCylinder > theInnerCylinder
Definition: DDAxes.h:10
virtual int binIndex(T phi) const
returns an index in the valid range for the bin that contains phi
ReferenceCountingPointer< BoundCylinder > theOuterCylinder
BinFinderType theOuterBinFinder
virtual T binPosition(int ind) const
the middle of the bin in radians
BinFinderType theInnerBinFinder
double pi()
Definition: Pi.h:31
float PixelBarrelLayer::computeWindowSize ( const GeomDet det,
const TrajectoryStateOnSurface tsos,
const MeasurementEstimator est 
) const
private

Definition at line 180 of file PixelBarrelLayer.cc.

References calculatePhiWindow(), MeasurementEstimator::maximalLocalDisplacement(), GeomDet::surface(), and vdt::x.

Referenced by groupedCompatibleDetsV().

183 {
184  double xmax =
185  est.maximalLocalDisplacement(tsos, det->surface()).x();
186  return calculatePhiWindow( xmax, *det, tsos);
187 }
virtual Local2DVector maximalLocalDisplacement(const TrajectoryStateOnSurface &ts, const BoundPlane &plane) const
double calculatePhiWindow(double Xmax, const GeomDet &det, const TrajectoryStateOnSurface &state) const
const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
x
Definition: VDTMath.h:216
BoundCylinder * PixelBarrelLayer::cylinder ( const std::vector< const GeometricSearchDet * > &  rods) const
private

Definition at line 271 of file PixelBarrelLayer.cc.

References tmp.

Referenced by PixelBarrelLayer().

272 {
273  vector<const GeomDet*> tmp;
274  for (vector<const GeometricSearchDet*>::const_iterator it=rods.begin(); it!=rods.end(); it++) {
275  tmp.insert(tmp.end(),(*it)->basicComponents().begin(),(*it)->basicComponents().end());
276  }
277  return CylinderBuilderFromDet()( tmp.begin(), tmp.end());
278 }
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
void PixelBarrelLayer::groupedCompatibleDetsV ( const TrajectoryStateOnSurface tsos,
const Propagator prop,
const MeasurementEstimator est,
std::vector< DetGroup > &  result 
) const
virtual

Reimplemented from GeometricSearchDet.

Definition at line 88 of file PixelBarrelLayer.cc.

References addClosest(), LayerCrossingSide::barrelSide(), SubLayerCrossings::closest(), SubLayerCrossings::closestIndex(), computeCrossings(), computeWindowSize(), SubLayerCrossings::isValid(), DetGroupMerger::orderAndMergeTwoLevels(), SubLayerCrossings::other(), Propagator::propagationDirection(), query::result, searchNeighbors(), and svgfig::window().

91  {
92  vector<DetGroup> closestResult;
93  SubLayerCrossings crossings;
94  crossings = computeCrossings( tsos, prop.propagationDirection());
95  if(! crossings.isValid()) return;
96 
97  addClosest( tsos, prop, est, crossings.closest(), closestResult);
98  if (closestResult.empty()) {
99  addClosest( tsos, prop, est, crossings.other(), result);
100  return;
101  }
102 
103  DetGroupElement closestGel( closestResult.front().front());
104  float window = computeWindowSize( closestGel.det(), closestGel.trajectoryState(), est);
105 
106  searchNeighbors( tsos, prop, est, crossings.closest(), window,
107  closestResult, false);
108 
109  vector<DetGroup> nextResult;
110  searchNeighbors( tsos, prop, est, crossings.other(), window,
111  nextResult, true);
112 
113  int crossingSide = LayerCrossingSide().barrelSide( closestGel.trajectoryState(), prop);
114  DetGroupMerger::orderAndMergeTwoLevels( closestResult, nextResult, result,
115  crossings.closestIndex(), crossingSide);
116 }
static void orderAndMergeTwoLevels(const std::vector< DetGroup > &one, const std::vector< DetGroup > &two, std::vector< DetGroup > &result, int firstIndex, int firstCrossed)
def window
Definition: svgfig.py:642
virtual PropagationDirection propagationDirection() const
Definition: Propagator.h:143
int closestIndex() const
void searchNeighbors(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, float window, std::vector< DetGroup > &result, bool checkClosest) const
tuple result
Definition: query.py:137
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const
const SubLayerCrossing & other() const
SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface &tsos, PropagationDirection propDir) const
bool addClosest(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result) const
int barrelSide(const TrajectoryStateOnSurface &startingState, const Propagator &prop) const
returns 0 if barrel layer crossed from inside, 1 if from outside
const SubLayerCrossing & closest() const
bool PixelBarrelLayer::overlap ( const GlobalPoint gpos,
const GeometricSearchDet rod,
float  phiWin 
) const
private

Definition at line 253 of file PixelBarrelLayer.cc.

References PV3DBase< T, PVType, FrameType >::phi(), BoundSurface::phiSpan(), rangesIntersect(), and GeometricSearchDet::surface().

Referenced by searchNeighbors().

254 {
255  GlobalPoint crossPoint(gpos);
256 
257  // introduce offset (extrapolated point and true propagated point differ by 0.0003 - 0.00033,
258  // due to thickness of Rod of 1 cm)
259  const float phiOffset = 0.00034; //...TOBE CHECKED LATER...
260  phiWin += phiOffset;
261 
262  // detector phi range
263 
264  pair<float,float> phiRange(crossPoint.phi()-phiWin, crossPoint.phi()+phiWin);
265 
266  return rangesIntersect(phiRange, gsdet.surface().phiSpan(), PhiLess());
267 
268 }
bool rangesIntersect(const Range &a, const Range &b)
void PixelBarrelLayer::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 210 of file PixelBarrelLayer.cc.

References CompatibleDetToGroupAdder::add(), PeriodicBinFinderInPhi< T >::binIndex(), SubLayerCrossing::closestDetIndex(), overlap(), PV3DBase< T, PVType, FrameType >::phi(), SubLayerCrossing::position(), subLayer(), SubLayerCrossing::subLayerIndex(), theInnerBinFinder, and theOuterBinFinder.

Referenced by groupedCompatibleDetsV().

217 {
218  GlobalPoint gCrossingPos = crossing.position();
219 
220  const vector<const GeometricSearchDet*>& sLayer( subLayer( crossing.subLayerIndex()));
221 
222  int closestIndex = crossing.closestDetIndex();
223  int negStartIndex = closestIndex-1;
224  int posStartIndex = closestIndex+1;
225 
226  if (checkClosest) { // must decide if the closest is on the neg or pos side
227  if ( PhiLess()( gCrossingPos.phi(), sLayer[closestIndex]->position().phi())) {
228  posStartIndex = closestIndex;
229  }
230  else {
231  negStartIndex = closestIndex;
232  }
233  }
234 
235  const BinFinderType& binFinder = (crossing.subLayerIndex()==0 ? theInnerBinFinder : theOuterBinFinder);
236 
238  int quarter = sLayer.size()/4;
239  for (int idet=negStartIndex; idet >= negStartIndex - quarter; idet--) {
240  const GeometricSearchDet* neighborRod = sLayer[binFinder.binIndex(idet)];
241  if (!overlap( gCrossingPos, *neighborRod, window)) break;
242  if (!adder.add( *neighborRod, tsos, prop, est, result)) break;
243  // maybe also add shallow crossing angle test here???
244  }
245  for (int idet=posStartIndex; idet < posStartIndex + quarter; idet++) {
246  const GeometricSearchDet* neighborRod = sLayer[binFinder.binIndex(idet)];
247  if (!overlap( gCrossingPos, *neighborRod, window)) break;
248  if (!adder.add( *neighborRod, tsos, prop, est, result)) break;
249  // maybe also add shallow crossing angle test here???
250  }
251 }
def window
Definition: svgfig.py:642
const std::vector< const GeometricSearchDet * > & subLayer(int ind) const
int closestDetIndex() const
Geom::Phi< T > phi() const
Definition: PV3DBase.h:68
bool overlap(const GlobalPoint &gpos, const GeometricSearchDet &rod, float phiWin) const
const GlobalPoint & position() const
int subLayerIndex() const
tuple result
Definition: query.py:137
BinFinderType theOuterBinFinder
BinFinderType theInnerBinFinder
PeriodicBinFinderInPhi< double > BinFinderType
static bool add(const GeometricSearchDet &det, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result)
virtual SubDetector PixelBarrelLayer::subDetector ( ) const
inlinevirtual

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

Implements DetLayer.

Definition at line 40 of file PixelBarrelLayer.h.

References GeomDetEnumerators::PixelBarrel.

const std::vector<const GeometricSearchDet*>& PixelBarrelLayer::subLayer ( int  ind) const
inlineprivate

Definition at line 75 of file PixelBarrelLayer.h.

References theInnerComps, and theOuterComps.

Referenced by addClosest(), and searchNeighbors().

75  {
76  return (ind==0 ? theInnerComps : theOuterComps);}
std::vector< const GeometricSearchDet * > theInnerComps
std::vector< const GeometricSearchDet * > theOuterComps

Member Data Documentation

std::vector<const GeomDet*> PixelBarrelLayer::theBasicComps
private

Definition at line 85 of file PixelBarrelLayer.h.

Referenced by basicComponents(), and PixelBarrelLayer().

std::vector<const GeometricSearchDet*> PixelBarrelLayer::theComps
private

Definition at line 82 of file PixelBarrelLayer.h.

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

BinFinderType PixelBarrelLayer::theInnerBinFinder
private

Definition at line 87 of file PixelBarrelLayer.h.

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

std::vector<const GeometricSearchDet*> PixelBarrelLayer::theInnerComps
private

Definition at line 83 of file PixelBarrelLayer.h.

Referenced by PixelBarrelLayer(), and subLayer().

ReferenceCountingPointer<BoundCylinder> PixelBarrelLayer::theInnerCylinder
private

Definition at line 90 of file PixelBarrelLayer.h.

Referenced by computeCrossings(), and PixelBarrelLayer().

BinFinderType PixelBarrelLayer::theOuterBinFinder
private

Definition at line 88 of file PixelBarrelLayer.h.

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

std::vector<const GeometricSearchDet*> PixelBarrelLayer::theOuterComps
private

Definition at line 84 of file PixelBarrelLayer.h.

Referenced by PixelBarrelLayer(), and subLayer().

ReferenceCountingPointer<BoundCylinder> PixelBarrelLayer::theOuterCylinder
private

Definition at line 91 of file PixelBarrelLayer.h.

Referenced by computeCrossings(), and PixelBarrelLayer().