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
 GeometricSearchDet (bool doHaveGroups)
 
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 14 of file Phase2OTBarrelRod.h.

Member Typedef Documentation

◆ BinFinderType

Definition at line 16 of file Phase2OTBarrelRod.h.

Constructor & Destructor Documentation

◆ Phase2OTBarrelRod()

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

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 
65  for (vector<const GeomDet*>::const_iterator i = theOuterDets.begin(); i != theOuterDets.end(); i++) {
66  LogDebug("TkDetLayers") << "outer Phase2OTBarrelRod's Det pos z,perp,eta,phi: " << (**i).position().z() << " , "
67  << (**i).position().perp() << " , " << (**i).position().eta() << " , "
68  << (**i).position().phi();
69  }
70 
71  for (vector<const GeomDet*>::const_iterator i = theOuterDetBrothers.begin(); i != theOuterDetBrothers.end(); i++) {
72  LogDebug("TkDetLayers") << "outer Phase2OTBarrelRod's Det Brother pos z,perp,eta,phi: " << (**i).position().z()
73  << " , " << (**i).position().perp() << " , " << (**i).position().eta() << " , "
74  << (**i).position().phi();
75  }
76  LogDebug("TkDetLayers") << "==== end DEBUG Phase2OTBarrelRod =====";
77 #endif
78 }

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

◆ ~Phase2OTBarrelRod()

Phase2OTBarrelRod::~Phase2OTBarrelRod ( )
override

Definition at line 80 of file Phase2OTBarrelRod.cc.

80 {}

Member Function Documentation

◆ addClosest()

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

198  {
199  const vector<const GeomDet*>& sRod(subRod(crossing.subLayerIndex()));
200  bool firstgroup = CompatibleDetToGroupAdder::add(*sRod[crossing.closestDetIndex()], tsos, prop, est, result);
201  // it assumes that the closestDetIndex is ok also for the brother detectors: the crossing is NOT recomputed
202  const vector<const GeomDet*>& sRodBrothers(subRodBrothers(crossing.subLayerIndex()));
203  bool brothergroup =
204  CompatibleDetToGroupAdder::add(*sRodBrothers[crossing.closestDetIndex()], tsos, prop, est, brotherresult);
205 
206  return firstgroup || brothergroup;
207 }

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

Referenced by groupedCompatibleDetsV().

◆ basicComponents()

const std::vector<const GeomDet*>& Phase2OTBarrelRod::basicComponents ( ) const
inlineoverridevirtual

Implements GeometricSearchDet.

Definition at line 26 of file Phase2OTBarrelRod.h.

26 { return theDets; }

References theDets.

◆ compatible()

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

88  {
89  edm::LogError("TkDetLayers") << "temporary dummy implementation of Phase2OTBarrelRod::compatible()!!";
90  return pair<bool, TrajectoryStateOnSurface>();
91 }

◆ components()

const vector< const GeometricSearchDet * > & Phase2OTBarrelRod::components ( ) const
overridevirtual

Returns basic components, if any.

Returns direct components, if any

Implements GeometricSearchDet.

Definition at line 82 of file Phase2OTBarrelRod.cc.

82  {
83  throw DetLayerException("Phase2OTBarrelRod doesn't have GeometricSearchDet components");
84 }

◆ computeCrossings()

SubLayerCrossings Phase2OTBarrelRod::computeCrossings ( const TrajectoryStateOnSurface tsos,
PropagationDirection  propDir 
) const
private

Definition at line 160 of file Phase2OTBarrelRod.cc.

161  {
162  GlobalPoint startPos(startingState.globalPosition());
163  GlobalVector startDir(startingState.globalMomentum());
164  double rho(startingState.transverseCurvature());
165 
166  HelixBarrelPlaneCrossingByCircle crossing(startPos, startDir, rho, propDir);
167 
168  std::pair<bool, double> outerPath = crossing.pathLength(*theOuterPlane);
169  if (!outerPath.first)
170  return SubLayerCrossings();
171  GlobalPoint gOuterPoint(crossing.position(outerPath.second));
172 
173  std::pair<bool, double> innerPath = crossing.pathLength(*theInnerPlane);
174  if (!innerPath.first)
175  return SubLayerCrossings();
176  GlobalPoint gInnerPoint(crossing.position(innerPath.second));
177 
178  int innerIndex = theInnerBinFinder.binIndex(gInnerPoint.z());
179  float innerDist = std::abs(theInnerBinFinder.binPosition(innerIndex) - gInnerPoint.z());
180  SubLayerCrossing innerSLC(0, innerIndex, gInnerPoint);
181 
182  int outerIndex = theOuterBinFinder.binIndex(gOuterPoint.z());
183  float outerDist = std::abs(theOuterBinFinder.binPosition(outerIndex) - gOuterPoint.z());
184  SubLayerCrossing outerSLC(1, outerIndex, gOuterPoint);
185 
186  if (innerDist < outerDist) {
187  return SubLayerCrossings(innerSLC, outerSLC, 0);
188  } else {
189  return SubLayerCrossings(outerSLC, innerSLC, 1);
190  }
191 }

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().

◆ computeWindowSize()

float Phase2OTBarrelRod::computeWindowSize ( const GeomDet det,
const TrajectoryStateOnSurface tsos,
const MeasurementEstimator est 
) const
private

Definition at line 209 of file Phase2OTBarrelRod.cc.

211  {
212  return est.maximalLocalDisplacement(tsos, det->surface()).y();
213 }

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

Referenced by groupedCompatibleDetsV().

◆ groupedCompatibleDetsV()

void Phase2OTBarrelRod::groupedCompatibleDetsV ( const TrajectoryStateOnSurface tsos,
const Propagator prop,
const MeasurementEstimator est,
std::vector< DetGroup > &  result 
) const
overridevirtual

Reimplemented from GeometricSearchDet.

Definition at line 93 of file Phase2OTBarrelRod.cc.

96  {
97  SubLayerCrossings crossings;
98  crossings = computeCrossings(tsos, prop.propagationDirection());
99  if (!crossings.isValid())
100  return;
101 
102  std::vector<DetGroup> closestResult;
103  std::vector<DetGroup> closestBrotherResult;
104  addClosest(tsos, prop, est, crossings.closest(), closestResult, closestBrotherResult);
105  if (closestResult.empty()) {
106  std::vector<DetGroup> nextResult;
107  std::vector<DetGroup> nextBrotherResult;
108  addClosest(tsos, prop, est, crossings.other(), nextResult, nextBrotherResult);
109  if (nextResult.empty())
110  return;
111 
112  DetGroupElement nextGel(nextResult.front().front());
113  int crossingSide = LayerCrossingSide().barrelSide(nextGel.trajectoryState(), prop);
114  std::vector<DetGroup> closestCompleteResult;
116  std::move(closestResult), std::move(closestBrotherResult), closestCompleteResult, 0, crossingSide);
117  std::vector<DetGroup> nextCompleteResult;
119  std::move(nextResult), std::move(nextBrotherResult), nextCompleteResult, 0, crossingSide);
120 
122  std::move(closestCompleteResult), std::move(nextCompleteResult), result, crossings.closestIndex(), crossingSide);
123  } else {
124  DetGroupElement closestGel(closestResult.front().front());
125  int crossingSide = LayerCrossingSide().barrelSide(closestGel.trajectoryState(), prop);
126  float window = computeWindowSize(closestGel.det(), closestGel.trajectoryState(), est);
127 
128  searchNeighbors(tsos, prop, est, crossings.closest(), window, closestResult, closestBrotherResult, false);
129 
130  std::vector<DetGroup> closestCompleteResult;
132  std::move(closestResult), std::move(closestBrotherResult), closestCompleteResult, 0, crossingSide);
133 
134  std::vector<DetGroup> nextResult;
135  std::vector<DetGroup> nextBrotherResult;
136  searchNeighbors(tsos, prop, est, crossings.other(), window, nextResult, nextBrotherResult, true);
137 
138  std::vector<DetGroup> nextCompleteResult;
140  std::move(nextResult), std::move(nextBrotherResult), nextCompleteResult, 0, crossingSide);
141 
143  std::move(closestCompleteResult), std::move(nextCompleteResult), result, crossings.closestIndex(), crossingSide);
144  }
145 
146  //due to propagator problems, when we add single pt sub modules, we should order them in r (barrel)
147  sort(result.begin(), result.end(), DetGroupElementPerpLess());
148  for (auto& grp : result) {
149  if (grp.empty())
150  continue;
151  LogTrace("TkDetLayers") << "New group in Phase2OTBarrelRod made by : ";
152  for (auto const& det : grp) {
153  LogTrace("TkDetLayers") << " geom det at r: " << det.det()->position().perp()
154  << " id:" << det.det()->geographicalId().rawId()
155  << " tsos at:" << det.trajectoryState().globalPosition();
156  }
157  }
158 }

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

◆ searchNeighbors()

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

247  {
248  const GlobalPoint& gCrossingPos = crossing.position();
249 
250  const vector<const GeomDet*>& sRod(subRod(crossing.subLayerIndex()));
251  const vector<const GeomDet*>& sBrotherRod(subRodBrothers(crossing.subLayerIndex()));
252 
253  int closestIndex = crossing.closestDetIndex();
254  int negStartIndex = closestIndex - 1;
255  int posStartIndex = closestIndex + 1;
256 
257  if (checkClosest) { // must decide if the closest is on the neg or pos side
258  if (gCrossingPos.z() < sRod[closestIndex]->surface().position().z()) {
259  posStartIndex = closestIndex;
260  } else {
261  negStartIndex = closestIndex;
262  }
263  }
264 
265  typedef CompatibleDetToGroupAdder Adder;
266  for (int idet = negStartIndex; idet >= 0; idet--) {
267  if (!overlap(gCrossingPos, *sRod[idet], window))
268  break;
269  if (!Adder::add(*sRod[idet], tsos, prop, est, result))
270  break;
271  // If the two above checks are passed also the brother module will be added with no further checks
272  Adder::add(*sBrotherRod[idet], tsos, prop, est, brotherresult);
273  }
274  for (int idet = posStartIndex; idet < static_cast<int>(sRod.size()); idet++) {
275  if (!overlap(gCrossingPos, *sRod[idet], window))
276  break;
277  if (!Adder::add(*sRod[idet], tsos, prop, est, result))
278  break;
279  // If the two above checks are passed also the brother module will be added with no further checks
280  Adder::add(*sBrotherRod[idet], tsos, prop, est, brotherresult);
281  }
282 }

References PVValHelper::add(), SubLayerCrossing::closestDetIndex(), goodZToMuMu_cfi::overlap, SubLayerCrossing::position(), mps_fire::result, SubLayerCrossing::subLayerIndex(), subRod(), subRodBrothers(), svgfig::window(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by groupedCompatibleDetsV().

◆ subRod()

const std::vector<const GeomDet*>& Phase2OTBarrelRod::subRod ( int  ind) const
inlineprivate

Definition at line 66 of file Phase2OTBarrelRod.h.

66 { return (ind == 0 ? theInnerDets : theOuterDets); }

References theInnerDets, and theOuterDets.

Referenced by addClosest(), and searchNeighbors().

◆ subRodBrothers()

const std::vector<const GeomDet*>& Phase2OTBarrelRod::subRodBrothers ( int  ind) const
inlineprivate

Definition at line 68 of file Phase2OTBarrelRod.h.

68  {
69  return (ind == 0 ? theInnerDetBrothers : theOuterDetBrothers);
70  }

References theInnerDetBrothers, and theOuterDetBrothers.

Referenced by addClosest(), and searchNeighbors().

Member Data Documentation

◆ theDets

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

Definition at line 73 of file Phase2OTBarrelRod.h.

Referenced by basicComponents(), and Phase2OTBarrelRod().

◆ theInnerBinFinder

BinFinderType Phase2OTBarrelRod::theInnerBinFinder
private

Definition at line 82 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().

◆ theInnerDetBrothers

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

Definition at line 76 of file Phase2OTBarrelRod.h.

Referenced by Phase2OTBarrelRod(), and subRodBrothers().

◆ theInnerDets

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

Definition at line 74 of file Phase2OTBarrelRod.h.

Referenced by Phase2OTBarrelRod(), and subRod().

◆ theInnerPlane

ReferenceCountingPointer<Plane> Phase2OTBarrelRod::theInnerPlane
private

Definition at line 79 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().

◆ theOuterBinFinder

BinFinderType Phase2OTBarrelRod::theOuterBinFinder
private

Definition at line 83 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().

◆ theOuterDetBrothers

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

Definition at line 77 of file Phase2OTBarrelRod.h.

Referenced by Phase2OTBarrelRod(), and subRodBrothers().

◆ theOuterDets

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

Definition at line 75 of file Phase2OTBarrelRod.h.

Referenced by Phase2OTBarrelRod(), and subRod().

◆ theOuterPlane

ReferenceCountingPointer<Plane> Phase2OTBarrelRod::theOuterPlane
private

Definition at line 80 of file Phase2OTBarrelRod.h.

Referenced by computeCrossings(), and Phase2OTBarrelRod().

Vector3DBase
Definition: Vector3DBase.h:8
SubLayerCrossing::position
const GlobalPoint & position() const
Definition: SubLayerCrossings.h:14
SubLayerCrossings::isValid
bool isValid()
Definition: SubLayerCrossings.h:28
DDAxes::y
mps_fire.i
i
Definition: mps_fire.py:355
LayerCrossingSide
Definition: LayerCrossingSide.h:15
SubLayerCrossings::closestIndex
int closestIndex() const
Definition: SubLayerCrossings.h:31
Phase2OTBarrelRod::subRod
const std::vector< const GeomDet * > & subRod(int ind) const
Definition: Phase2OTBarrelRod.h:66
svgfig.window
def window(xmin, xmax, ymin, ymax, x=0, y=0, width=100, height=100, xlogbase=None, ylogbase=None, minusInfinity=-1000, flipx=False, flipy=True)
Definition: svgfig.py:643
Phase2OTBarrelRod::theInnerDetBrothers
std::vector< const GeomDet * > theInnerDetBrothers
Definition: Phase2OTBarrelRod.h:76
Phase2OTBarrelRod::theOuterDets
std::vector< const GeomDet * > theOuterDets
Definition: Phase2OTBarrelRod.h:75
GenericBinFinderInZ::binPosition
T binPosition(int ind) const override
the middle of the bin.
Definition: GenericBinFinderInZ.h:74
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
Phase2OTBarrelRod::searchNeighbors
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))
Definition: Phase2OTBarrelRod.cc:240
DetRod
Definition: DetRod.h:13
Propagator::propagationDirection
virtual PropagationDirection propagationDirection() const final
Definition: Propagator.h:139
Point3DBase< float, GlobalTag >
GenericBinFinderInZ::binIndex
int binIndex(T z) const override
returns an index in the valid range for the bin closest to Z
Definition: GenericBinFinderInZ.h:35
Phase2OTBarrelRod::subRodBrothers
const std::vector< const GeomDet * > & subRodBrothers(int ind) const
Definition: Phase2OTBarrelRod.h:68
DetGroupMerger::orderAndMergeTwoLevels
static void orderAndMergeTwoLevels(std::vector< DetGroup > &&one, std::vector< DetGroup > &&two, std::vector< DetGroup > &result, int firstIndex, int firstCrossed)
Definition: DetGroupMerger.cc:6
DDAxes::rho
RodPlaneBuilderFromDet
Definition: RodPlaneBuilderFromDet.h:15
CompatibleDetToGroupAdder::add
static bool add(const GeometricSearchDet &det, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) __attribute__((hot))
Definition: CompatibleDetToGroupAdder.cc:7
SubLayerCrossings::closest
const SubLayerCrossing & closest() const
Definition: SubLayerCrossings.h:29
Phase2OTBarrelRod::theOuterPlane
ReferenceCountingPointer< Plane > theOuterPlane
Definition: Phase2OTBarrelRod.h:80
Phase2OTBarrelRod::theDets
std::vector< const GeomDet * > theDets
Definition: Phase2OTBarrelRod.h:73
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::LogError
Definition: MessageLogger.h:183
DetRod::setPlane
void setPlane(Plane *plane)
Set the rod's plane.
Definition: DetRod.h:28
HelixBarrelPlaneCrossingByCircle
Definition: HelixBarrelPlaneCrossingByCircle.h:13
Phase2OTBarrelRod::computeCrossings
SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface &tsos, PropagationDirection propDir) const __attribute__((hot))
Definition: Phase2OTBarrelRod.cc:160
PVValHelper::add
void add(std::map< std::string, TH1 * > &h, TH1 *hist)
Definition: PVValidationHelpers.cc:12
Phase2OTBarrelRod::theInnerPlane
ReferenceCountingPointer< Plane > theInnerPlane
Definition: Phase2OTBarrelRod.h:79
SubLayerCrossing::closestDetIndex
int closestDetIndex() const
Definition: SubLayerCrossings.h:13
Phase2OTBarrelRod::theInnerBinFinder
BinFinderType theInnerBinFinder
Definition: Phase2OTBarrelRod.h:82
DetGroupElement
Definition: DetGroup.h:10
goodZToMuMu_cfi.overlap
overlap
Definition: goodZToMuMu_cfi.py:108
Phase2OTBarrelRod::addClosest
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))
Definition: Phase2OTBarrelRod.cc:193
Phase2OTBarrelRod::theOuterDetBrothers
std::vector< const GeomDet * > theOuterDetBrothers
Definition: Phase2OTBarrelRod.h:77
DetLayerException
Common base class.
Definition: DetLayerException.h:15
eostools.move
def move(src, dest)
Definition: eostools.py:511
Phase2OTBarrelRod::theInnerDets
std::vector< const GeomDet * > theInnerDets
Definition: Phase2OTBarrelRod.h:74
CompatibleDetToGroupAdder
Definition: CompatibleDetToGroupAdder.h:13
LayerCrossingSide::barrelSide
static int barrelSide(const TrajectoryStateOnSurface &startingState, const Propagator &prop)
returns 0 if barrel layer crossed from inside, 1 if from outside
Definition: LayerCrossingSide.h:18
SubLayerCrossings::other
const SubLayerCrossing & other() const
Definition: SubLayerCrossings.h:30
SubLayerCrossing
Definition: SubLayerCrossings.h:7
SubLayerCrossing::subLayerIndex
int subLayerIndex() const
Definition: SubLayerCrossings.h:12
mps_fire.result
result
Definition: mps_fire.py:303
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
Phase2OTBarrelRod::theOuterBinFinder
BinFinderType theOuterBinFinder
Definition: Phase2OTBarrelRod.h:83
Phase2OTBarrelRod::computeWindowSize
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const __attribute__((hot))
Definition: Phase2OTBarrelRod.cc:209
MeasurementEstimator::maximalLocalDisplacement
virtual Local2DVector maximalLocalDisplacement(const TrajectoryStateOnSurface &ts, const Plane &plane) const =0
SubLayerCrossings
Definition: SubLayerCrossings.h:22
Phase2OTBarrelRod::BinFinderType
GenericBinFinderInZ< float, GeomDet > BinFinderType
Definition: Phase2OTBarrelRod.h:16