CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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, GeomDet
BinFinderType
 
- Public Types inherited from GeometricSearchDet
typedef std::pair< const
GeomDet
*, TrajectoryStateOnSurface
DetWithState
 
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,
TrajectoryStateOnSurface
compatible (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, const std::vector< const GeomDet * > &innerDetBrothers=std::vector< const GeomDet * >(), const std::vector< const GeomDet * > &outerDetBrothers=std::vector< const GeomDet * >()) __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::PositionType
position () 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 14 of file Phase2OTBarrelRod.h.

Member Typedef Documentation

Definition at line 16 of file Phase2OTBarrelRod.h.

Constructor & Destructor Documentation

Phase2OTBarrelRod::Phase2OTBarrelRod ( 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 27 of file Phase2OTBarrelRod.cc.

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

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

Definition at line 84 of file Phase2OTBarrelRod.cc.

84 {}

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 197 of file Phase2OTBarrelRod.cc.

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

Referenced by groupedCompatibleDetsV().

202  {
203  const vector<const GeomDet*>& sRod(subRod(crossing.subLayerIndex()));
204  bool firstgroup = CompatibleDetToGroupAdder::add(*sRod[crossing.closestDetIndex()], tsos, prop, est, result);
205  if (theInnerDetBrothers.empty() && theOuterDetBrothers.empty())
206  return firstgroup;
207 
208  // it assumes that the closestDetIndex is ok also for the brother detectors: the crossing is NOT recomputed
209  const vector<const GeomDet*>& sRodBrothers(subRodBrothers(crossing.subLayerIndex()));
210  bool brothergroup =
211  CompatibleDetToGroupAdder::add(*sRodBrothers[crossing.closestDetIndex()], tsos, prop, est, brotherresult);
212 
213  return firstgroup || brothergroup;
214 }
int closestDetIndex() const
tuple result
Definition: mps_fire.py:311
int subLayerIndex() const
std::vector< const GeomDet * > theOuterDetBrothers
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
std::vector< const GeomDet * > theInnerDetBrothers
const std::vector<const GeomDet*>& Phase2OTBarrelRod::basicComponents ( ) const
inlineoverridevirtual

Implements GeometricSearchDet.

Definition at line 27 of file Phase2OTBarrelRod.h.

References theDets.

27 { return theDets; }
std::vector< const GeomDet * > theDets
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 90 of file Phase2OTBarrelRod.cc.

92  {
93  edm::LogError("TkDetLayers") << "temporary dummy implementation of Phase2OTBarrelRod::compatible()!!";
94  return pair<bool, TrajectoryStateOnSurface>();
95 }
Log< level::Error, false > LogError
const vector< const GeometricSearchDet * > & Phase2OTBarrelRod::components ( ) const
overridevirtual

Returns basic components, if any.

Returns direct components, if any

Implements GeometricSearchDet.

Definition at line 86 of file Phase2OTBarrelRod.cc.

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

Definition at line 164 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 groupedCompatibleDetsV().

165  {
166  GlobalPoint startPos(startingState.globalPosition());
167  GlobalVector startDir(startingState.globalMomentum());
168  double rho(startingState.transverseCurvature());
169 
170  HelixBarrelPlaneCrossingByCircle crossing(startPos, startDir, rho, propDir);
171 
172  std::pair<bool, double> outerPath = crossing.pathLength(*theOuterPlane);
173  if (!outerPath.first)
174  return SubLayerCrossings();
175  GlobalPoint gOuterPoint(crossing.position(outerPath.second));
176 
177  std::pair<bool, double> innerPath = crossing.pathLength(*theInnerPlane);
178  if (!innerPath.first)
179  return SubLayerCrossings();
180  GlobalPoint gInnerPoint(crossing.position(innerPath.second));
181 
182  int innerIndex = theInnerBinFinder.binIndex(gInnerPoint.z());
183  float innerDist = std::abs(theInnerBinFinder.binPosition(innerIndex) - gInnerPoint.z());
184  SubLayerCrossing innerSLC(0, innerIndex, gInnerPoint);
185 
186  int outerIndex = theOuterBinFinder.binIndex(gOuterPoint.z());
187  float outerDist = std::abs(theOuterBinFinder.binPosition(outerIndex) - gOuterPoint.z());
188  SubLayerCrossing outerSLC(1, outerIndex, gOuterPoint);
189 
190  if (innerDist < outerDist) {
191  return SubLayerCrossings(innerSLC, outerSLC, 0);
192  } else {
193  return SubLayerCrossings(outerSLC, innerSLC, 1);
194  }
195 }
BinFinderType theOuterBinFinder
BinFinderType theInnerBinFinder
int binIndex(T z) const override
returns an index in the valid range for the bin closest to Z
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
ReferenceCountingPointer< Plane > theOuterPlane
ReferenceCountingPointer< Plane > theInnerPlane
T binPosition(int ind) const override
the middle of the bin.
float Phase2OTBarrelRod::computeWindowSize ( const GeomDet det,
const TrajectoryStateOnSurface tsos,
const MeasurementEstimator est 
) const
private

Definition at line 216 of file Phase2OTBarrelRod.cc.

References MeasurementEstimator::maximalLocalDisplacement(), GeomDet::surface(), and y.

Referenced by groupedCompatibleDetsV().

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

Reimplemented from GeometricSearchDet.

Definition at line 97 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().

100  {
101  SubLayerCrossings crossings;
102  crossings = computeCrossings(tsos, prop.propagationDirection());
103  if (!crossings.isValid())
104  return;
105 
106  std::vector<DetGroup> closestResult;
107  std::vector<DetGroup> closestBrotherResult;
108  addClosest(tsos, prop, est, crossings.closest(), closestResult, closestBrotherResult);
109  if (closestResult.empty()) {
110  std::vector<DetGroup> nextResult;
111  std::vector<DetGroup> nextBrotherResult;
112  addClosest(tsos, prop, est, crossings.other(), nextResult, nextBrotherResult);
113  if (nextResult.empty())
114  return;
115 
116  DetGroupElement nextGel(nextResult.front().front());
117  int crossingSide = LayerCrossingSide().barrelSide(nextGel.trajectoryState(), prop);
118  std::vector<DetGroup> closestCompleteResult;
120  std::move(closestResult), std::move(closestBrotherResult), closestCompleteResult, 0, crossingSide);
121  std::vector<DetGroup> nextCompleteResult;
123  std::move(nextResult), std::move(nextBrotherResult), nextCompleteResult, 0, crossingSide);
124 
126  std::move(closestCompleteResult), std::move(nextCompleteResult), result, crossings.closestIndex(), crossingSide);
127  } else {
128  DetGroupElement closestGel(closestResult.front().front());
129  int crossingSide = LayerCrossingSide().barrelSide(closestGel.trajectoryState(), prop);
130  float window = computeWindowSize(closestGel.det(), closestGel.trajectoryState(), est);
131 
132  searchNeighbors(tsos, prop, est, crossings.closest(), window, closestResult, closestBrotherResult, false);
133 
134  std::vector<DetGroup> closestCompleteResult;
136  std::move(closestResult), std::move(closestBrotherResult), closestCompleteResult, 0, crossingSide);
137 
138  std::vector<DetGroup> nextResult;
139  std::vector<DetGroup> nextBrotherResult;
140  searchNeighbors(tsos, prop, est, crossings.other(), window, nextResult, nextBrotherResult, true);
141 
142  std::vector<DetGroup> nextCompleteResult;
144  std::move(nextResult), std::move(nextBrotherResult), nextCompleteResult, 0, crossingSide);
145 
147  std::move(closestCompleteResult), std::move(nextCompleteResult), result, crossings.closestIndex(), crossingSide);
148  }
149 
150  //due to propagator problems, when we add single pt sub modules, we should order them in r (barrel)
151  sort(result.begin(), result.end(), DetGroupElementPerpLess());
152  for (auto& grp : result) {
153  if (grp.empty())
154  continue;
155  LogTrace("TkDetLayers") << "New group in Phase2OTBarrelRod made by : ";
156  for (auto const& det : grp) {
157  LogTrace("TkDetLayers") << " geom det at r: " << det.det()->position().perp()
158  << " id:" << det.det()->geographicalId().rawId()
159  << " tsos at:" << det.trajectoryState().globalPosition();
160  }
161  }
162 }
def window
Definition: svgfig.py:643
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:139
#define LogTrace(id)
tuple result
Definition: mps_fire.py:311
def move
Definition: eostools.py:511
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
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))
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 247 of file Phase2OTBarrelRod.cc.

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

Referenced by groupedCompatibleDetsV().

254  {
255  const GlobalPoint& gCrossingPos = crossing.position();
256 
257  const vector<const GeomDet*>& sRod(subRod(crossing.subLayerIndex()));
258  const vector<const GeomDet*>& sBrotherRod(subRodBrothers(crossing.subLayerIndex()));
259 
260  int closestIndex = crossing.closestDetIndex();
261  int negStartIndex = closestIndex - 1;
262  int posStartIndex = closestIndex + 1;
263 
264  if (checkClosest) { // must decide if the closest is on the neg or pos side
265  if (gCrossingPos.z() < sRod[closestIndex]->surface().position().z()) {
266  posStartIndex = closestIndex;
267  } else {
268  negStartIndex = closestIndex;
269  }
270  }
271 
272  typedef CompatibleDetToGroupAdder Adder;
273  for (int idet = negStartIndex; idet >= 0; idet--) {
274  if (!overlap(gCrossingPos, *sRod[idet], window))
275  break;
276  if (!Adder::add(*sRod[idet], tsos, prop, est, result))
277  break;
278  if (theInnerDetBrothers.empty() && theOuterDetBrothers.empty())
279  break;
280  // If the two above checks are passed also the brother module will be added with no further checks
281  Adder::add(*sBrotherRod[idet], tsos, prop, est, brotherresult);
282  }
283  for (int idet = posStartIndex; idet < static_cast<int>(sRod.size()); idet++) {
284  if (!overlap(gCrossingPos, *sRod[idet], window))
285  break;
286  if (!Adder::add(*sRod[idet], tsos, prop, est, result))
287  break;
288  if (theInnerDetBrothers.empty() && theOuterDetBrothers.empty())
289  break;
290  // If the two above checks are passed also the brother module will be added with no further checks
291  Adder::add(*sBrotherRod[idet], tsos, prop, est, brotherresult);
292  }
293 }
def window
Definition: svgfig.py:643
int closestDetIndex() const
tuple result
Definition: mps_fire.py:311
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:61
std::vector< const GeomDet * > theOuterDetBrothers
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
std::vector< const GeomDet * > theInnerDetBrothers
const std::vector<const GeomDet*>& Phase2OTBarrelRod::subRod ( int  ind) const
inlineprivate

Definition at line 67 of file Phase2OTBarrelRod.h.

References theInnerDets, and theOuterDets.

Referenced by addClosest(), and searchNeighbors().

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

Definition at line 69 of file Phase2OTBarrelRod.h.

References theInnerDetBrothers, and theOuterDetBrothers.

Referenced by addClosest(), and searchNeighbors().

69  {
70  return (ind == 0 ? theInnerDetBrothers : theOuterDetBrothers);
71  }
std::vector< const GeomDet * > theOuterDetBrothers
std::vector< const GeomDet * > theInnerDetBrothers

Member Data Documentation

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

Definition at line 74 of file Phase2OTBarrelRod.h.

Referenced by basicComponents(), and Phase2OTBarrelRod().

BinFinderType Phase2OTBarrelRod::theInnerBinFinder
private

Definition at line 83 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().

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

Definition at line 77 of file Phase2OTBarrelRod.h.

Referenced by addClosest(), Phase2OTBarrelRod(), searchNeighbors(), and subRodBrothers().

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

Definition at line 75 of file Phase2OTBarrelRod.h.

Referenced by Phase2OTBarrelRod(), and subRod().

ReferenceCountingPointer<Plane> Phase2OTBarrelRod::theInnerPlane
private

Definition at line 80 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().

BinFinderType Phase2OTBarrelRod::theOuterBinFinder
private

Definition at line 84 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().

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

Definition at line 78 of file Phase2OTBarrelRod.h.

Referenced by addClosest(), Phase2OTBarrelRod(), searchNeighbors(), and subRodBrothers().

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

Definition at line 76 of file Phase2OTBarrelRod.h.

Referenced by Phase2OTBarrelRod(), and subRod().

ReferenceCountingPointer<Plane> Phase2OTBarrelRod::theOuterPlane
private

Definition at line 81 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().