10 #include "CLHEP/Vector/ThreeVector.h"
11 #include "CLHEP/Vector/LorentzVector.h"
12 #include "CLHEP/Matrix/Vector.h"
45 double ps = DD0.dot(JetDir);
46 theValue = DD0.mag()*(ps/
abs(ps));
54 deriv_v[0] = - dd0.
x();
55 deriv_v[1] = - dd0.
y();
56 deriv_v[2] = - dd0.
z();
66 double E1 = ROOT::Math::Similarity(deriv,TSOS.cartesianError().matrix());
67 double E2 = ROOT::Math::Similarity(deriv_v,vertex.
covariance());
69 theError =
sqrt(E1+E2);
70 LogDebug(
"BTagTools") <<
"Tk error : " << E1 <<
" , Vtx error : " << E2 <<
" tot : " << theError;
77 return pair<bool,Measurement1D>(
x,
A);
88 if ( !TSOS.isValid() ) {
89 LogDebug(
"BTagTools") <<
"====>>>> SignedTransverseImpactParameter::zImpactParameter : TSOS not valid" ;
90 return pair<bool,Measurement1D> (
false,
Measurement1D(0.0,0.0)) ;
96 if ( !statePCA.isValid() ) {
97 LogDebug(
"BTagTools") <<
"====>>>> SignedTransverseImpactParameter::zImpactParameter : statePCA not valid" ;
98 return pair<bool,Measurement1D> (
false,
Measurement1D(0.0,0.0)) ;
106 double sign = PVPCA.dot(JetDir);
110 double deltaZ = fabs(PCA.
z()-PV.z()) * sign ;
116 double errTrackZ2 = statePCA.cartesianError().matrix()(2,2) ;
117 double errZ =
sqrt ( errPvZ2 + errTrackZ2 ) ;
std::pair< bool, Measurement1D > apply(const reco::TransientTrack &, const GlobalVector &, const reco::Vertex &) const
double y() const
y coordinate
const MagneticField * field() const
double covariance(int i, int j) const
(i, j)-th element of error matrix, i, j = 0, ... 2
std::pair< bool, Measurement1D > zImpactParameter(const reco::TransientTrack &, const GlobalVector &, const reco::Vertex &) const
ROOT::Math::SVector< double, 6 > AlgebraicVector6
FreeTrajectoryState * freeState(bool withErrors=true) const
ROOT::Math::SVector< double, 3 > AlgebraicVector3
double z() const
y coordinate
Vector3DBase unit() const
double x() const
x coordinate
TrajectoryStateOnSurface impactPointState() const