CMS 3D CMS Logo

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

#include <Phase2EndcapRing.h>

Inheritance diagram for Phase2EndcapRing:
GeometricSearchDet

Public Member Functions

const std::vector< const GeomDet * > & basicComponents () const override
 
std::pair< bool, TrajectoryStateOnSurfacecompatible (const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &) const override
 
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))
 
 Phase2EndcapRing (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 * >())
 
virtual const BoundDiskspecificSurface () const
 
const BoundSurfacesurface () const override
 The surface of the GeometricSearchDet. More...
 
 ~Phase2EndcapRing () 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 Types

typedef PeriodicBinFinderInPhi< float > BinFinderType
 

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))
 
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 * > & subLayer (int ind) const
 
const std::vector< const GeomDet * > & subLayerBrothers (int ind) const
 

Private Attributes

BinFinderType theBackBinFinder
 
std::vector< const GeomDet * > theBackDetBrothers
 
std::vector< const GeomDet * > theBackDets
 
ReferenceCountingPointer< BoundDisktheBackDisk
 
std::vector< const GeomDet * > theDets
 
ReferenceCountingPointer< BoundDisktheDisk
 
BinFinderType theFrontBinFinder
 
std::vector< const GeomDet * > theFrontDetBrothers
 
std::vector< const GeomDet * > theFrontDets
 
ReferenceCountingPointer< BoundDisktheFrontDisk
 

Additional Inherited Members

- Public Types inherited from GeometricSearchDet
typedef std::pair< const GeomDet *, TrajectoryStateOnSurfaceDetWithState
 
typedef BoundSurface::PositionType PositionType
 
typedef BoundSurface::RotationType RotationType
 
typedef TrajectoryStateOnSurface TrajectoryState
 
- Protected Attributes inherited from GeometricSearchDet
bool haveGroups
 
GeomDetCompatibilityChecker theCompatibilityChecker
 

Detailed Description

A concrete implementation for TID rings

Definition at line 13 of file Phase2EndcapRing.h.

Member Typedef Documentation

◆ BinFinderType

Definition at line 79 of file Phase2EndcapRing.h.

Constructor & Destructor Documentation

◆ Phase2EndcapRing()

Phase2EndcapRing::Phase2EndcapRing ( 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 29 of file Phase2EndcapRing.cc.

33  : GeometricSearchDet(true),
34  theFrontDets(innerDets.begin(), innerDets.end()),
35  theBackDets(outerDets.begin(), outerDets.end()),
36  theFrontDetBrothers(innerDetBrothers.begin(), innerDetBrothers.end()),
37  theBackDetBrothers(outerDetBrothers.begin(), outerDetBrothers.end()) {
38  theDets.assign(theFrontDets.begin(), theFrontDets.end());
39  theDets.insert(theDets.end(), theBackDets.begin(), theBackDets.end());
40  theDets.insert(theDets.end(), theFrontDetBrothers.begin(), theFrontDetBrothers.end());
41  theDets.insert(theDets.end(), theBackDetBrothers.begin(), theBackDetBrothers.end());
42 
43  // the dets should be already phi-ordered. TO BE CHECKED
44  //sort( theFrontDets.begin(), theFrontDets.end(), DetLessPhi() );
45  //sort( theBackDets.begin(), theBackDets.end(), DetLessPhi() );
46 
48 
51 
52  theFrontBinFinder = BinFinderType(theFrontDets.front()->surface().position().phi(), theFrontDets.size());
53  theBackBinFinder = BinFinderType(theBackDets.front()->surface().position().phi(), theBackDets.size());
54 
55 #ifdef EDM_ML_DEBUG
56  LogDebug("TkDetLayers") << "DEBUG INFO for Phase2EndcapRing";
57  for (vector<const GeomDet*>::const_iterator it = theFrontDets.begin(); it != theFrontDets.end(); it++) {
58  LogDebug("TkDetLayers") << "frontDet detId,phi,z,r: " << (*it)->geographicalId().rawId() << " , "
59  << (*it)->surface().position().phi() << " , " << (*it)->surface().position().z() << " , "
60  << (*it)->surface().position().perp();
61  }
62 
63  if (!theFrontDetBrothers.empty()) {
64  for (vector<const GeomDet*>::const_iterator it = theFrontDetBrothers.begin(); it != theFrontDetBrothers.end();
65  it++) {
66  LogDebug("TkDetLayers") << "frontDet brothers detId,phi,z,r: " << (*it)->geographicalId().rawId() << " , "
67  << (*it)->surface().position().phi() << " , " << (*it)->surface().position().z() << " , "
68  << (*it)->surface().position().perp();
69  }
70  }
71 
72  for (vector<const GeomDet*>::const_iterator it = theBackDets.begin(); it != theBackDets.end(); it++) {
73  LogDebug("TkDetLayers") << "backDet detId,phi,z,r: " << (*it)->geographicalId().rawId() << " , "
74  << (*it)->surface().position().phi() << " , " << (*it)->surface().position().z() << " , "
75  << (*it)->surface().position().perp();
76  }
77 
78  if (!theBackDetBrothers.empty()) {
79  for (vector<const GeomDet*>::const_iterator it = theBackDetBrothers.begin(); it != theBackDetBrothers.end(); it++) {
80  LogDebug("TkDetLayers") << "backDet brothers detId,phi,z,r: " << (*it)->geographicalId().rawId() << " , "
81  << (*it)->surface().position().phi() << " , " << (*it)->surface().position().z() << " , "
82  << (*it)->surface().position().perp();
83  }
84  }
85 #endif
86 }

References LogDebug, theBackBinFinder, theBackDetBrothers, theBackDets, theBackDisk, theDets, theDisk, theFrontBinFinder, theFrontDetBrothers, theFrontDets, and theFrontDisk.

◆ ~Phase2EndcapRing()

Phase2EndcapRing::~Phase2EndcapRing ( )
override

Definition at line 88 of file Phase2EndcapRing.cc.

88 {}

Member Function Documentation

◆ addClosest()

bool Phase2EndcapRing::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 191 of file Phase2EndcapRing.cc.

196  {
197  const vector<const GeomDet*>& sub(subLayer(crossing.subLayerIndex()));
198  const GeomDet* det(sub[crossing.closestDetIndex()]);
199  bool firstgroup = CompatibleDetToGroupAdder::add(*det, tsos, prop, est, result);
200  if (theFrontDetBrothers.empty() && theBackDetBrothers.empty())
201  return firstgroup;
202  // it assumes that the closestDetIndex is ok also for the brother detectors: the crossing is NOT recomputed
203  const vector<const GeomDet*>& subBrothers(subLayerBrothers(crossing.subLayerIndex()));
204  const GeomDet* detBrother(subBrothers[crossing.closestDetIndex()]);
205  bool brothergroup = CompatibleDetToGroupAdder::add(*detBrother, tsos, prop, est, brotherresult);
206  return firstgroup || brothergroup;
207 }

References CompatibleDetToGroupAdder::add(), SubLayerCrossing::closestDetIndex(), mps_fire::result, subLayer(), subLayerBrothers(), SubLayerCrossing::subLayerIndex(), theBackDetBrothers, and theFrontDetBrothers.

Referenced by groupedCompatibleDetsV().

◆ basicComponents()

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

Implements GeometricSearchDet.

Definition at line 24 of file Phase2EndcapRing.h.

24 { return theDets; }

References theDets.

◆ compatible()

pair< bool, TrajectoryStateOnSurface > Phase2EndcapRing::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 94 of file Phase2EndcapRing.cc.

96  {
97  edm::LogError("TkDetLayers") << "temporary dummy implementation of Phase2EndcapRing::compatible()!!";
98  return pair<bool, TrajectoryStateOnSurface>();
99 }

◆ components()

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

Returns basic components, if any.

Returns direct components, if any

Implements GeometricSearchDet.

Definition at line 90 of file Phase2EndcapRing.cc.

90  {
91  throw DetLayerException("Phase2EndcapRing doesn't have GeometricSearchDet components");
92 }

◆ computeCrossings()

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

Definition at line 155 of file Phase2EndcapRing.cc.

156  {
157  auto rho = startingState.transverseCurvature();
158 
159  HelixPlaneCrossing::PositionType startPos(startingState.globalPosition());
160  HelixPlaneCrossing::DirectionType startDir(startingState.globalMomentum());
161  HelixForwardPlaneCrossing crossing(startPos, startDir, rho, propDir);
162 
163  pair<bool, double> frontPath = crossing.pathLength(*theFrontDisk);
164  if (!frontPath.first)
165  return SubLayerCrossings();
166 
167  pair<bool, double> backPath = crossing.pathLength(*theBackDisk);
168  if (!backPath.first)
169  return SubLayerCrossings();
170 
171  GlobalPoint gFrontPoint(crossing.position(frontPath.second));
172  GlobalPoint gBackPoint(crossing.position(backPath.second));
173 
174  int frontIndex = theFrontBinFinder.binIndex(gFrontPoint.barePhi());
175  SubLayerCrossing frontSLC(0, frontIndex, gFrontPoint);
176 
177  int backIndex = theBackBinFinder.binIndex(gBackPoint.barePhi());
178  SubLayerCrossing backSLC(1, backIndex, gBackPoint);
179 
180  // 0ss: frontDisk has index=0, backDisk has index=1
181  float frontDist = std::abs(Geom::deltaPhi(gFrontPoint.barePhi(), theFrontDets[frontIndex]->surface().phi()));
182  float backDist = std::abs(Geom::deltaPhi(gBackPoint.barePhi(), theBackDets[backIndex]->surface().phi()));
183 
184  if (frontDist < backDist) {
185  return SubLayerCrossings(frontSLC, backSLC, 0);
186  } else {
187  return SubLayerCrossings(backSLC, frontSLC, 1);
188  }
189 }

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

Referenced by groupedCompatibleDetsV().

◆ groupedCompatibleDetsV()

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

Reimplemented from GeometricSearchDet.

Definition at line 101 of file Phase2EndcapRing.cc.

104  {
105  SubLayerCrossings crossings;
106  crossings = computeCrossings(tsos, prop.propagationDirection());
107  if (!crossings.isValid())
108  return;
109 
110  std::vector<DetGroup> closestResult;
111  std::vector<DetGroup> closestBrotherResult;
112  addClosest(tsos, prop, est, crossings.closest(), closestResult, closestBrotherResult);
113  if (closestResult.empty())
114  return;
115 
116  DetGroupElement closestGel(closestResult.front().front());
117  int crossingSide = LayerCrossingSide().endcapSide(closestGel.trajectoryState(), prop);
118  float phiWindow = tkDetUtil::computeWindowSize(closestGel.det(), closestGel.trajectoryState(), est);
119  searchNeighbors(tsos, prop, est, crossings.closest(), phiWindow, closestResult, closestBrotherResult, false);
120 
121  vector<DetGroup> closestCompleteResult;
123  std::move(closestResult), std::move(closestBrotherResult), closestCompleteResult, 0, crossingSide);
124 
125  vector<DetGroup> nextResult;
126  vector<DetGroup> nextBrotherResult;
127  searchNeighbors(tsos, prop, est, crossings.other(), phiWindow, nextResult, nextBrotherResult, true);
128 
129  vector<DetGroup> nextCompleteResult;
131  std::move(nextResult), std::move(nextBrotherResult), nextCompleteResult, 0, crossingSide);
132 
134  std::move(closestCompleteResult), std::move(nextCompleteResult), result, crossings.closestIndex(), crossingSide);
135 
136  //due to propagator problems, when we add single pt sub modules, we should order them in z (endcap)
137  if (!theFrontDetBrothers.empty() && !theBackDetBrothers.empty())
138  sort(result.begin(), result.end(), DetGroupElementZLess());
139 
140 #ifdef EDM_ML_DEBUG
141  LogTrace("TkDetLayers") << "Number of groups : " << result.size() << std::endl;
142  for (auto& grp : result) {
143  if (grp.empty())
144  continue;
145  LogTrace("TkDetLayers") << "New group in Phase2EndcapRing made by : " << std::endl;
146  for (auto const& det : grp) {
147  LogTrace("TkDetLayers") << " geom det at r: " << det.det()->position().perp()
148  << " id:" << det.det()->geographicalId().rawId()
149  << " tsos at:" << det.trajectoryState().globalPosition() << std::endl;
150  }
151  }
152 #endif
153 }

References addClosest(), SubLayerCrossings::closest(), SubLayerCrossings::closestIndex(), computeCrossings(), tkDetUtil::computeWindowSize(), LayerCrossingSide::endcapSide(), SubLayerCrossings::isValid(), LogTrace, eostools::move(), DetGroupMerger::orderAndMergeTwoLevels(), SubLayerCrossings::other(), trackingPOGFilters_cfi::phiWindow, Propagator::propagationDirection(), mps_fire::result, searchNeighbors(), theBackDetBrothers, and theFrontDetBrothers.

◆ searchNeighbors()

void Phase2EndcapRing::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 209 of file Phase2EndcapRing.cc.

216  {
217  const GlobalPoint& gCrossingPos = crossing.position();
218 
219  const vector<const GeomDet*>& sLayer(subLayer(crossing.subLayerIndex()));
220  // It assumes that what is ok for the front modules in the pt modules is ok also for the back module
221  const vector<const GeomDet*>& sBrotherLayer(subLayerBrothers(crossing.subLayerIndex()));
222 
223  int closestIndex = crossing.closestDetIndex();
224  int negStartIndex = closestIndex - 1;
225  int posStartIndex = closestIndex + 1;
226 
227  if (checkClosest) { // must decide if the closest is on the neg or pos side
228  if (Geom::phiLess(gCrossingPos.barePhi(), sLayer[closestIndex]->surface().phi())) {
229  posStartIndex = closestIndex;
230  } else {
231  negStartIndex = closestIndex;
232  }
233  }
234 
235  const BinFinderType& binFinder = (crossing.subLayerIndex() == 0 ? theFrontBinFinder : theBackBinFinder);
236 
237  typedef CompatibleDetToGroupAdder Adder;
238  int half = sLayer.size() / 2; // to check if dets are called twice....
239  for (int idet = negStartIndex; idet >= negStartIndex - half; idet--) {
240  const GeomDet& neighborDet = *sLayer[binFinder.binIndex(idet)];
241  if (!tkDetUtil::overlapInPhi(gCrossingPos, neighborDet, window))
242  break;
243  if (!Adder::add(neighborDet, tsos, prop, est, result))
244  break;
245  if (theFrontDetBrothers.empty() && theBackDetBrothers.empty())
246  break;
247  // If the two above checks are passed also the brother module will be added with no further checks
248  const GeomDet& neighborBrotherDet = *sBrotherLayer[binFinder.binIndex(idet)];
249  Adder::add(neighborBrotherDet, tsos, prop, est, brotherresult);
250  // maybe also add shallow crossing angle test here???
251  }
252  for (int idet = posStartIndex; idet < posStartIndex + half; idet++) {
253  const GeomDet& neighborDet = *sLayer[binFinder.binIndex(idet)];
254  if (!tkDetUtil::overlapInPhi(gCrossingPos, neighborDet, window))
255  break;
256  if (!Adder::add(neighborDet, tsos, prop, est, result))
257  break;
258  if (theFrontDetBrothers.empty() && theBackDetBrothers.empty())
259  break;
260  // If the two above checks are passed also the brother module will be added with no further checks
261  const GeomDet& neighborBrotherDet = *sBrotherLayer[binFinder.binIndex(idet)];
262  Adder::add(neighborBrotherDet, tsos, prop, est, brotherresult);
263  // maybe also add shallow crossing angle test here???
264  }
265 }

References PVValHelper::add(), PV3DBase< T, PVType, FrameType >::barePhi(), PeriodicBinFinderInPhi< T >::binIndex(), SubLayerCrossing::closestDetIndex(), tkDetUtil::overlapInPhi(), Geom::phiLess(), SubLayerCrossing::position(), mps_fire::result, subLayer(), subLayerBrothers(), SubLayerCrossing::subLayerIndex(), theBackBinFinder, theBackDetBrothers, theFrontBinFinder, theFrontDetBrothers, and svgfig::window().

Referenced by groupedCompatibleDetsV().

◆ specificSurface()

virtual const BoundDisk& Phase2EndcapRing::specificSurface ( ) const
inlinevirtual

Definition at line 38 of file Phase2EndcapRing.h.

38 { return *theDisk; }

References theDisk.

◆ subLayer()

const std::vector<const GeomDet*>& Phase2EndcapRing::subLayer ( int  ind) const
inlineprivate

Definition at line 62 of file Phase2EndcapRing.h.

62 { return (ind == 0 ? theFrontDets : theBackDets); }

References theBackDets, and theFrontDets.

Referenced by addClosest(), and searchNeighbors().

◆ subLayerBrothers()

const std::vector<const GeomDet*>& Phase2EndcapRing::subLayerBrothers ( int  ind) const
inlineprivate

Definition at line 64 of file Phase2EndcapRing.h.

64  {
65  return (ind == 0 ? theFrontDetBrothers : theBackDetBrothers);
66  }

References theBackDetBrothers, and theFrontDetBrothers.

Referenced by addClosest(), and searchNeighbors().

◆ surface()

const BoundSurface& Phase2EndcapRing::surface ( ) const
inlineoverridevirtual

The surface of the GeometricSearchDet.

Implements GeometricSearchDet.

Definition at line 22 of file Phase2EndcapRing.h.

22 { return *theDisk; }

References theDisk.

Member Data Documentation

◆ theBackBinFinder

BinFinderType Phase2EndcapRing::theBackBinFinder
private

Definition at line 82 of file Phase2EndcapRing.h.

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

◆ theBackDetBrothers

std::vector<const GeomDet*> Phase2EndcapRing::theBackDetBrothers
private

◆ theBackDets

std::vector<const GeomDet*> Phase2EndcapRing::theBackDets
private

Definition at line 71 of file Phase2EndcapRing.h.

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

◆ theBackDisk

ReferenceCountingPointer<BoundDisk> Phase2EndcapRing::theBackDisk
private

Definition at line 77 of file Phase2EndcapRing.h.

Referenced by computeCrossings(), and Phase2EndcapRing().

◆ theDets

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

Definition at line 69 of file Phase2EndcapRing.h.

Referenced by basicComponents(), and Phase2EndcapRing().

◆ theDisk

ReferenceCountingPointer<BoundDisk> Phase2EndcapRing::theDisk
private

Definition at line 75 of file Phase2EndcapRing.h.

Referenced by Phase2EndcapRing(), specificSurface(), and surface().

◆ theFrontBinFinder

BinFinderType Phase2EndcapRing::theFrontBinFinder
private

Definition at line 81 of file Phase2EndcapRing.h.

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

◆ theFrontDetBrothers

std::vector<const GeomDet*> Phase2EndcapRing::theFrontDetBrothers
private

◆ theFrontDets

std::vector<const GeomDet*> Phase2EndcapRing::theFrontDets
private

Definition at line 70 of file Phase2EndcapRing.h.

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

◆ theFrontDisk

ReferenceCountingPointer<BoundDisk> Phase2EndcapRing::theFrontDisk
private

Definition at line 76 of file Phase2EndcapRing.h.

Referenced by computeCrossings(), and Phase2EndcapRing().

SubLayerCrossing::position
const GlobalPoint & position() const
Definition: SubLayerCrossings.h:14
tkDetUtil::computeWindowSize
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est)
Definition: TkDetUtil.cc:10
SubLayerCrossings::isValid
bool isValid()
Definition: SubLayerCrossings.h:28
Phase2EndcapRing::theBackBinFinder
BinFinderType theBackBinFinder
Definition: Phase2EndcapRing.h:82
GeometricSearchDet::GeometricSearchDet
GeometricSearchDet(bool doHaveGroups)
Definition: GeometricSearchDet.h:24
GeomDet
Definition: GeomDet.h:27
LayerCrossingSide
Definition: LayerCrossingSide.h:15
Phase2EndcapRing::theBackDisk
ReferenceCountingPointer< BoundDisk > theBackDisk
Definition: Phase2EndcapRing.h:77
Phase2EndcapRing::theFrontDetBrothers
std::vector< const GeomDet * > theFrontDetBrothers
Definition: Phase2EndcapRing.h:72
Phase2EndcapRing::theFrontDisk
ReferenceCountingPointer< BoundDisk > theFrontDisk
Definition: Phase2EndcapRing.h:76
SubLayerCrossings::closestIndex
int closestIndex() const
Definition: SubLayerCrossings.h:31
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
Phase2EndcapRing::computeCrossings
SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface &tsos, PropagationDirection propDir) const __attribute__((hot))
Definition: Phase2EndcapRing.cc:155
LayerCrossingSide::endcapSide
static int endcapSide(const TrajectoryStateOnSurface &startingState, const Propagator &prop)
Definition: LayerCrossingSide.h:31
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
Propagator::propagationDirection
virtual PropagationDirection propagationDirection() const final
Definition: Propagator.h:139
Phase2EndcapRing::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: Phase2EndcapRing.cc:209
Phase2EndcapRing::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: Phase2EndcapRing.cc:191
Point3DBase< float, GlobalTag >
Phase2EndcapRing::BinFinderType
PeriodicBinFinderInPhi< float > BinFinderType
Definition: Phase2EndcapRing.h:79
Phase2EndcapRing::subLayerBrothers
const std::vector< const GeomDet * > & subLayerBrothers(int ind) const
Definition: Phase2EndcapRing.h:64
Phase2EndcapRing::theDisk
ReferenceCountingPointer< BoundDisk > theDisk
Definition: Phase2EndcapRing.h:75
DetGroupElementZLess
Definition: Phase2EndcapRing.cc:22
trackingPOGFilters_cfi.phiWindow
phiWindow
Definition: trackingPOGFilters_cfi.py:109
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
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
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
Geom::phiLess
bool phiLess(float phi1, float phi2)
Definition: VectorUtil.h:18
PV3DBase::barePhi
T barePhi() const
Definition: PV3DBase.h:65
Phase2EndcapRing::theDets
std::vector< const GeomDet * > theDets
Definition: Phase2EndcapRing.h:69
PVValHelper::add
void add(std::map< std::string, TH1 * > &h, TH1 *hist)
Definition: PVValidationHelpers.cc:12
SubLayerCrossing::closestDetIndex
int closestDetIndex() const
Definition: SubLayerCrossings.h:13
DetGroupElement
Definition: DetGroup.h:10
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
tkDetUtil::overlapInPhi
bool overlapInPhi(float phi, const GeomDet &det, float phiWindow)
Definition: TkDetUtil.h:18
DetLayerException
Common base class.
Definition: DetLayerException.h:15
eostools.move
def move(src, dest)
Definition: eostools.py:511
Phase2EndcapRing::theBackDetBrothers
std::vector< const GeomDet * > theBackDetBrothers
Definition: Phase2EndcapRing.h:73
Phase2EndcapRing::theBackDets
std::vector< const GeomDet * > theBackDets
Definition: Phase2EndcapRing.h:71
CompatibleDetToGroupAdder
Definition: CompatibleDetToGroupAdder.h:13
SubLayerCrossings::other
const SubLayerCrossing & other() const
Definition: SubLayerCrossings.h:30
PeriodicBinFinderInPhi::binIndex
int binIndex(T phi) const override
returns an index in the valid range for the bin that contains phi
Definition: PeriodicBinFinderInPhi.h:25
ForwardRingDiskBuilderFromDet
Definition: ForwardRingDiskBuilderFromDet.h:19
SubLayerCrossing
Definition: SubLayerCrossings.h:7
SubLayerCrossing::subLayerIndex
int subLayerIndex() const
Definition: SubLayerCrossings.h:12
Phase2EndcapRing::theFrontBinFinder
BinFinderType theFrontBinFinder
Definition: Phase2EndcapRing.h:81
Phase2EndcapRing::theFrontDets
std::vector< const GeomDet * > theFrontDets
Definition: Phase2EndcapRing.h:70
mps_fire.result
result
Definition: mps_fire.py:311
HelixForwardPlaneCrossing
Definition: HelixForwardPlaneCrossing.h:13
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
Phase2EndcapRing::subLayer
const std::vector< const GeomDet * > & subLayer(int ind) const
Definition: Phase2EndcapRing.h:62
Basic3DVector< float >
SubLayerCrossings
Definition: SubLayerCrossings.h:22