22 phiErrorScale{theConfig.getParameter<
double>(
"phiErrorScale")},
24 tipErrorScale{theConfig.getParameter<
double>(
"tipErrorScale")},
25 zipErrorScale{theConfig.getParameter<
double>(
"zipErrorScale")} {}
39 const std::vector<const TrackingRecHit*>&
hits,
46 int charge = (invPt > 0.) ? 1 : -1;
59 double valPt = (fabs(invPt) > 1.e-4) ? 1. / fabs(invPt) : 1.e4;
212 return p0 +
p1 * fabs(invPt);
330 return p0 +
p1 * fabs(invPt);
453 return p0 +
p1 * fabs(invPt);
460 double rho3 = curv * curv * curv;
461 double r1 = pinner.
perp();
462 double phi1 =
r1 * curv / 2 + pinner.
perp2() *
r1 * rho3 / 48.;
463 double r2 = pouter.
perp();
464 double phi2 =
r2 * curv / 2 + pouter.
perp2() *
r2 * rho3 / 48.;
465 double z1 = pinner.
z();
466 double z2 = pouter.
z();
468 return z1 - phi1 / (phi1 - phi2) * (z1 -
z2);
584 return p0 +
p1 * fabs(invPt);
598 double dphi =
deltaPhi(phiL1, phi0);
599 if (fabs(dphi) < 0.01) {
602 double q = dphi / 2. /
p3;
603 double p =
p1 / 3. /
p3;
604 double D =
q *
q +
p *
p *
p;
725 return p1 + p0 * fabs(invPt);
729 double dphi_min = fabs(
deltaPhi(phi0, phiL1));
732 while (pt_cur < 10000.) {
734 double dphi = fabs(
deltaPhi(phi_exp, phiL1));
735 if (dphi < dphi_min) {
741 else if (pt_cur < 20.)
743 else if (pt_cur < 100.)
867 return p0 +
p1 *
sqr(invPt);
1003 while (phi1 >= 2 *
M_PI)
1005 while (phi2 >= 2 *
M_PI)
1011 double dPhi = phi2 - phi1;
double valInversePt(double phi0, double phiL1, double eta) const
T getParameter(std::string const &) const
const Point & center() const
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
void setPxConstraint(const SeedingHitSet &hits)
double errInversePt(double invPt, double eta) const
static double getBendingError(double invPt, double eta)
T curvature(T InversePt, const MagneticField &field)
reco::Track * build(const Measurement1D &pt, const Measurement1D &phi, const Measurement1D &cotTheta, const Measurement1D &tip, const Measurement1D &zip, float chi2, int charge, const std::vector< const TrackingRecHit *> &hits, const MagneticField *mf, const GlobalPoint &reference=GlobalPoint(0, 0, 0)) const
double errTip(double invPt, double eta) const
static void param(double eta, double &p1, double &p2, double &p3)
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
double valTip(const Circle &c, double curvature) const
virtual reco::Track * run(const MagneticField &field, const std::vector< const TrackingRecHit *> &hits, const TrackingRegion ®ion) const
static double getBending(double invPt, double eta, int charge)
double errCotTheta(double invPt, double eta) const
const double phiErrorScale
double deltaPhi(double phi1, double phi2) const
double valZip(double curvature, const GlobalPoint &p0, const GlobalPoint &p1) const
const double zipErrorScale
edm::ParameterSet theConfig
DecomposeProduct< arg, typename Div::arg > D
const double cotThetaErrorScale
double errPhi(double invPt, double eta) const
double errZip(double invPt, double eta) const
double findPt(double phi0, double phiL1, double eta, int charge) const
void setL1Constraint(const L1MuGMTCand &muon)
const double invPtErrorScale
const double tipErrorScale
L1MuonPixelTrackFitter(const edm::ParameterSet &cfg)
double valPhi(const Circle &c, int charge) const
double valCotTheta(const PixelRecoLineRZ &line) const