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 
36 
37 #include <iostream>
38 #include <algorithm>
39 #include <cctype>
40 
41 namespace {
42  template <class T>
43  T sqr(T t) {
44  return t * t;
45  }
46 } // namespace
47 
48 using namespace PixelRecoUtilities;
49 using namespace std;
50 
51 void RectangularEtaPhiTrackingRegion::checkTracks(reco::TrackCollection const& tracks, std::vector<bool>& mask) const {
52  const math::XYZPoint regOrigin(origin().x(), origin().y(), origin().z());
53  auto phi0 = phiDirection() + 0.5 * (phiMargin().right() - phiMargin().left());
54  auto dphi = 0.5 * (phiMargin().right() + phiMargin().left());
55 
56  assert(mask.size() == tracks.size());
57  int i = -1;
58  for (auto const& track : tracks) {
59  i++;
60  if (mask[i])
61  continue;
62 
63  if (track.pt() < ptMin()) {
64  continue;
65  }
66  if (!etaRange().inside(track.eta())) {
67  continue;
68  }
69  if (std::abs(proxim(track.phi(), phi0) - phi0) > dphi) {
70  continue;
71  }
72  if (std::abs(track.dxy(regOrigin)) > originRBound()) {
73  continue;
74  }
75  if (std::abs(track.dz(regOrigin)) > originZBound()) {
76  continue;
77  }
78  mask[i] = true;
79  }
80 }
81 
83  const std::string& name) {
85  std::transform(tmp.begin(), tmp.end(), tmp.begin(), ::tolower);
86  if (tmp == "never")
87  return UseMeasurementTracker::kNever;
88  if (tmp == "forsistrips")
89  return UseMeasurementTracker::kForSiStrips;
90  if (tmp == "always")
91  return UseMeasurementTracker::kAlways;
92  throw cms::Exception("Configuration") << "Got invalid string '" << name
93  << "', valid values are 'Never', 'ForSiStrips', 'Always' (case insensitive)";
94 }
95 
97  float eta = dir.eta();
98  theEtaRange = Range(eta - margin.left(), eta + margin.right());
99  theLambdaRange = Range(std::sinh(theEtaRange.min()), std::sinh(theEtaRange.max()));
100  theMeanLambda = std::sinh(theEtaRange.mean());
101 }
102 
103 std::unique_ptr<HitRZCompatibility> RectangularEtaPhiTrackingRegion::checkRZOld(const DetLayer* layer,
104  const Hit& outerHit,
105  const edm::EventSetup& iSetup,
106  const DetLayer* outerlayer) const {
107  bool isBarrel = (layer->location() == GeomDetEnumerators::barrel);
108  GlobalPoint ohit = outerHit->globalPosition();
109  float outerred_r = std::sqrt(sqr(ohit.x() - origin().x()) + sqr(ohit.y() - origin().y()));
110  PixelRecoPointRZ outer(outerred_r, ohit.z());
111 
112  float zMinOrigin = origin().z() - originZBound();
113  float zMaxOrigin = origin().z() + originZBound();
114 
115  if (!thePrecise) {
116  float vcotMin = (outer.z() > zMaxOrigin) ? (outer.z() - zMaxOrigin) / (outer.r() + originRBound())
117  : (outer.z() - zMaxOrigin) / (outer.r() - originRBound());
118  float vcotMax = (outer.z() > zMinOrigin) ? (outer.z() - zMinOrigin) / (outer.r() - originRBound())
119  : (outer.z() - zMinOrigin) / (outer.r() + originRBound());
120  float cotRight = std::max(vcotMin, theLambdaRange.min());
121  float cotLeft = std::min(vcotMax, theLambdaRange.max());
122  return std::make_unique<HitEtaCheck>(isBarrel, outer, cotLeft, cotRight);
123  }
124 
125  float outerZscatt = 0;
126  float innerScatt = 0;
127  //CHECK
128  if (theUseMS) {
130  float cotThetaOuter = theMeanLambda;
131  float sinThetaOuterInv = std::sqrt(1.f + sqr(cotThetaOuter));
132  outerZscatt = 3.f * oSigma(ptMin(), cotThetaOuter) * sinThetaOuterInv;
133  }
134 
135  PixelRecoLineRZ boundL(outer, theLambdaRange.max());
136  PixelRecoLineRZ boundR(outer, theLambdaRange.min());
137  float zMinLine = boundL.zAtR(0.) - outerZscatt;
138  float zMaxLine = boundR.zAtR(0.) + outerZscatt;
139  PixelRecoPointRZ vtxL(0., max(zMinLine, zMinOrigin));
140  PixelRecoPointRZ vtxR(0., min(zMaxLine, zMaxOrigin));
141  PixelRecoPointRZ vtxMean(0., (vtxL.z() + vtxR.z()) * 0.5f);
142  //CHECK
143 
144  if (theUseMS) {
146 
147  innerScatt =
148  3.f * (outerlayer ? iSigma(ptMin(), vtxMean, outer, outerlayer->seqNum()) : iSigma(ptMin(), vtxMean, outer));
149 
150  // innerScatt = 3.f *iSigma( ptMin(), vtxMean, outer);
151  }
152 
153  SimpleLineRZ leftLine(vtxL, outer);
154  SimpleLineRZ rightLine(vtxR, outer);
155 
156  HitRZConstraint rzConstraint(leftLine, rightLine);
157  auto cotTheta = std::abs(leftLine.cotLine() + rightLine.cotLine()) * 0.5f;
158 
159  // std::cout << "RectangularEtaPhiTrackingRegion " << outer.r()<<','<< outer.z() << " " << innerScatt << " " << cotTheta << " " << hitZErr << std::endl;
160 
161  if (isBarrel) {
162  auto sinThetaInv = std::sqrt(1.f + sqr(cotTheta));
163  auto corr = innerScatt * sinThetaInv;
164  return std::make_unique<HitZCheck>(rzConstraint, HitZCheck::Margin(corr, corr));
165  } else {
166  auto cosThetaInv = std::sqrt(1.f + sqr(1.f / cotTheta));
167  auto corr = innerScatt * cosThetaInv;
168  return std::make_unique<HitRCheck>(rzConstraint, HitRCheck::Margin(corr, corr));
169  }
170 }
171 
172 std::unique_ptr<MeasurementEstimator> RectangularEtaPhiTrackingRegion::estimator(const BarrelDetLayer* layer,
173  const edm::EventSetup& iSetup) const {
174  using Algo = HitZCheck;
175 
176  // det dimensions
177  float halfLength = 0.5f * layer->surface().bounds().length();
178  float halfThickness = 0.5f * layer->surface().bounds().thickness();
179  float z0 = layer->position().z();
180  float radius = layer->specificSurface().radius();
181 
182  // det ranges
183  Range detRWindow(radius - halfThickness, radius + halfThickness);
184  Range detZWindow(z0 - halfLength, z0 + halfLength);
185 
186  // z prediction, skip if not intersection
187  HitZCheck zPrediction(rzConstraint());
188  Range hitZWindow = zPrediction.range(detRWindow.min()).intersection(detZWindow);
189  if (hitZWindow.empty())
190  return nullptr;
191 
192  // phi prediction
193  OuterHitPhiPrediction phiPrediction = phiWindow(iSetup);
194 
195  //
196  // optional corrections for tolerance (mult.scatt, error, bending)
197  //
199  if (thePrecise) {
200  auto invR = 1.f / radius;
201  auto cotTheta = (hitZWindow.mean() - origin().z()) * invR;
202  auto sinThetaInv = std::sqrt(1.f + sqr(cotTheta));
203  MultipleScatteringParametrisation msSigma(layer, iSetup);
204  auto scatt = 3.f * msSigma(ptMin(), cotTheta);
205  auto bendR = longitudinalBendingCorrection(radius, ptMin(), iSetup);
206 
207  float hitErrRPhi = 0.;
208  float hitErrZ = 0.;
209  float corrPhi = (scatt + hitErrRPhi) * invR;
210  float corrZ = scatt * sinThetaInv + bendR * std::abs(cotTheta) + hitErrZ;
211 
212  phiPrediction.setTolerance(corrPhi);
213  zPrediction.setTolerance(HitZCheck::Margin(corrZ, corrZ));
214 
215  //
216  // hit ranges in det
217  //
218  OuterHitPhiPrediction::Range phi1 = phiPrediction(detRWindow.min());
219  OuterHitPhiPrediction::Range phi2 = phiPrediction(detRWindow.max());
220  phiRange = Range(std::min(phi1.min(), phi2.min()), std::max(phi1.max(), phi2.max()));
221  Range w1 = zPrediction.range(detRWindow.min());
222  Range w2 = zPrediction.range(detRWindow.max());
223  hitZWindow = Range(std::min(w1.min(), w2.min()), std::max(w1.max(), w2.max())).intersection(detZWindow);
224  } else {
225  phiRange = phiPrediction(detRWindow.mean());
226  }
227 
228  return std::make_unique<OuterEstimator<Algo>>(OuterDetCompatibility(layer, phiRange, detRWindow, hitZWindow),
229  OuterHitCompatibility<Algo>(phiPrediction, zPrediction),
230  iSetup);
231 }
232 
233 std::unique_ptr<MeasurementEstimator> RectangularEtaPhiTrackingRegion::estimator(const ForwardDetLayer* layer,
234  const edm::EventSetup& iSetup) const {
235  using Algo = HitRCheck;
236  // det dimensions, ranges
237  float halfThickness = 0.5f * layer->surface().bounds().thickness();
238  float zLayer = layer->position().z();
239  Range detZWindow(zLayer - halfThickness, zLayer + halfThickness);
240  Range detRWindow(layer->specificSurface().innerRadius(), layer->specificSurface().outerRadius());
241 
242  // r prediction, skip if not intersection
243  HitRCheck rPrediction(rzConstraint());
244  Range hitRWindow = rPrediction.range(zLayer).intersection(detRWindow);
245  if (hitRWindow.empty())
246  return nullptr;
247 
248  // phi prediction
249  OuterHitPhiPrediction phiPrediction = phiWindow(iSetup);
250  OuterHitPhiPrediction::Range phiRange = phiPrediction(detRWindow.max());
251 
252  //
253  // optional corrections for tolerance (mult.scatt, error, bending)
254  //
255  if (thePrecise) {
256  float cotTheta = (detZWindow.mean() - origin().z()) / hitRWindow.mean();
257  float cosThetaInv = std::sqrt(1 + sqr(cotTheta)) / cotTheta;
258  MultipleScatteringParametrisation msSigma(layer, iSetup);
259  float scatt = 3.f * msSigma(ptMin(), cotTheta);
260  float bendR = longitudinalBendingCorrection(hitRWindow.max(), ptMin(), iSetup);
261  float hitErrRPhi = 0.;
262  float hitErrR = 0.;
263  float corrPhi = (scatt + hitErrRPhi) / detRWindow.min();
264  float corrR = scatt * std::abs(cosThetaInv) + bendR + hitErrR;
265 
266  phiPrediction.setTolerance(corrPhi);
267  rPrediction.setTolerance(HitRCheck::Margin(corrR, corrR));
268 
269  //
270  // hit ranges in det
271  //
272  Range w1, w2;
273  if (zLayer > 0) {
274  w1 = rPrediction.range(detZWindow.min());
275  w2 = rPrediction.range(detZWindow.max());
276  } else {
277  w1 = rPrediction.range(detZWindow.max());
278  w2 = rPrediction.range(detZWindow.min());
279  }
280  hitRWindow = Range(w1.min(), w2.max()).intersection(detRWindow);
281  }
282 
283  return std::make_unique<OuterEstimator<Algo>>(OuterDetCompatibility(layer, phiRange, hitRWindow, detZWindow),
284  OuterHitCompatibility<Algo>(phiPrediction, rPrediction),
285  iSetup);
286 }
287 
289  auto phi0 = phiDirection();
290  return OuterHitPhiPrediction(
291  OuterHitPhiPrediction::Range(phi0 - thePhiMargin.left(), phi0 + thePhiMargin.right()),
292  OuterHitPhiPrediction::Range(curvature(invPtRange().min(), iSetup), curvature(invPtRange().max(), iSetup)),
293  originRBound());
294 }
295 
297  HitRZConstraint::Point pLeft, pRight;
298  float zMin = origin().z() - originZBound();
299  float zMax = origin().z() + originZBound();
300  float rMin = -originRBound();
301  float rMax = originRBound();
302  if (theEtaRange.max() > 0) {
303  pRight = HitRZConstraint::Point(rMin, zMax);
304  } else {
305  pRight = HitRZConstraint::Point(rMax, zMax);
306  }
307  if (theEtaRange.min() > 0.) {
308  pLeft = HitRZConstraint::Point(rMax, zMin);
309  } else {
310  pLeft = HitRZConstraint::Point(rMin, zMin);
311  }
312  return HitRZConstraint(pLeft, theLambdaRange.min(), pRight, theLambdaRange.max());
313 }
314 
318 
319  //ESTIMATOR
320 
321  const DetLayer* detLayer = layer.detLayer();
322 
323  bool measurementMethod = false;
324  if (theMeasurementTrackerUsage == UseMeasurementTracker::kAlways)
325  measurementMethod = true;
326  else if (theMeasurementTrackerUsage == UseMeasurementTracker::kForSiStrips &&
328  measurementMethod = true;
329 
330  if (measurementMethod) {
332  es.get<IdealMagneticFieldRecord>().get(field);
333  const MagneticField* magField = field.product();
334 
335  const GlobalPoint vtx = origin();
336  GlobalVector dir = direction();
337 
338  std::unique_ptr<MeasurementEstimator> est;
341  (!theUseEtaPhi && detLayer->location() == GeomDetEnumerators::barrel)) {
342  const BarrelDetLayer& bl = dynamic_cast<const BarrelDetLayer&>(*detLayer);
343  est = estimator(&bl, es);
344  } else if ((GeomDetEnumerators::isTrackerPixel(detLayer->subDetector()) &&
346  (!theUseEtaPhi && detLayer->location() == GeomDetEnumerators::endcap)) {
347  const ForwardDetLayer& fl = dynamic_cast<const ForwardDetLayer&>(*detLayer);
348  est = estimator(&fl, es);
349  }
350 
351  EtaPhiMeasurementEstimator etaPhiEstimator((theEtaRange.second - theEtaRange.first) * 0.5f,
352  (thePhiMargin.left() + thePhiMargin.right()) * 0.5f);
353  MeasurementEstimator* findDetAndHits = &etaPhiEstimator;
354  if (est) {
355  LogDebug("RectangularEtaPhiTrackingRegion") << "use pixel specific estimator.";
356  findDetAndHits = est.get();
357  } else {
358  LogDebug("RectangularEtaPhiTrackingRegion") << "use generic etat phi estimator.";
359  }
360 
361  // TSOS
362  float phi = phiDirection();
363  // std::cout << "dir " << direction().x()/direction().perp() <<','<< direction().y()/direction().perp() << " " << sin(phi) <<','<<cos(phi)<< std::endl;
364  Surface::RotationType rot(sin(phi), -cos(phi), 0, 0, 0, -1, cos(phi), sin(phi), 0);
365 
366  Plane::PlanePointer surface = Plane::build(GlobalPoint(0., 0., 0.), rot);
367  //TrajectoryStateOnSurface tsos(lpar, *surface, magField);
368 
370  TrajectoryStateOnSurface tsos(fts, *surface);
371 
372  // propagator
373  StraightLinePropagator prop(magField, alongMomentum);
374 
375  LayerMeasurements lm(theMeasurementTracker->measurementTracker(), *theMeasurementTracker);
376 
377  auto hits = lm.recHits(*detLayer, tsos, prop, *findDetAndHits);
378 
379  result.reserve(hits.size());
380  for (auto h : hits) {
381  cache.emplace_back(h);
382  result.emplace_back(h);
383  }
384 
385  LogDebug("RectangularEtaPhiTrackingRegion")
386  << " found " << hits.size() << " minus one measurements on layer: " << detLayer->subDetector();
387  // std::cout << "RectangularEtaPhiTrackingRegion" <<" found "<< meas.size()<<" minus one measurements on layer: "<<detLayer->subDetector() << std::endl;
388 
389  } else {
390  //
391  // temporary solution (actually heavily used for Pixels....)
392  //
393  if (detLayer->location() == GeomDetEnumerators::barrel) {
394  const BarrelDetLayer& bl = dynamic_cast<const BarrelDetLayer&>(*detLayer);
395  auto est = estimator(&bl, es);
396  if (!est)
397  return result;
398  using Algo = HitZCheck;
399  auto const& hitComp = (reinterpret_cast<OuterEstimator<Algo> const&>(*est)).hitCompatibility();
400  auto layerHits = layer.hits();
401  result.reserve(layerHits.size());
402  for (auto&& ih : layerHits) {
403  if (hitComp(*ih))
404  result.emplace_back(ih);
405  }
406 
407  } else {
408  const ForwardDetLayer& fl = dynamic_cast<const ForwardDetLayer&>(*detLayer);
409  auto est = estimator(&fl, es);
410  if (!est)
411  return result;
412  using Algo = HitRCheck;
413  auto const& hitComp = (reinterpret_cast<OuterEstimator<Algo> const&>(*est)).hitCompatibility();
414  auto layerHits = layer.hits();
415  result.reserve(layerHits.size());
416  for (auto&& ih : layerHits) {
417  if (hitComp(*ih))
418  result.emplace_back(ih);
419  }
420  }
421  }
422 
423  // std::cout << "RectangularEtaPhiTrackingRegion hits " << result.size() << std::endl;
424 
425  return result;
426 }
427 
429  std::ostringstream str;
430  str << TrackingRegionBase::print() << " eta: " << theEtaRange << " phi:" << thePhiMargin << "precise: " << thePrecise;
431  return str.str();
432 }
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: HitCollection.h:12
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
mps_fire.i
i
Definition: mps_fire.py:428
MeasurementTrackerEvent.h
FreeTrajectoryState.h
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11713
GlobalTrajectoryParameters.h
photonAnalyzer_cfi.zMax
zMax
Definition: photonAnalyzer_cfi.py:95
TrackerGeometry.h
generateTowerEtThresholdLUT.etaRange
etaRange
Definition: generateTowerEtThresholdLUT.py:55
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
min
T min(T a, T b)
Definition: MathUtil.h:58
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:155
sqr
int sqr(const T &t)
Definition: pfalgo_common_ref.h:9
cms::cuda::assert
assert(be >=bs)
proxim
constexpr T proxim(T b, T a)
Definition: normalizedPhi.h:14
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:172
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:315
PixelRecoRange::empty
bool empty() const
Definition: PixelRecoRange.h:29
PixelRecoRange::min
T min() const
Definition: PixelRecoRange.h:25
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
TrackingRegion::print
virtual std::string print() const
Definition: TrackingRegion.h:126
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:428
OuterEstimator
Definition: OuterEstimator.h:23
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
RectangularEtaPhiTrackingRegion::initEtaRange
void initEtaRange(const GlobalVector &dir, const Margin &margin)
Definition: RectangularEtaPhiTrackingRegion.cc:96
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:45
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
EtaPhiMeasurementEstimator.h
TrackingRegion::Hits
SeedingLayerSetsHits::Hits Hits
Definition: TrackingRegion.h:47
alignCSCRings.corr
dictionary corr
Definition: alignCSCRings.py:124
LayerMeasurements.h
PVValHelper::eta
Definition: PVValidationHelpers.h:70
PixelRecoRange::max
T max() const
Definition: PixelRecoRange.h:26
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
IdealMagneticFieldRecord.h
str
#define str(s)
Definition: TestProcessor.cc:52
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 >
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
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
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 >
StraightLinePropagator
Definition: StraightLinePropagator.h:16
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:159
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
normalizedPhi.h
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:58
RectangularEtaPhiTrackingRegion::phiWindow
OuterHitPhiPrediction phiWindow(const edm::EventSetup &iSetup) const
Definition: RectangularEtaPhiTrackingRegion.cc:288
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
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
std
Definition: JetResolutionObject.h:76
ForwardDetLayer
Definition: ForwardDetLayer.h:22
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
extraflags_cff.vtx
vtx
Definition: extraflags_cff.py:18
RectangularEtaPhiTrackingRegion::checkRZOld
std::unique_ptr< HitRZCompatibility > checkRZOld(const DetLayer *layer, const Hit &outerHit, const edm::EventSetup &iSetup, const DetLayer *outerlayer) const
Definition: RectangularEtaPhiTrackingRegion.cc:103
T
long double T
Definition: Basic3DVectorLD.h:48
ForwardDetLayer.h
Exception
Definition: hltDiff.cc:245
RectangularEtaPhiTrackingRegion::checkTracks
void checkTracks(reco::TrackCollection const &tracks, std::vector< bool > &mask) const override
Definition: RectangularEtaPhiTrackingRegion.cc:51
HitRZConstraint::Point
SimpleLineRZ::Point Point
Definition: HitRZConstraint.h:11
RectangularEtaPhiTrackingRegion::rzConstraint
HitRZConstraint rzConstraint() const
Definition: RectangularEtaPhiTrackingRegion.cc:296
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:311
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
SurfaceOrientation::outer
Definition: Surface.h:19
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
MagneticField
Definition: MagneticField.h:19
vtxMean
static GlobalPoint vtxMean(const GlobalPoint &p1, const GlobalError &e1, const GlobalPoint &p2, const GlobalError &e2)
Definition: GhostTrackVertexFinder.cc:123
GeomDetEnumerators::isEndcap
bool isEndcap(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:62
reco::helper::VirtualJetProducerHelper::intersection
double intersection(double r12)
Definition: VirtualJetProducerHelper.h:14
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.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:82
MeasurementTracker.h
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
margin
Double_t margin
Definition: trackSplitPlot.h:45