CMS 3D CMS Logo

GhostTrackState.h
Go to the documentation of this file.
1 #ifndef RecoBTag_GhostTrackState_h
2 #define RecoBTag_GhostTrackState_h
3 
4 #include <utility>
5 
9 
11 
13 
14 class VertexState;
15 
16 namespace reco {
17 
18  class TransientTrack;
19  class GhostTrackPrediction;
20 
23 
24  public:
27 
29  GhostTrackState(const GlobalPoint &pos, const CovarianceMatrix &cov);
32 
33  const TransientTrack &track() const;
34  const TrajectoryStateOnSurface &tsos() const;
35 
36  GlobalPoint globalPosition() const { return data().globalPosition(); }
37  GlobalError cartesianError() const { return data().cartesianError(); }
38  CovarianceMatrix cartesianCovariance() const { return data().cartesianCovariance(); }
39 
40  double lambda() const { return data().lambda(); }
41  double lambdaError(const GhostTrackPrediction &pred, const GlobalError &pvError = GlobalError()) const;
42  bool isValid() const { return Base::isValid() && data().isValid(); }
43  bool isTrack() const;
44  bool isVertex() const;
45 
46  void reset() { unsharedData().reset(); }
47  bool linearize(const GhostTrackPrediction &pred, bool initial = false, double lambda = 0.) {
48  return unsharedData().linearize(pred, initial, lambda);
49  }
50  bool linearize(const GhostTrackPrediction &pred, double lambda) { return unsharedData().linearize(pred, lambda); }
51 
52  double flightDistance(const GlobalPoint &point, const GlobalVector &dir) const;
53  double axisDistance(const GlobalPoint &point, const GlobalVector &dir) const;
54  double axisDistance(const GhostTrackPrediction &pred) const;
55 
56  Vertex vertexStateOnGhostTrack(const GhostTrackPrediction &pred, bool withMeasurementError = true) const {
57  return data().vertexStateOnGhostTrack(pred, withMeasurementError);
58  }
59  Vertex vertexStateOnMeasurement(const GhostTrackPrediction &pred, bool withGhostTrackError = true) const {
60  return data().vertexStateOnMeasurement(pred, withGhostTrackError);
61  }
62 
63  double weight() const { return data().weight(); }
64  void setWeight(double weight) { unsharedData().setWeight(weight); }
65  };
66 
67 } // namespace reco
68 
69 #endif // RecoBTag_GhostTrackState_h
double flightDistance(const GlobalPoint &point, const GlobalVector &dir) const
std::pair< GlobalPoint, GlobalError > Vertex
double weight() const
GlobalPoint globalPosition() const
GlobalErrorBase< double, ErrorMatrixTag > GlobalError
Definition: GlobalError.h:13
Definition: weight.py:1
void setWeight(double weight)
GlobalError cartesianError() const
const TransientTrack & track() const
double axisDistance(const GlobalPoint &point, const GlobalVector &dir) const
double lambda() const
double lambdaError(const GhostTrackPrediction &pred, const GlobalError &pvError=GlobalError()) const
Vertex vertexStateOnGhostTrack(const GhostTrackPrediction &pred, bool withMeasurementError=true) const
CovarianceMatrix cartesianCovariance() const
bool isValid() const
Definition: ProxyBase11.h:69
BasicGhostTrackState::CovarianceMatrix CovarianceMatrix
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalVector
vector in glovbal coordinate system
Definition: Vector3D.h:28
T & unsharedData()
Definition: ProxyBase11.h:56
BasicGhostTrackState::Proxy Base
BasicGhostTrackState::Vertex Vertex
const T & data() const
Definition: ProxyBase11.h:51
bool linearize(const GhostTrackPrediction &pred, bool initial=false, double lambda=0.)
bool linearize(const GhostTrackPrediction &pred, double lambda)
math::Error< 3 >::type CovarianceMatrix
const TrajectoryStateOnSurface & tsos() const
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalPoint
point in global coordinate system
Definition: Point3D.h:18
fixed size matrix
Vertex vertexStateOnMeasurement(const GhostTrackPrediction &pred, bool withGhostTrackError=true) const
GhostTrackState(const TransientTrack &track)
*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
Definition: invegas.h:5