CMS 3D CMS Logo

RectangularEtaPhiTrackingRegion.cc
Go to the documentation of this file.
1 #include <cmath>
3 
4 #include "OuterEstimator.h"
5 
11 
23 
26 
35 
36 #include <iostream>
37 #include <algorithm>
38 #include <cctype>
39 
40 namespace {
41  template <class T>
42  T sqr(T t) {
43  return t * t;
44  }
45 } // namespace
46 
47 using namespace PixelRecoUtilities;
48 using namespace std;
49 
51  const std::string& name) {
53  std::transform(tmp.begin(), tmp.end(), tmp.begin(), ::tolower);
54  if (tmp == "never")
55  return UseMeasurementTracker::kNever;
56  if (tmp == "forsistrips")
57  return UseMeasurementTracker::kForSiStrips;
58  if (tmp == "always")
59  return UseMeasurementTracker::kAlways;
60  throw cms::Exception("Configuration") << "Got invalid string '" << name
61  << "', valid values are 'Never', 'ForSiStrips', 'Always' (case insensitive)";
62 }
63 
65  float eta = dir.eta();
66  theEtaRange = Range(eta - margin.left(), eta + margin.right());
67  theLambdaRange = Range(std::sinh(theEtaRange.min()), std::sinh(theEtaRange.max()));
68  theMeanLambda = std::sinh(theEtaRange.mean());
69 }
70 
71 std::unique_ptr<HitRZCompatibility> RectangularEtaPhiTrackingRegion::checkRZOld(const DetLayer* layer,
72  const Hit& outerHit,
73  const edm::EventSetup& iSetup,
74  const DetLayer* outerlayer) const {
75  bool isBarrel = (layer->location() == GeomDetEnumerators::barrel);
76  GlobalPoint ohit = outerHit->globalPosition();
77  float outerred_r = std::sqrt(sqr(ohit.x() - origin().x()) + sqr(ohit.y() - origin().y()));
78  PixelRecoPointRZ outer(outerred_r, ohit.z());
79 
80  float zMinOrigin = origin().z() - originZBound();
81  float zMaxOrigin = origin().z() + originZBound();
82 
83  if (!thePrecise) {
84  float vcotMin = (outer.z() > zMaxOrigin) ? (outer.z() - zMaxOrigin) / (outer.r() + originRBound())
85  : (outer.z() - zMaxOrigin) / (outer.r() - originRBound());
86  float vcotMax = (outer.z() > zMinOrigin) ? (outer.z() - zMinOrigin) / (outer.r() - originRBound())
87  : (outer.z() - zMinOrigin) / (outer.r() + originRBound());
88  float cotRight = std::max(vcotMin, theLambdaRange.min());
89  float cotLeft = std::min(vcotMax, theLambdaRange.max());
90  return std::make_unique<HitEtaCheck>(isBarrel, outer, cotLeft, cotRight);
91  }
92 
93  float outerZscatt = 0;
94  float innerScatt = 0;
95  //CHECK
96  if (theUseMS) {
97  MultipleScatteringParametrisation oSigma(layer, iSetup);
98  float cotThetaOuter = theMeanLambda;
99  float sinThetaOuterInv = std::sqrt(1.f + sqr(cotThetaOuter));
100  outerZscatt = 3.f * oSigma(ptMin(), cotThetaOuter) * sinThetaOuterInv;
101  }
102 
103  PixelRecoLineRZ boundL(outer, theLambdaRange.max());
104  PixelRecoLineRZ boundR(outer, theLambdaRange.min());
105  float zMinLine = boundL.zAtR(0.) - outerZscatt;
106  float zMaxLine = boundR.zAtR(0.) + outerZscatt;
107  PixelRecoPointRZ vtxL(0., max(zMinLine, zMinOrigin));
108  PixelRecoPointRZ vtxR(0., min(zMaxLine, zMaxOrigin));
109  PixelRecoPointRZ vtxMean(0., (vtxL.z() + vtxR.z()) * 0.5f);
110  //CHECK
111 
112  if (theUseMS) {
113  MultipleScatteringParametrisation iSigma(layer, iSetup);
114 
115  innerScatt =
116  3.f * (outerlayer ? iSigma(ptMin(), vtxMean, outer, outerlayer->seqNum()) : iSigma(ptMin(), vtxMean, outer));
117 
118  // innerScatt = 3.f *iSigma( ptMin(), vtxMean, outer);
119  }
120 
121  SimpleLineRZ leftLine(vtxL, outer);
122  SimpleLineRZ rightLine(vtxR, outer);
123 
124  HitRZConstraint rzConstraint(leftLine, rightLine);
125  auto cotTheta = std::abs(leftLine.cotLine() + rightLine.cotLine()) * 0.5f;
126 
127  // std::cout << "RectangularEtaPhiTrackingRegion " << outer.r()<<','<< outer.z() << " " << innerScatt << " " << cotTheta << " " << hitZErr << std::endl;
128 
129  if (isBarrel) {
130  auto sinThetaInv = std::sqrt(1.f + sqr(cotTheta));
131  auto corr = innerScatt * sinThetaInv;
132  return std::make_unique<HitZCheck>(rzConstraint, HitZCheck::Margin(corr, corr));
133  } else {
134  auto cosThetaInv = std::sqrt(1.f + sqr(1.f / cotTheta));
135  auto corr = innerScatt * cosThetaInv;
136  return std::make_unique<HitRCheck>(rzConstraint, HitRCheck::Margin(corr, corr));
137  }
138 }
139 
140 std::unique_ptr<MeasurementEstimator> RectangularEtaPhiTrackingRegion::estimator(const BarrelDetLayer* layer,
141  const edm::EventSetup& iSetup) const {
142  using Algo = HitZCheck;
143 
144  // det dimensions
145  float halfLength = 0.5f * layer->surface().bounds().length();
146  float halfThickness = 0.5f * layer->surface().bounds().thickness();
147  float z0 = layer->position().z();
148  float radius = layer->specificSurface().radius();
149 
150  // det ranges
151  Range detRWindow(radius - halfThickness, radius + halfThickness);
152  Range detZWindow(z0 - halfLength, z0 + halfLength);
153 
154  // z prediction, skip if not intersection
155  HitZCheck zPrediction(rzConstraint());
156  Range hitZWindow = zPrediction.range(detRWindow.min()).intersection(detZWindow);
157  if (hitZWindow.empty())
158  return nullptr;
159 
160  // phi prediction
161  OuterHitPhiPrediction phiPrediction = phiWindow(iSetup);
162 
163  //
164  // optional corrections for tolerance (mult.scatt, error, bending)
165  //
167  if (thePrecise) {
168  auto invR = 1.f / radius;
169  auto cotTheta = (hitZWindow.mean() - origin().z()) * invR;
170  auto sinThetaInv = std::sqrt(1.f + sqr(cotTheta));
171  MultipleScatteringParametrisation msSigma(layer, iSetup);
172  auto scatt = 3.f * msSigma(ptMin(), cotTheta);
173  auto bendR = longitudinalBendingCorrection(radius, ptMin(), iSetup);
174 
175  float hitErrRPhi = 0.;
176  float hitErrZ = 0.;
177  float corrPhi = (scatt + hitErrRPhi) * invR;
178  float corrZ = scatt * sinThetaInv + bendR * std::abs(cotTheta) + hitErrZ;
179 
180  phiPrediction.setTolerance(corrPhi);
181  zPrediction.setTolerance(HitZCheck::Margin(corrZ, corrZ));
182 
183  //
184  // hit ranges in det
185  //
186  OuterHitPhiPrediction::Range phi1 = phiPrediction(detRWindow.min());
187  OuterHitPhiPrediction::Range phi2 = phiPrediction(detRWindow.max());
188  phiRange = Range(std::min(phi1.min(), phi2.min()), std::max(phi1.max(), phi2.max()));
189  Range w1 = zPrediction.range(detRWindow.min());
190  Range w2 = zPrediction.range(detRWindow.max());
191  hitZWindow = Range(std::min(w1.min(), w2.min()), std::max(w1.max(), w2.max())).intersection(detZWindow);
192  } else {
193  phiRange = phiPrediction(detRWindow.mean());
194  }
195 
196  return std::make_unique<OuterEstimator<Algo>>(OuterDetCompatibility(layer, phiRange, detRWindow, hitZWindow),
197  OuterHitCompatibility<Algo>(phiPrediction, zPrediction),
198  iSetup);
199 }
200 
201 std::unique_ptr<MeasurementEstimator> RectangularEtaPhiTrackingRegion::estimator(const ForwardDetLayer* layer,
202  const edm::EventSetup& iSetup) const {
203  using Algo = HitRCheck;
204  // det dimensions, ranges
205  float halfThickness = 0.5f * layer->surface().bounds().thickness();
206  float zLayer = layer->position().z();
207  Range detZWindow(zLayer - halfThickness, zLayer + halfThickness);
208  Range detRWindow(layer->specificSurface().innerRadius(), layer->specificSurface().outerRadius());
209 
210  // r prediction, skip if not intersection
211  HitRCheck rPrediction(rzConstraint());
212  Range hitRWindow = rPrediction.range(zLayer).intersection(detRWindow);
213  if (hitRWindow.empty())
214  return nullptr;
215 
216  // phi prediction
217  OuterHitPhiPrediction phiPrediction = phiWindow(iSetup);
218  OuterHitPhiPrediction::Range phiRange = phiPrediction(detRWindow.max());
219 
220  //
221  // optional corrections for tolerance (mult.scatt, error, bending)
222  //
223  if (thePrecise) {
224  float cotTheta = (detZWindow.mean() - origin().z()) / hitRWindow.mean();
225  float cosThetaInv = std::sqrt(1 + sqr(cotTheta)) / cotTheta;
226  MultipleScatteringParametrisation msSigma(layer, iSetup);
227  float scatt = 3.f * msSigma(ptMin(), cotTheta);
228  float bendR = longitudinalBendingCorrection(hitRWindow.max(), ptMin(), iSetup);
229  float hitErrRPhi = 0.;
230  float hitErrR = 0.;
231  float corrPhi = (scatt + hitErrRPhi) / detRWindow.min();
232  float corrR = scatt * std::abs(cosThetaInv) + bendR + hitErrR;
233 
234  phiPrediction.setTolerance(corrPhi);
235  rPrediction.setTolerance(HitRCheck::Margin(corrR, corrR));
236 
237  //
238  // hit ranges in det
239  //
240  Range w1, w2;
241  if (zLayer > 0) {
242  w1 = rPrediction.range(detZWindow.min());
243  w2 = rPrediction.range(detZWindow.max());
244  } else {
245  w1 = rPrediction.range(detZWindow.max());
246  w2 = rPrediction.range(detZWindow.min());
247  }
248  hitRWindow = Range(w1.min(), w2.max()).intersection(detRWindow);
249  }
250 
251  return std::make_unique<OuterEstimator<Algo>>(OuterDetCompatibility(layer, phiRange, hitRWindow, detZWindow),
252  OuterHitCompatibility<Algo>(phiPrediction, rPrediction),
253  iSetup);
254 }
255 
257  auto phi0 = phiDirection();
258  return OuterHitPhiPrediction(
259  OuterHitPhiPrediction::Range(phi0 - thePhiMargin.left(), phi0 + thePhiMargin.right()),
260  OuterHitPhiPrediction::Range(curvature(invPtRange().min(), iSetup), curvature(invPtRange().max(), iSetup)),
261  originRBound());
262 }
263 
265  HitRZConstraint::Point pLeft, pRight;
266  float zMin = origin().z() - originZBound();
267  float zMax = origin().z() + originZBound();
268  float rMin = -originRBound();
269  float rMax = originRBound();
270  if (theEtaRange.max() > 0) {
271  pRight = HitRZConstraint::Point(rMin, zMax);
272  } else {
273  pRight = HitRZConstraint::Point(rMax, zMax);
274  }
275  if (theEtaRange.min() > 0.) {
276  pLeft = HitRZConstraint::Point(rMax, zMin);
277  } else {
278  pLeft = HitRZConstraint::Point(rMin, zMin);
279  }
280  return HitRZConstraint(pLeft, theLambdaRange.min(), pRight, theLambdaRange.max());
281 }
282 
284  const SeedingLayerSetsHits::SeedingLayer& layer) const {
286 
287  //ESTIMATOR
288 
289  const DetLayer* detLayer = layer.detLayer();
290 
291  bool measurementMethod = false;
292  if (theMeasurementTrackerUsage == UseMeasurementTracker::kAlways)
293  measurementMethod = true;
294  else if (theMeasurementTrackerUsage == UseMeasurementTracker::kForSiStrips &&
296  measurementMethod = true;
297 
298  if (measurementMethod) {
300  es.get<IdealMagneticFieldRecord>().get(field);
301  const MagneticField* magField = field.product();
302 
303  const GlobalPoint vtx = origin();
304  GlobalVector dir = direction();
305 
306  std::unique_ptr<MeasurementEstimator> est;
309  (!theUseEtaPhi && detLayer->location() == GeomDetEnumerators::barrel)) {
310  const BarrelDetLayer& bl = dynamic_cast<const BarrelDetLayer&>(*detLayer);
311  est = estimator(&bl, es);
312  } else if ((GeomDetEnumerators::isTrackerPixel(detLayer->subDetector()) &&
314  (!theUseEtaPhi && detLayer->location() == GeomDetEnumerators::endcap)) {
315  const ForwardDetLayer& fl = dynamic_cast<const ForwardDetLayer&>(*detLayer);
316  est = estimator(&fl, es);
317  }
318 
319  EtaPhiMeasurementEstimator etaPhiEstimator((theEtaRange.second - theEtaRange.first) * 0.5f,
320  (thePhiMargin.left() + thePhiMargin.right()) * 0.5f);
321  MeasurementEstimator* findDetAndHits = &etaPhiEstimator;
322  if (est) {
323  LogDebug("RectangularEtaPhiTrackingRegion") << "use pixel specific estimator.";
324  findDetAndHits = est.get();
325  } else {
326  LogDebug("RectangularEtaPhiTrackingRegion") << "use generic etat phi estimator.";
327  }
328 
329  // TSOS
330  float phi = phiDirection();
331  // std::cout << "dir " << direction().x()/direction().perp() <<','<< direction().y()/direction().perp() << " " << sin(phi) <<','<<cos(phi)<< std::endl;
332  Surface::RotationType rot(sin(phi), -cos(phi), 0, 0, 0, -1, cos(phi), sin(phi), 0);
333 
334  Plane::PlanePointer surface = Plane::build(GlobalPoint(0., 0., 0.), rot);
335  //TrajectoryStateOnSurface tsos(lpar, *surface, magField);
336 
338  TrajectoryStateOnSurface tsos(fts, *surface);
339 
340  // propagator
341  StraightLinePropagator prop(magField, alongMomentum);
342 
343  LayerMeasurements lm(theMeasurementTracker->measurementTracker(), *theMeasurementTracker);
344 
345  auto hits = lm.recHits(*detLayer, tsos, prop, *findDetAndHits);
346 
347  result.reserve(hits.size());
348  for (auto h : hits) {
349  cache.emplace_back(h);
350  result.emplace_back(h);
351  }
352 
353  LogDebug("RectangularEtaPhiTrackingRegion")
354  << " found " << hits.size() << " minus one measurements on layer: " << detLayer->subDetector();
355  // std::cout << "RectangularEtaPhiTrackingRegion" <<" found "<< meas.size()<<" minus one measurements on layer: "<<detLayer->subDetector() << std::endl;
356 
357  } else {
358  //
359  // temporary solution (actually heavily used for Pixels....)
360  //
361  if (detLayer->location() == GeomDetEnumerators::barrel) {
362  const BarrelDetLayer& bl = dynamic_cast<const BarrelDetLayer&>(*detLayer);
363  auto est = estimator(&bl, es);
364  if (!est)
365  return result;
366  using Algo = HitZCheck;
367  auto const& hitComp = (reinterpret_cast<OuterEstimator<Algo> const&>(*est)).hitCompatibility();
368  auto layerHits = layer.hits();
369  result.reserve(layerHits.size());
370  for (auto&& ih : layerHits) {
371  if (hitComp(*ih))
372  result.emplace_back(std::move(ih));
373  }
374 
375  } else {
376  const ForwardDetLayer& fl = dynamic_cast<const ForwardDetLayer&>(*detLayer);
377  auto est = estimator(&fl, es);
378  if (!est)
379  return result;
380  using Algo = HitRCheck;
381  auto const& hitComp = (reinterpret_cast<OuterEstimator<Algo> const&>(*est)).hitCompatibility();
382  auto layerHits = layer.hits();
383  result.reserve(layerHits.size());
384  for (auto&& ih : layerHits) {
385  if (hitComp(*ih))
386  result.emplace_back(std::move(ih));
387  }
388  }
389  }
390 
391  // std::cout << "RectangularEtaPhiTrackingRegion hits " << result.size() << std::endl;
392 
393  return result;
394 }
395 
397  std::ostringstream str;
398  str << TrackingRegionBase::print() << " eta: " << theEtaRange << " phi:" << thePhiMargin << "precise: " << thePrecise;
399  return str.str();
400 }
Vector3DBase
Definition: Vector3DBase.h:8
OuterHitPhiPrediction::setTolerance
void setTolerance(float tolerance)
Definition: OuterHitPhiPrediction.h:22
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
Hit
Definition: SiPixelLorentzAngle.h:57
MeasurementEstimator
Definition: MeasurementEstimator.h:19
TkRotation< float >
TrajectoryStateOnSurface.h
photonAnalyzer_cfi.rMax
rMax
Definition: photonAnalyzer_cfi.py:91
LocalTrajectoryParameters.h
w2
common ppss p3p6s2 common epss epspn46 common const1 w2
Definition: inclppp.h:1
MeasurementTrackerEvent.h
FreeTrajectoryState.h
GlobalTrajectoryParameters.h
photonAnalyzer_cfi.zMax
zMax
Definition: photonAnalyzer_cfi.py:95
TrackerGeometry.h
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
DetLayer::subDetector
virtual SubDetector subDetector() const =0
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel,...
DetLayer
Definition: DetLayer.h:21
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
Range
PixelRecoRange< float > Range
Definition: PixelTripletHLTGenerator.cc:31
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
HitZCheck::setTolerance
void setTolerance(const Margin &tolerance)
Definition: HitZCheck.h:26
BarrelDetLayer::surface
const BoundSurface & surface() const final
GeometricSearchDet interface.
Definition: BarrelDetLayer.h:29
min
T min(T a, T b)
Definition: MathUtil.h:58
SeedingLayerSetsHits::SeedingLayer::detLayer
const DetLayer * detLayer() const
Definition: SeedingLayerSetsHits.h:50
ForwardDetLayer::surface
const BoundSurface & surface() const final
The surface of the GeometricSearchDet.
Definition: ForwardDetLayer.h:29
PixelRecoRange::mean
T mean() const
Definition: PixelRecoRange.h:27
SimpleLineRZ::cotLine
float cotLine() const
Definition: PixelRecoLineRZ.h:74
ptMin
constexpr float ptMin
Definition: PhotonIDValueMapProducer.cc:153
sqr
int sqr(const T &t)
Definition: pfalgo_common_ref.h:9
TrajectoryMeasurement.h
TransientTrackingRecHit.h
ReferenceCountingPointer< Plane >
CkfComponentsRecord.h
RectangularEtaPhiTrackingRegion::estimator
std::unique_ptr< MeasurementEstimator > estimator(const BarrelDetLayer *layer, const edm::EventSetup &iSetup) const
Definition: RectangularEtaPhiTrackingRegion.cc:140
GeometricSearchDet::position
virtual const Surface::PositionType & position() const
Returns position of the surface.
Definition: GeometricSearchDet.h:31
PixelRecoUtilities::curvature
T curvature(T InversePt, const edm::EventSetup &iSetup)
Definition: PixelRecoUtilities.h:42
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
watchdog.const
const
Definition: watchdog.py:83
RectangularEtaPhiTrackingRegion::hits
TrackingRegion::Hits hits(const edm::EventSetup &es, const SeedingLayerSetsHits::SeedingLayer &layer) const override
get hits from layer compatible with region constraints
Definition: RectangularEtaPhiTrackingRegion.cc:283
PixelRecoRange::empty
bool empty() const
Definition: PixelRecoRange.h:29
PixelRecoRange::min
T min() const
Definition: PixelRecoRange.h:25
Bounds::length
virtual float length() const =0
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
TrackingRegion::print
virtual std::string print() const
Definition: TrackingRegion.h:113
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
HitZCheck
Definition: HitZCheck.h:10
GeomDetEnumerators::barrel
Definition: GeomDetEnumerators.h:9
PixelRecoPointRZ::z
float z() const
Definition: PixelRecoPointRZ.h:11
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
DetLayer::location
virtual Location location() const =0
Which part of the detector (barrel, endcap)
RectangularEtaPhiTrackingRegion::print
std::string print() const override
Definition: RectangularEtaPhiTrackingRegion.cc:396
OuterEstimator
Definition: OuterEstimator.h:23
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
RectangularEtaPhiTrackingRegion::initEtaRange
void initEtaRange(const GlobalVector &dir, const Margin &margin)
Definition: RectangularEtaPhiTrackingRegion.cc:64
TrackingRecHit.h
LayerMeasurements
Definition: LayerMeasurements.h:18
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
PixelRecoLineRZ::zAtR
float zAtR(float r) const
Definition: PixelRecoLineRZ.h:36
h
PVValHelper::estimator
estimator
Definition: PVValidationHelpers.h:44
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
EtaPhiMeasurementEstimator.h
TrackingRegion::Hits
SeedingLayerSetsHits::Hits Hits
Definition: TrackingRegion.h:44
alignCSCRings.corr
dictionary corr
Definition: alignCSCRings.py:124
LayerMeasurements.h
PVValHelper::eta
Definition: PVValidationHelpers.h:69
PixelRecoRange::max
T max() const
Definition: PixelRecoRange.h:26
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
Surface::bounds
const Bounds & bounds() const
Definition: Surface.h:87
IdealMagneticFieldRecord.h
str
#define str(s)
Definition: TestProcessor.cc:48
edm::ESHandle< MagneticField >
HitRZConstraint
Definition: HitRZConstraint.h:8
HcalDetIdTransform::transform
unsigned transform(const HcalDetId &id, unsigned transformCode)
Definition: HcalDetIdTransform.cc:7
GlobalTrajectoryParameters
Definition: GlobalTrajectoryParameters.h:15
HitZCheck::range
Range range(const float &radius) const override
Definition: HitZCheck.h:33
HLTMuonOfflineAnalyzer_cfi.z0
z0
Definition: HLTMuonOfflineAnalyzer_cfi.py:98
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
PixelRecoUtilities.h
Point3DBase< float, GlobalTag >
OrderedSet.t
t
Definition: OrderedSet.py:90
PixelRecoRange::intersection
PixelRecoRange< T > intersection(const PixelRecoRange< T > &r) const
Definition: PixelRecoRange.h:40
Algo
Definition: fakeMenu.h:6
utilities.cache
def cache(function)
Definition: utilities.py:3
trackingPOGFilters_cfi.phiWindow
phiWindow
Definition: trackingPOGFilters_cfi.py:109
DetLayer::seqNum
int seqNum() const
Definition: DetLayer.h:35
badGlobalMuonTaggersAOD_cff.vtx
vtx
Definition: badGlobalMuonTaggersAOD_cff.py:5
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
OuterHitCompatibility
Definition: OuterHitCompatibility.h:21
Plane::build
static PlanePointer build(Args &&... args)
Definition: Plane.h:33
PixelPluginsPhase0_cfi.isBarrel
isBarrel
Definition: PixelPluginsPhase0_cfi.py:17
OuterHitPhiPrediction
Definition: OuterHitPhiPrediction.h:12
TrackerDigiGeometryRecord.h
PixelRecoRange< float >
Bounds::thickness
virtual float thickness() const =0
StraightLinePropagator
Definition: StraightLinePropagator.h:16
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
GeomDetEnumerators::endcap
Definition: GeomDetEnumerators.h:9
photonAnalyzer_cfi.zMin
zMin
Definition: photonAnalyzer_cfi.py:94
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
GeomDetEnumerators::isTrackerPixel
bool isTrackerPixel(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:68
PixelRecoLineRZ
Definition: PixelRecoLineRZ.h:12
GeomDetEnumerators::isBarrel
bool isBarrel(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:57
RectangularEtaPhiTrackingRegion.h
EtaPhiMeasurementEstimator
Definition: EtaPhiMeasurementEstimator.h:15
BarrelDetLayer.h
MagneticField.h
TkTrackingRegionsMargin< float >
edm::EventSetup
Definition: EventSetup.h:57
RectangularEtaPhiTrackingRegion::phiWindow
OuterHitPhiPrediction phiWindow(const edm::EventSetup &iSetup) const
Definition: RectangularEtaPhiTrackingRegion.cc:256
RectangularEtaPhiTrackingRegion::UseMeasurementTracker
UseMeasurementTracker
Definition: RectangularEtaPhiTrackingRegion.h:27
HitRCheck.h
OuterDetCompatibility
Definition: OuterDetCompatibility.h:16
StraightLinePropagator.h
get
#define get
PixelRecoUtilities
HitZCheck.h
BarrelDetLayer
Definition: BarrelDetLayer.h:22
SeedingLayerSetsHits::SeedingLayer
Definition: SeedingLayerSetsHits.h:37
PixelRecoPointRZ
Definition: PixelRecoPointRZ.h:6
SeedingLayerSetsHits::SeedingLayer::hits
Hits hits() const
Definition: SeedingLayerSetsHits.h:51
HitEtaCheck.h
HitRCheck
Definition: HitRCheck.h:10
MultipleScatteringParametrisation.h
SimpleLineRZ
Definition: PixelRecoLineRZ.h:63
OuterEstimator.h
PixelRecoUtilities::longitudinalBendingCorrection
double longitudinalBendingCorrection(double radius, double pt, const edm::EventSetup &iSetup)
Definition: PixelRecoUtilities.h:55
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
ForwardDetLayer
Definition: ForwardDetLayer.h:22
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
RectangularEtaPhiTrackingRegion::checkRZOld
std::unique_ptr< HitRZCompatibility > checkRZOld(const DetLayer *layer, const Hit &outerHit, const edm::EventSetup &iSetup, const DetLayer *outerlayer) const
Definition: RectangularEtaPhiTrackingRegion.cc:71
T
long double T
Definition: Basic3DVectorLD.h:48
ForwardDetLayer.h
Exception
Definition: hltDiff.cc:246
HitRZConstraint::Point
SimpleLineRZ::Point Point
Definition: HitRZConstraint.h:11
RectangularEtaPhiTrackingRegion::rzConstraint
HitRZConstraint rzConstraint() const
Definition: RectangularEtaPhiTrackingRegion.cc:264
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
CosmicsPD_Skims.radius
radius
Definition: CosmicsPD_Skims.py:135
DetLayer.h
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
BoundPlane.h
MultipleScatteringParametrisation
Definition: MultipleScatteringParametrisation.h:16
photonAnalyzer_cfi.rMin
rMin
Definition: photonAnalyzer_cfi.py:90
mps_fire.result
result
Definition: mps_fire.py:303
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
SurfaceOrientation::outer
Definition: Surface.h:19
MagneticField
Definition: MagneticField.h:19
vtxMean
static GlobalPoint vtxMean(const GlobalPoint &p1, const GlobalError &e1, const GlobalPoint &p2, const GlobalError &e2)
Definition: GhostTrackVertexFinder.cc:121
GeomDetEnumerators::isEndcap
bool isEndcap(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:62
BarrelDetLayer::specificSurface
virtual const BoundCylinder & specificSurface() const final
Extension of the interface.
Definition: BarrelDetLayer.h:39
reco::helper::VirtualJetProducerHelper::intersection
double intersection(double r12)
Definition: VirtualJetProducerHelper.h:14
alongMomentum
Definition: PropagationDirection.h:4
GeomDetEnumerators::isTrackerStrip
bool isTrackerStrip(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:64
RectangularEtaPhiTrackingRegion::stringToUseMeasurementTracker
static UseMeasurementTracker stringToUseMeasurementTracker(const std::string &name)
Definition: RectangularEtaPhiTrackingRegion.cc:50
ForwardDetLayer::specificSurface
virtual const BoundDisk & specificSurface() const final
Definition: ForwardDetLayer.h:39
MeasurementTracker.h
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
margin
Double_t margin
Definition: trackSplitPlot.h:45