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 30 of file Phase2EndcapRing.cc.

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

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

◆ ~Phase2EndcapRing()

Phase2EndcapRing::~Phase2EndcapRing ( )
override

Definition at line 89 of file Phase2EndcapRing.cc.

89 {}

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 192 of file Phase2EndcapRing.cc.

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

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 95 of file Phase2EndcapRing.cc.

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

◆ components()

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

Returns basic components, if any.

Returns direct components, if any

Implements GeometricSearchDet.

Definition at line 91 of file Phase2EndcapRing.cc.

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

◆ computeCrossings()

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

Definition at line 156 of file Phase2EndcapRing.cc.

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

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 102 of file Phase2EndcapRing.cc.

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

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 210 of file Phase2EndcapRing.cc.

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

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:156
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:210
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:192
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:23
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:670
edm::LogError
Definition: MessageLogger.h:183
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
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:303
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:671
Phase2EndcapRing::subLayer
const std::vector< const GeomDet * > & subLayer(int ind) const
Definition: Phase2EndcapRing.h:62
Basic3DVector< float >
SubLayerCrossings
Definition: SubLayerCrossings.h:22