CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
VertexTrack.h
Go to the documentation of this file.
1 #ifndef VertexTrack_H
2 #define VertexTrack_H
3 
8 
9 
10 #define SMATRIX_USE_CONSTEXPR
11 #include "Math/SMatrix.h"
12 
18 template <unsigned int N>
19 class VertexTrack GCC11_FINAL : public ReferenceCounted {
20 
21 public:
22 
23  typedef ROOT::Math::SVector<double,N> AlgebraicVectorN;
24  typedef ROOT::Math::SMatrix<double,N-2,N-2,ROOT::Math::MatRepStd<double,N-2,N-2> > AlgebraicMatrixMM;
25  typedef ROOT::Math::SMatrix<double,3,N-2,ROOT::Math::MatRepStd<double,3,N-2> > AlgebraicMatrix3M;
26  typedef ROOT::Math::SMatrix<double,N+1,N+1,ROOT::Math::MatRepSym<double,N+1> > AlgebraicSymMatrixOO;
27 
28  //typedef ReferenceCountingPointer<VertexTrack<N> > RefCountedVertexTrack;
31 
35  VertexState v,
36  float weight);
37 
42  VertexState v,
43  float weight, const RefCountedRefittedTrackState & refittedState,
44  float smoothedChi2);
45 
50  VertexState v,
51  float weight, const RefCountedRefittedTrackState & refittedState,
52  float smoothedChi2, const AlgebraicSymMatrixOO & fullCov);
53 
56  RefCountedLinearizedTrackState linearizedTrack() const { return theLinTrack; }
57  VertexState vertexState() const { return theVertexState; }
58  float weight() const { return theWeight; }
59  bool refittedStateAvailable() const { return stAvailable; }
60  bool tkToVertexCovarianceAvailable() const { return covAvailable; }
61  bool fullCovarianceAvailable() const { return covAvailable; }
62 
69  float smoothedChi2() const { return smoothedChi2_; }
70 
71 
75  if (!refittedStateAvailable()) {
76  throw VertexException("VertexTrack::refitted state not available");
77  }
78  return theRefittedState;
79  }
80 
81 // /** Track to vertex covariance
82 // */
83 // AlgebraicMatrix3M tkToVtxCovariance() const;
84 
88  if (!tkToVertexCovarianceAvailable()) {
89  throw VertexException("VertexTrack::track to vertex covariance not available");
90  }
91  return fullCovariance_;
92  }
93 
97  bool operator==(const VertexTrack<N> & data) const
98  {
99  return ((*data.linearizedTrack()) == (*linearizedTrack()));
100  }
101 
104  AlgebraicVectorN refittedParamFromEquation() const;
105 
106 
107 private:
108 
110  VertexState theVertexState;
111  float theWeight;
116  ROOT::Math::SMatrix<double,6,6,ROOT::Math::MatRepSym<double,6> > b6;
117  ROOT::Math::SMatrix<double,7,7,ROOT::Math::MatRepSym<double,7> > b7;
119 };
120 
121 template <unsigned int N>
123  public:
126  bool operator()( const RefCountedVertexTrack & t ) const { return t->operator==(*track_);}
127  private:
129 };
130 
131 #endif
RefCountedRefittedTrackState theRefittedState
Definition: VertexTrack.h:114
ReferenceCountingPointer< LinearizedTrackState< N > > RefCountedLinearizedTrackState
Definition: VertexTrack.h:29
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > b6
Definition: VertexTrack.h:116
Common base class.
bool operator()(const RefCountedVertexTrack &t) const
Definition: VertexTrack.h:126
bool covAvailable
Definition: VertexTrack.h:113
bool refittedStateAvailable() const
Definition: VertexTrack.h:59
bool fullCovarianceAvailable() const
Definition: VertexTrack.h:61
float theWeight
Definition: VertexTrack.h:111
VertexState theVertexState
Definition: VertexTrack.h:110
AlgebraicSymMatrixOO fullCovariance() const
Definition: VertexTrack.h:87
ROOT::Math::SMatrix< double, N-2, N-2, ROOT::Math::MatRepStd< double, N-2, N-2 > > AlgebraicMatrixMM
Definition: VertexTrack.h:24
ROOT::Math::SMatrix< double, 7, 7, ROOT::Math::MatRepSym< double, 7 > > b7
Definition: VertexTrack.h:117
bool tkToVertexCovarianceAvailable() const
Definition: VertexTrack.h:60
const RefCountedVertexTrack & track_
Definition: VertexTrack.h:128
ReferenceCountingPointer< RefittedTrackState< N > > RefCountedRefittedTrackState
Definition: VertexTrack.h:30
float smoothedChi2_
Definition: VertexTrack.h:118
ROOT::Math::SVector< double, N > AlgebraicVectorN
Definition: VertexTrack.h:23
float weight() const
Definition: VertexTrack.h:58
RefCountedLinearizedTrackState linearizedTrack() const
Definition: VertexTrack.h:56
#define N
Definition: blowfish.cc:9
bool stAvailable
Definition: VertexTrack.h:112
ROOT::Math::SMatrix< double, 3, N-2, ROOT::Math::MatRepStd< double, 3, N-2 > > AlgebraicMatrix3M
Definition: VertexTrack.h:25
< trclass="colgroup">< tdclass="colgroup"colspan=5 > DT local reconstruction</td ></tr >< tr >< td >< ahref="classDTRecHit1DPair.html"> DTRecHit1DPair</a ></td >< td >< ahref="DataFormats_DTRecHit.html"> edm::RangeMap & lt
VertexTrackEqual(const RefCountedVertexTrack &t)
Definition: VertexTrack.h:125
VertexState vertexState() const
Definition: VertexTrack.h:57
ROOT::Math::SMatrix< double, N+1, N+1, ROOT::Math::MatRepSym< double, N+1 > > AlgebraicSymMatrixOO
Definition: VertexTrack.h:26
RefCountedRefittedTrackState refittedState() const
Definition: VertexTrack.h:74
int weight
Definition: histoStyle.py:50
float smoothedChi2() const
Definition: VertexTrack.h:69
bool operator==(const VertexTrack< N > &data) const
Definition: VertexTrack.h:97
RefCountedLinearizedTrackState theLinTrack
Definition: VertexTrack.h:109
ReferenceCountingPointer< VertexTrack< N > > RefCountedVertexTrack
Definition: VertexTrack.h:124
AlgebraicSymMatrixOO fullCovariance_
Definition: VertexTrack.h:115
Unlimited (trivial) bounds.