9 #include "CLHEP/Vector/ThreeVector.h"
10 #include "CLHEP/Vector/LorentzVector.h"
11 #include "CLHEP/Matrix/Vector.h"
23 bool theIsValid=
false;
28 cout <<
"====>>>> SignedImpactParameter3D::apply : TSOS not valid = " << TSOS.
isValid() << endl ;
29 return pair<bool,Measurement1D>(theIsValid,
Measurement1D(0.,0.)) ;
45 theValue = D.
mag()*(theDistanceAlongJetAxis/
abs(theDistanceAlongJetAxis));
58 deriv_v[0] = - DD.
x();
59 deriv_v[1] = - DD.
y();
60 deriv_v[2] = - DD.
z();
65 deriv[3] = - (TT1.
dot(Xi)*DD.
x())/T1.
mag();
66 deriv[4] = - (TT1.
dot(Xi)*DD.
y())/T1.
mag();
67 deriv[5] = - (TT1.
dot(Xi)*DD.
z())/T1.
mag();
70 double E2 = ROOT::Math::Similarity(deriv_v , vertex.
covariance());
73 theError =
sqrt(E1+E2);
77 return pair<bool,Measurement1D>(theIsValid,
A);
80 return pair<bool,Measurement1D>(theIsValid,
Measurement1D(0.,0.));
113 double theDistanceAlongJetAxis(0.);
114 double theDistanceToJetAxis(0.);
115 double theLDist_err(0.);
119 cout <<
"====>>>> SignedImpactParameter3D::distanceWithJetAxis : TSOS not valid = " << TSOS.
isValid() << endl ;
120 return pair<double,Measurement1D> (theDistanceAlongJetAxis,
Measurement1D(theDistanceToJetAxis,theLDist_err));
136 bool isValid= stateAtOrigin.
isValid();
154 theDistanceToJetAxis = (jet.
distance(track)).
mag();
155 if (weight<1) theDistanceToJetAxis= -theDistanceToJetAxis;
161 theDistanceAlongJetAxis = P.
dot(V-pos)/Q.
dot(
dir);
173 CLHEP::HepVector Hh(3);
195 return pair<double,Measurement1D> (theDistanceAlongJetAxis,DTJA);
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
double y() const
y coordinate
Base class for all types of Jets.
Global3DPoint GlobalPoint
const CartesianTrajectoryError cartesianError() const
static TrajectoryStateOnSurface closestApproachToJet(const FreeTrajectoryState &, const reco::Vertex &, const GlobalVector &, const MagneticField *)
GlobalPoint globalPosition() const
PreciseFloatType< T, U >::Type dot(const Vector3DBase< U, FrameTag > &v) const
const MagneticField * field() const
double covariance(int i, int j) const
(i, j)-th element of error matrix, i, j = 0, ... 2
const Point & position() const
position
ROOT::Math::SVector< double, 6 > AlgebraicVector6
GlobalVector distance(const Line &aLine) const
PositionType position() const
FreeTrajectoryState const * freeTrajectoryState(bool withErrors=true) const
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
ROOT::Math::SVector< double, 3 > AlgebraicVector3
Abs< T >::type abs(const T &t)
double z() const
y coordinate
const AlgebraicSymMatrix66 & matrix() const
Vector3DBase unit() const
double x() const
x coordinate
static GlobalVector distance(const TrajectoryStateOnSurface &, const reco::Vertex &, const GlobalVector &)
GlobalVector globalMomentum() const
static std::pair< double, Measurement1D > distanceWithJetAxis(const reco::TransientTrack &transientTrack, const GlobalVector &direction, const reco::Vertex &vertex)
TrajectoryStateOnSurface impactPointState() const
DecomposeProduct< arg, typename Div::arg > D
std::pair< bool, Measurement1D > apply(const reco::TransientTrack &, const GlobalVector &direction, const reco::Vertex &vertex) const