23 template <
class T>
T inline sqr(
T t) {
return t*
t;}
37 str <<
"\t pt: " << pt.
value() <<
"+/-"<< pt.
error()
38 <<
"\t phi: " << phi.
value() <<
"+/-"<< phi.
error()
39 <<
"\t cot: " << cotTheta.
value() <<
"+/-"<< cotTheta.
error()
40 <<
"\t tip: " << tip.
value() <<
"+/-"<< tip.
error()
41 <<
"\t zip: " << zip.
value() <<
"+/-"<< zip.
error()
56 float cosTheta =
cos(theta);
57 float sinTheta =
sin(theta);
61 float pt_v = track.
pt();
63 float covIPtTheta = track.
covariance(TrackBase::i_qoverp, TrackBase::i_lambda);
64 float errInvPt2 = ( errInvP2
65 +
sqr(cosTheta/pt_v)*errLambda2
66 + 2*(cosTheta/pt_v)*covIPtTheta
74 return print(pt, phi, cotTheta, tip, zip, track.
chi2(), track.
charge());
86 float errPhi2 = curv.
matrix()(3,3);
87 float errLambda2 = curv.
matrix()(2,2);
88 float errInvP2 = curv.
matrix()(1,1);
89 float covIPtTheta = curv.
matrix()(1,2);
90 float cosTheta =
cos(theta_v);
91 float sinTheta =
sin(theta_v);
92 float errInvPt2 = ( errInvP2
93 +
sqr(cosTheta/pt_v)*errLambda2
94 + 2*(cosTheta/pt_v)*covIPtTheta) /
sqr(sinTheta);
95 float errCotTheta =
sqrt(errLambda2)/
sqr(sinTheta) ;
109 return print(pt, phi, cotTheta, tip, zip, 0., state.
charge());
118 LogTrace(
"") <<
" *** PixelTrackBuilder::checkState: ";
120 LogTrace(
"") <<
"INPUT, TSOS:"<<
'\n' << state;
129 tscpBuilder(*(state.freeState()), origin);
131 LogTrace(
"") <<
"CHECK-2 FTS: " << fs;
146 const std::vector<const TrackingRecHit* >&
hits,
151 LogDebug(
"PixelTrackBuilder::build");
152 LogTrace(
"") <<
"Reconstructed triplet kinematics: " <<
print(pt,phi,cotTheta,tip,zip,chi2,charge);
155 double cosTheta = cotTheta.
value()*sinTheta;
156 int tipSign = tip.
value() > 0 ? 1 : -1;
160 m(0,0) =
sqr(sinTheta) * (
180 sp*tipSign, -cp*tipSign, 0,
186 Plane impPointPlane(origin, rot);
193 checkState(impactPointState,mf);
195 LogTrace(
"") <<
"constructed TSOS:\n" <<
print(impactPointState);
197 int ndof = 2*hits.size()-5;
GlobalPoint globalPosition() const
LocalPoint localPosition() const
double d0Error() const
error on d0
Local3DVector LocalVector
Point3DBase< Scalar, LocalTag > LocalPoint
const FreeTrajectoryState & theState() const
double theta() const
polar angle
Sin< T >::type sin(const T &t)
Geom::Phi< T > phi() const
Geom::Theta< T > theta() const
float __attribute__((vector_size(8))) cms_float32x2_t
double phi() const
azimuthal angle of momentum vector
TrackCharge charge() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
pointer clone() const override
S & print(S &os, JobReport::InputFile const &f)
Geom::Theta< T > theta() const
const SurfaceType & surface() const
double chi2() const
chi-squared of the fit
const LocalTrajectoryError & localError() const
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
CovarianceMatrix covariance() const
return track covariance matrix
double pt() const
track transverse momentum
Cos< T >::type cos(const T &t)
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 phiError() const
error on phi
const AlgebraicSymMatrix55 & matrix() const
double qoverpError() const
error on signed transverse curvature
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
double dzError() const
error on dz
const SurfaceType & surface() const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
XYZPointD XYZPoint
point in space with cartesian internal representation
void addReference() const
double lambdaError() const
error on lambda
GlobalVector globalMomentum() const
const AlgebraicSymMatrix55 & matrix() const
const RotationType & rotation() const
LocalVector localMomentum() const
int charge() const
track electric charge
const CurvilinearTrajectoryError & curvilinearError() const
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...