CMS 3D CMS Logo

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

#include <Phase2OTBarrelRod.h>

Inheritance diagram for Phase2OTBarrelRod:
DetRod GeometricSearchDet

Public Types

typedef GenericBinFinderInZ< float, GeomDetBinFinderType
 
- Public Types inherited from GeometricSearchDet
typedef std::pair< const GeomDet *, TrajectoryStateOnSurfaceDetWithState
 
typedef BoundSurface::PositionType PositionType
 
typedef BoundSurface::RotationType RotationType
 
typedef TrajectoryStateOnSurface TrajectoryState
 

Public Member Functions

const std::vector< const GeomDet * > & basicComponents () const override
 
std::pair< bool, TrajectoryStateOnSurfacecompatible (const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const override __attribute__((cold))
 
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))
 
 Phase2OTBarrelRod (std::vector< const GeomDet * > &innerDets, std::vector< const GeomDet * > &outerDets, std::vector< const GeomDet * > &innerDetBrothers, std::vector< const GeomDet * > &outerDetBrothers) __attribute__((cold))
 
 ~Phase2OTBarrelRod () override __attribute__((cold))
 
- Public Member Functions inherited from DetRod
virtual const PlanespecificSurface () const final
 Return the rod surface as a Plane. More...
 
const BoundSurfacesurface () const final
 The surface of the GeometricSearchDet. More...
 
 ~DetRod () 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 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))
 
float computeWindowSize (const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) 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 * > & subRod (int ind) const
 
const std::vector< const GeomDet * > & subRodBrothers (int ind) const
 

Private Attributes

std::vector< const GeomDet * > theDets
 
BinFinderType theInnerBinFinder
 
std::vector< const GeomDet * > theInnerDetBrothers
 
std::vector< const GeomDet * > theInnerDets
 
ReferenceCountingPointer< PlanetheInnerPlane
 
BinFinderType theOuterBinFinder
 
std::vector< const GeomDet * > theOuterDetBrothers
 
std::vector< const GeomDet * > theOuterDets
 
ReferenceCountingPointer< PlanetheOuterPlane
 

Additional Inherited Members

- Protected Member Functions inherited from DetRod
void setPlane (Plane *plane)
 Set the rod's plane. More...
 
- Protected Attributes inherited from GeometricSearchDet
bool haveGroups
 
GeomDetCompatibilityChecker theCompatibilityChecker
 

Detailed Description

A concrete implementation for TOB Rod

Definition at line 16 of file Phase2OTBarrelRod.h.

Member Typedef Documentation

Definition at line 18 of file Phase2OTBarrelRod.h.

Constructor & Destructor Documentation

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

Definition at line 30 of file Phase2OTBarrelRod.cc.

References mps_fire::i, LogDebug, DetRod::setPlane(), theDets, theInnerBinFinder, theInnerDetBrothers, theInnerDets, theInnerPlane, theOuterBinFinder, theOuterDetBrothers, theOuterDets, and theOuterPlane.

33  :
34  DetRod(true),
35  theInnerDets(innerDets),theOuterDets(outerDets),theInnerDetBrothers(innerDetBrothers),theOuterDetBrothers(outerDetBrothers)
36 {
37  theDets.assign(theInnerDets.begin(),theInnerDets.end());
38  theDets.insert(theDets.end(),theOuterDets.begin(),theOuterDets.end());
39  theDets.insert(theDets.end(),theInnerDetBrothers.begin(),theInnerDetBrothers.end());
40  theDets.insert(theDets.end(),theOuterDetBrothers.begin(),theOuterDetBrothers.end());
41 
42 
43  RodPlaneBuilderFromDet planeBuilder;
44  setPlane( planeBuilder( theDets));
45  theInnerPlane = planeBuilder( theInnerDets);
46  theOuterPlane = planeBuilder( theOuterDets);
47 
48  // modules be already sorted in z
49 
52 
53 
54 
55 #ifdef EDM_ML_DEBUG
56  LogDebug("TkDetLayers") << "==== DEBUG Phase2OTBarrelRod =====" ;
57  for (vector<const GeomDet*>::const_iterator i=theInnerDets.begin();
58  i != theInnerDets.end(); i++){
59  LogDebug("TkDetLayers") << "inner Phase2OTBarrelRod's Det pos z,perp,eta,phi: "
60  << (**i).position().z() << " , "
61  << (**i).position().perp() << " , "
62  << (**i).position().eta() << " , "
63  << (**i).position().phi() ;
64  }
65 
66  for (vector<const GeomDet*>::const_iterator i=theInnerDetBrothers.begin();
67  i != theInnerDetBrothers.end(); i++){
68  LogDebug("TkDetLayers") << "inner Phase2OTBarrelRod's Det Brother pos z,perp,eta,phi: "
69  << (**i).position().z() << " , "
70  << (**i).position().perp() << " , "
71  << (**i).position().eta() << " , "
72  << (**i).position().phi() ;
73  }
74 
75  for (vector<const GeomDet*>::const_iterator i=theOuterDets.begin();
76  i != theOuterDets.end(); i++){
77  LogDebug("TkDetLayers") << "outer Phase2OTBarrelRod's Det pos z,perp,eta,phi: "
78  << (**i).position().z() << " , "
79  << (**i).position().perp() << " , "
80  << (**i).position().eta() << " , "
81  << (**i).position().phi() ;
82  }
83 
84  for (vector<const GeomDet*>::const_iterator i=theOuterDetBrothers.begin();
85  i != theOuterDetBrothers.end(); i++){
86  LogDebug("TkDetLayers") << "outer Phase2OTBarrelRod's Det Brother pos z,perp,eta,phi: "
87  << (**i).position().z() << " , "
88  << (**i).position().perp() << " , "
89  << (**i).position().eta() << " , "
90  << (**i).position().phi() ;
91  }
92  LogDebug("TkDetLayers") << "==== end DEBUG Phase2OTBarrelRod =====" ;
93 #endif
94 
95 
96 }
#define LogDebug(id)
BinFinderType theOuterBinFinder
std::vector< const GeomDet * > theDets
BinFinderType theInnerBinFinder
std::vector< const GeomDet * > theOuterDetBrothers
GenericBinFinderInZ< float, GeomDet > BinFinderType
Definition: DetRod.h:13
ReferenceCountingPointer< Plane > theOuterPlane
void setPlane(Plane *plane)
Set the rod&#39;s plane.
Definition: DetRod.h:32
ReferenceCountingPointer< Plane > theInnerPlane
std::vector< const GeomDet * > theOuterDets
std::vector< const GeomDet * > theInnerDets
std::vector< const GeomDet * > theInnerDetBrothers
Phase2OTBarrelRod::~Phase2OTBarrelRod ( )
override

Definition at line 98 of file Phase2OTBarrelRod.cc.

98  {
99 
100 }

Member Function Documentation

bool Phase2OTBarrelRod::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 229 of file Phase2OTBarrelRod.cc.

References CompatibleDetToGroupAdder::add(), SubLayerCrossing::closestDetIndex(), mps_fire::result, SubLayerCrossing::subLayerIndex(), subRod(), and subRodBrothers().

Referenced by basicComponents(), and groupedCompatibleDetsV().

235 {
236 
237  const vector<const GeomDet*>& sRod( subRod( crossing.subLayerIndex()));
238  bool firstgroup = CompatibleDetToGroupAdder::add( *sRod[crossing.closestDetIndex()],
239  tsos, prop, est, result);
240  // it assumes that the closestDetIndex is ok also for the brother detectors: the crossing is NOT recomputed
241  const vector<const GeomDet*>& sRodBrothers( subRodBrothers( crossing.subLayerIndex()));
242  bool brothergroup = CompatibleDetToGroupAdder::add( *sRodBrothers[crossing.closestDetIndex()],
243  tsos, prop, est, brotherresult);
244 
245  return firstgroup || brothergroup;
246 }
int closestDetIndex() const
int subLayerIndex() const
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 * > & subRodBrothers(int ind) const
const std::vector< const GeomDet * > & subRod(int ind) const
const std::vector<const GeomDet*>& Phase2OTBarrelRod::basicComponents ( ) const
inlineoverridevirtual
pair< bool, TrajectoryStateOnSurface > Phase2OTBarrelRod::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 109 of file Phase2OTBarrelRod.cc.

Referenced by basicComponents().

110  {
111  edm::LogError("TkDetLayers") << "temporary dummy implementation of Phase2OTBarrelRod::compatible()!!" ;
112  return pair<bool,TrajectoryStateOnSurface>();
113 }
const vector< const GeometricSearchDet * > & Phase2OTBarrelRod::components ( ) const
overridevirtual

Returns basic components, if any.

Returns direct components, if any

Implements GeometricSearchDet.

Definition at line 104 of file Phase2OTBarrelRod.cc.

Referenced by basicComponents().

104  {
105  throw DetLayerException("Phase2OTBarrelRod doesn't have GeometricSearchDet components");
106 }
Common base class.
SubLayerCrossings Phase2OTBarrelRod::computeCrossings ( const TrajectoryStateOnSurface tsos,
PropagationDirection  propDir 
) const
private

Definition at line 190 of file Phase2OTBarrelRod.cc.

References funct::abs(), GenericBinFinderInZ< T, G >::binIndex(), GenericBinFinderInZ< T, G >::binPosition(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), rho, theInnerBinFinder, theInnerPlane, theOuterBinFinder, theOuterPlane, and TrajectoryStateOnSurface::transverseCurvature().

Referenced by basicComponents(), and groupedCompatibleDetsV().

192 {
193  GlobalPoint startPos( startingState.globalPosition());
194  GlobalVector startDir( startingState.globalMomentum());
195  double rho( startingState.transverseCurvature());
196 
197  HelixBarrelPlaneCrossingByCircle crossing( startPos, startDir, rho, propDir);
198 
199 
200  std::pair<bool,double> outerPath = crossing.pathLength( *theOuterPlane);
201  if (!outerPath.first) return SubLayerCrossings();
202  GlobalPoint gOuterPoint( crossing.position(outerPath.second));
203 
204  std::pair<bool,double> innerPath = crossing.pathLength( *theInnerPlane);
205  if (!innerPath.first) return SubLayerCrossings();
206  GlobalPoint gInnerPoint( crossing.position(innerPath.second));
207 
208 
209  int innerIndex = theInnerBinFinder.binIndex(gInnerPoint.z());
210  float innerDist = std::abs( theInnerBinFinder.binPosition(innerIndex) - gInnerPoint.z());
211  SubLayerCrossing innerSLC( 0, innerIndex, gInnerPoint);
212 
213  int outerIndex = theOuterBinFinder.binIndex(gOuterPoint.z());
214  float outerDist = std::abs( theOuterBinFinder.binPosition(outerIndex) - gOuterPoint.z());
215  SubLayerCrossing outerSLC( 1, outerIndex, gOuterPoint);
216 
217  if (innerDist < outerDist) {
218  return SubLayerCrossings( innerSLC, outerSLC, 0);
219  }
220  else {
221  return SubLayerCrossings( outerSLC, innerSLC, 1);
222  }
223 }
BinFinderType theOuterBinFinder
T binPosition(int ind) const override
the middle of the bin.
BinFinderType theInnerBinFinder
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int binIndex(T z) const override
returns an index in the valid range for the bin closest to Z
ReferenceCountingPointer< Plane > theOuterPlane
ReferenceCountingPointer< Plane > theInnerPlane
float Phase2OTBarrelRod::computeWindowSize ( const GeomDet det,
const TrajectoryStateOnSurface tsos,
const MeasurementEstimator est 
) const
private

Definition at line 249 of file Phase2OTBarrelRod.cc.

References funct::abs(), Surface::bounds(), constexpr, Bounds::length(), MeasurementEstimator::maximalLocalDisplacement(), muon::overlap(), GeomDet::surface(), GloballyPositioned< T >::toLocal(), svgfig::window(), y, and PV3DBase< T, PVType, FrameType >::y().

Referenced by basicComponents(), and groupedCompatibleDetsV().

252 {
253  return
254  est.maximalLocalDisplacement(tsos, det->surface()).y();
255 }
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
virtual Local2DVector maximalLocalDisplacement(const TrajectoryStateOnSurface &ts, const Plane &plane) const =0
void Phase2OTBarrelRod::groupedCompatibleDetsV ( const TrajectoryStateOnSurface tsos,
const Propagator prop,
const MeasurementEstimator est,
std::vector< DetGroup > &  result 
) const
overridevirtual

Reimplemented from GeometricSearchDet.

Definition at line 120 of file Phase2OTBarrelRod.cc.

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

Referenced by basicComponents().

123  {
124 
125  SubLayerCrossings crossings;
126  crossings = computeCrossings( tsos, prop.propagationDirection());
127  if(! crossings.isValid()) return;
128 
129  std::vector<DetGroup> closestResult;
130  std::vector<DetGroup> closestBrotherResult;
131  addClosest( tsos, prop, est, crossings.closest(), closestResult, closestBrotherResult);
132  if (closestResult.empty()){
133  std::vector<DetGroup> nextResult;
134  std::vector<DetGroup> nextBrotherResult;
135  addClosest( tsos, prop, est, crossings.other(), nextResult, nextBrotherResult);
136  if(nextResult.empty()) return;
137 
138  DetGroupElement nextGel( nextResult.front().front());
139  int crossingSide = LayerCrossingSide().barrelSide( nextGel.trajectoryState(), prop);
140  std::vector<DetGroup> closestCompleteResult;
141  DetGroupMerger::orderAndMergeTwoLevels(std::move(closestResult),std::move(closestBrotherResult),closestCompleteResult,
142  0, crossingSide);
143  std::vector<DetGroup> nextCompleteResult;
144  DetGroupMerger::orderAndMergeTwoLevels(std::move(nextResult),std::move(nextBrotherResult),nextCompleteResult,
145  0, crossingSide);
146 
147  DetGroupMerger::orderAndMergeTwoLevels( std::move(closestCompleteResult), std::move(nextCompleteResult), result,
148  crossings.closestIndex(), crossingSide);
149  } else {
150 
151  DetGroupElement closestGel( closestResult.front().front());
152  int crossingSide = LayerCrossingSide().barrelSide( closestGel.trajectoryState(), prop);
153  float window = computeWindowSize( closestGel.det(), closestGel.trajectoryState(), est);
154 
155  searchNeighbors( tsos, prop, est, crossings.closest(), window,
156  closestResult, closestBrotherResult, false);
157 
158  std::vector<DetGroup> closestCompleteResult;
159  DetGroupMerger::orderAndMergeTwoLevels(std::move(closestResult),std::move(closestBrotherResult),closestCompleteResult,
160  0, crossingSide);
161 
162  std::vector<DetGroup> nextResult;
163  std::vector<DetGroup> nextBrotherResult;
164  searchNeighbors( tsos, prop, est, crossings.other(), window,
165  nextResult, nextBrotherResult, true);
166 
167  std::vector<DetGroup> nextCompleteResult;
168  DetGroupMerger::orderAndMergeTwoLevels(std::move(nextResult),std::move(nextBrotherResult),nextCompleteResult,
169  0, crossingSide);
170 
171  DetGroupMerger::orderAndMergeTwoLevels( std::move(closestCompleteResult), std::move(nextCompleteResult), result,
172  crossings.closestIndex(), crossingSide);
173  }
174 
175  //due to propagator problems, when we add single pt sub modules, we should order them in r (barrel)
176  sort(result.begin(),result.end(),DetGroupElementPerpLess());
177  for (auto& grp : result) {
178  if ( grp.empty() ) continue;
179  LogTrace("TkDetLayers") <<"New group in Phase2OTBarrelRod made by : ";
180  for (auto const & det : grp) {
181  LogTrace("TkDetLayers") <<" geom det at r: " << det.det()->position().perp() <<" id:" << det.det()->geographicalId().rawId()
182  <<" tsos at:" << det.trajectoryState().globalPosition();
183  }
184  }
185 
186 }
static int barrelSide(const TrajectoryStateOnSurface &startingState, const Propagator &prop)
returns 0 if barrel layer crossed from inside, 1 if from outside
int closestIndex() const
virtual PropagationDirection propagationDirection() const final
Definition: Propagator.h:151
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
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))
#define LogTrace(id)
const SubLayerCrossing & other() const
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const __attribute__((hot))
SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface &tsos, PropagationDirection propDir) 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)
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))
def move(src, dest)
Definition: eostools.py:510
void Phase2OTBarrelRod::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 289 of file Phase2OTBarrelRod.cc.

References PVValHelper::add(), SubLayerCrossing::closestDetIndex(), muon::overlap(), SubLayerCrossing::position(), SubLayerCrossing::subLayerIndex(), subRod(), subRodBrothers(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by basicComponents(), and groupedCompatibleDetsV().

297 {
298  const GlobalPoint& gCrossingPos = crossing.position();
299 
300  const vector<const GeomDet*>& sRod( subRod( crossing.subLayerIndex()));
301  const vector<const GeomDet*>& sBrotherRod( subRodBrothers( crossing.subLayerIndex()));
302 
303  int closestIndex = crossing.closestDetIndex();
304  int negStartIndex = closestIndex-1;
305  int posStartIndex = closestIndex+1;
306 
307  if (checkClosest) { // must decide if the closest is on the neg or pos side
308  if (gCrossingPos.z() < sRod[closestIndex]->surface().position().z()) {
309  posStartIndex = closestIndex;
310  }
311  else {
312  negStartIndex = closestIndex;
313  }
314  }
315 
316  typedef CompatibleDetToGroupAdder Adder;
317  for (int idet=negStartIndex; idet >= 0; idet--) {
318  if (!overlap( gCrossingPos, *sRod[idet], window)) break;
319  if (!Adder::add( *sRod[idet], tsos, prop, est, result)) break;
320  // If the two above checks are passed also the brother module will be added with no further checks
321  Adder::add( *sBrotherRod[idet], tsos, prop, est, brotherresult);
322  }
323  for (int idet=posStartIndex; idet < static_cast<int>(sRod.size()); idet++) {
324  if (!overlap( gCrossingPos, *sRod[idet], window)) break;
325  if (!Adder::add( *sRod[idet], tsos, prop, est, result)) break;
326  // If the two above checks are passed also the brother module will be added with no further checks
327  Adder::add( *sBrotherRod[idet], tsos, prop, est, brotherresult);
328  }
329 }
int closestDetIndex() const
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
int subLayerIndex() const
T z() const
Definition: PV3DBase.h:64
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
const std::vector< const GeomDet * > & subRodBrothers(int ind) const
void add(std::map< std::string, TH1 * > &h, TH1 *hist)
const std::vector< const GeomDet * > & subRod(int ind) const
const std::vector<const GeomDet*>& Phase2OTBarrelRod::subRod ( int  ind) const
inlineprivate

Definition at line 70 of file Phase2OTBarrelRod.h.

References theInnerDets, and theOuterDets.

Referenced by addClosest(), and searchNeighbors().

70  {
71  return (ind==0 ? theInnerDets : theOuterDets);
72  }
std::vector< const GeomDet * > theOuterDets
std::vector< const GeomDet * > theInnerDets
const std::vector<const GeomDet*>& Phase2OTBarrelRod::subRodBrothers ( int  ind) const
inlineprivate

Definition at line 74 of file Phase2OTBarrelRod.h.

References theInnerDetBrothers, and theOuterDetBrothers.

Referenced by addClosest(), and searchNeighbors().

74  {
75  return (ind==0 ? theInnerDetBrothers : theOuterDetBrothers);
76  }
std::vector< const GeomDet * > theOuterDetBrothers
std::vector< const GeomDet * > theInnerDetBrothers

Member Data Documentation

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

Definition at line 80 of file Phase2OTBarrelRod.h.

Referenced by basicComponents(), and Phase2OTBarrelRod().

BinFinderType Phase2OTBarrelRod::theInnerBinFinder
private

Definition at line 89 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().

std::vector<const GeomDet*> Phase2OTBarrelRod::theInnerDetBrothers
private

Definition at line 83 of file Phase2OTBarrelRod.h.

Referenced by Phase2OTBarrelRod(), and subRodBrothers().

std::vector<const GeomDet*> Phase2OTBarrelRod::theInnerDets
private

Definition at line 81 of file Phase2OTBarrelRod.h.

Referenced by Phase2OTBarrelRod(), and subRod().

ReferenceCountingPointer<Plane> Phase2OTBarrelRod::theInnerPlane
private

Definition at line 86 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().

BinFinderType Phase2OTBarrelRod::theOuterBinFinder
private

Definition at line 90 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().

std::vector<const GeomDet*> Phase2OTBarrelRod::theOuterDetBrothers
private

Definition at line 84 of file Phase2OTBarrelRod.h.

Referenced by Phase2OTBarrelRod(), and subRodBrothers().

std::vector<const GeomDet*> Phase2OTBarrelRod::theOuterDets
private

Definition at line 82 of file Phase2OTBarrelRod.h.

Referenced by Phase2OTBarrelRod(), and subRod().

ReferenceCountingPointer<Plane> Phase2OTBarrelRod::theOuterPlane
private

Definition at line 87 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().