Implements PixelFitterBase.
Definition at line 44 of file PixelFitterByConformalMappingAndLine.cc.
References TransientTrackingRecHitBuilder::build(), PixelTrackBuilder::build(), ConformalMappingFit::charge(), RecoTauCleanerPlugins::charge, ConformalMappingFit::chi2(), RZLine::chi2(), HLT_FULL_cff::chi2, RZLine::cotTheta(), RZLine::covii(), RZLine::covss(), ConformalMappingFit::curvature(), GlobalErrorBase< T, ErrorWeightType >::czz(), ConformalMappingFit::directionPhi(), Measurement1D::error(), relativeConstraints::error, ConformalMappingFit::fixImpactParmaeter(), mps_fire::i, ConformalMappingFit::impactParameter(), RZLine::intercept(), PixelRecoUtilities::inversePt(), PixelPluginsPhase0_cfi::isBarrel, nhits, TrackingRegion::origin(), PV3DBase< T, PVType, FrameType >::perp2(), phi, point, DiDispStaMuonMonitor_cfi::pt, alignCSCRings::r, GlobalErrorBase< T, ErrorWeightType >::rerr(), sqr(), mathSSE::sqrt(), theField, theFixImpactParameter, theTTRHBuilder, theUseFixImpactParameter, HLT_FULL_cff::tip, Measurement1D::value(), PV3DBase< T, PVType, FrameType >::x(), xy(), PV3DBase< T, PVType, FrameType >::y(), z, PV3DBase< T, PVType, FrameType >::z(), and ComparisonHelper::zip().
46 int nhits = hits.size();
48 vector<GlobalPoint> points;
49 vector<GlobalError> errors;
52 for (vector<const TrackingRecHit *>::const_iterator ih = hits.begin(); ih != hits.end(); ih++) {
54 points.push_back(recHit->globalPosition());
55 errors.push_back(recHit->globalPositionError());
56 isBarrel.push_back(recHit->detUnit()->type().isBarrel());
70 vector<float> errRPhi2;
73 xy.push_back(PointXY(point.
x() - region.
origin().
x(), point.
y() - region.
origin().
y()));
74 float phiErr2 = errors[
i].phierr(point);
75 errRPhi2.push_back(point.
perp2() * phiErr2);
81 parabola.fixImpactParmaeter(0.);
85 float valPt = (invPt > 1.e-4) ? 1. / invPt : 1.e4;
94 vector<float>
r(nhits),
z(nhits), errZ(nhits);
95 float simpleCot = (points.back().z() - points.front().z()) / (points.back().perp() - points.front().perp());
102 errZ[
i] = (isBarrel[
i]) ?
sqrt(error.
czz()) :
sqrt(error.
rerr(point)) * simpleCot;
115 float chi2 = parabola.chi2() + rzLine.chi2();
116 int charge = parabola.charge();
119 return std::unique_ptr<reco::Track>(
GlobalPoint const & origin() const
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
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
T inversePt(T curvature, const MagneticField &field)
std::shared_ptr< TrackingRecHit const > RecHitPointer
Basic2DVector< T > xy() const
T rerr(const GlobalPoint &aPoint) const
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point