60#include "vt++/VtVertex.hh"
61#include "vt++/VtTrack.hh"
62#include "smatrix/SVector.hh"
63#include "smatrix/SKalman.hh"
72template <
unsigned int NTR>
97 static const unsigned int size = NTR;
109 unsigned short int ndf()
const;
183 float x(
float z)
const;
185 float y(
float z)
const;
255 std::ostream&
print( std::ostream& )
const;
312template <
unsigned int NTR>
314 return vt.
print( os );
317#include "SVertex.icc"
std::ostream & operator<<(std::ostream &os, const SVertex< NTR > &vt)
Definition: SVertex.hh:313
Definition: SKalman.hh:49
Definition: SVertex.hh:73
SVector< double, 3 > evec() const
$\vec{e} = (e_x,e_y,ez)$ unit vector along $\vec{p}$ of mother track
float theta() const
polar angle $\theta = \cos^{-1}(e_z)$ [deg]
SVector< double, 3 > vpos_
Definition: SVertex.hh:289
bool valid_
Definition: SVertex.hh:302
const SMatrix< double, 3 > & VCOV() const
vertex cov. matrix
float pz() const
mother track momentum along
float cov_x(double dz=0.) const
get $\sigma_x^2|_{z+dz}$
SVector< double, 6 > t_p
Definition: SVertex.hh:297
float ty() const
mother track slope $t_y$
SMatrix< double, 3 *NTR+3 > v_covn
Definition: SVertex.hh:298
float y() const
$y$ of reconstructed track
float p() const
mother track momentum $p$
float chi2() const
vertex $\chi^2$
bool filter()
do a filter step
float cov_ty() const
get $\sigma_{t_y}^2$
float eta() const
rapidity $\eta = -\log\tan(\theta/2.)$
const SKalman< NTR > & kalman(unsigned int i) const
read only access to Kalman objects
float prob() const
upper tail $\chi^2$ probability
unsigned short int ndf() const
degrees of freedom of vertex fit
SVertex< NTR > & operator=(const SVertex< NTR > &rhs)
bool findVertex3D(SVector< double, 3 > &pos) const
return vertex computed with 3D analytical method
SMatrix< double, 5 > cinv_
Definition: SVertex.hh:300
int charge() const
track charge (=sum of track charges in vertex)
float z() const
$z$ of reconstructed track
unsigned short int ntracks() const
no of tracks in vertex
float vtx_cov_z() const
$\sigma_z^2$ of vertex
const Track *& track(unsigned int i)
read/write track access
SVector< double, 3 > findVertex2D() const
return vertex computed with 2D analytical method
const Track * tracks[NTR]
Definition: SVertex.hh:291
bool operator==(const Track &rhs) const
compare Track pointers
const SMatrix< double, 3 *NTR+3 > & covn() const
for internal use only
void collect(vector< Track * > &c) const
collect pointers
const SMatrix< double, 3 > & VCINV() const
inverse vertex cov. matrix
SMatrix< double, 3 > v_CS
Definition: SVertex.hh:293
const SMatrix< double, 5 > & COV() const
covariance matrix of mother track
float vx() const
vertex $x$ position $v_x$
SVertex(const Track &t)
create Vertex object & set mother track by $t$
const SVector< double, 6 > & mother() const
mother track parameters $\vec{m}=(x,y,z,t_x,t_y,p)$
const SVector< double, 3 > & vposR() const
vertex position $\vec{v} = (v_x,v_y,v_z)$ (fast readonly access)
unsigned int v_ndf
Definition: SVertex.hh:296
bool moth_cov
Definition: SVertex.hh:304
void set_vpos(const SVector< double, 3 > &pos)
set vertex position manually
void valid()
mark mother track as valid
SVector< double, 3 > EstimateVertex() const
compute vertex with error weighted 2D analytical method
float tx() const
mother track rack slope $t_x$
double mass_tr(const SVector< double, NTR > &rm) const
compute invariant mass using measured track momenta
SVector< double, 3 > vpos() const
vertex position $\vec{v} = (v_x,v_y,v_z)$
SVector< double, 3 > pvec() const
mother track momentum vector $\vec{p} = (p_x,p_y,p_z)$
void set_track(unsigned int i, const Track &t)
set track list
double v_chi2
Definition: SVertex.hh:295
bool findVertexNe()
Vt based Kalman filter vertex fit, without first estimation.
bool isMotherCov() const
is mother cov. matrix calculated?
std::ostream & print(std::ostream &) const
used by operator<<()
bool calc_mother()
calculate mother track + cov. matrix
float rap(double mass=0.) const
Rapidity $y = \frac{1}{2}\ln(\frac{E+p_z}{E-p_z})$.
void invalid()
mark mother track as invalid
SVector< double, 3 > xvec() const
position $\vec{x} = (x,y,z)$ of mother track
SVertex(const SVertex< NTR-1 > &vtx, const Track &t)
add a track
SVertex(const SVertex< NTR > &rhs)
float cov_y(double dz=0.) const
get $\sigma_y^2|_{z+dz}$
float cov_p() const
get $\sigma_p^2$
const Track * track(unsigned int i) const
read only track access
float vy() const
vertex $y$ position $v_y$
bool validKalmanFit
Definition: SVertex.hh:301
bool smoothC()
needed for bigcov()
SKalman< NTR > kalman_[NTR]
Definition: SVertex.hh:292
bool calcVertex2D()
compute vertex with a 2D analytical method
double v_bk13
Definition: SVertex.hh:290
SVertex(const Track &t1, const Track &t2, const Track &t3, const Track &t4)
bool findVertexVt()
Vt based Kalman filter vertex fit.
float vtx_cov_y() const
$\sigma_y^2$ of vertex
SVertex(const Track &t1, const Track &t2, const Track &t3)
float cov_tx() const
get $\sigma_{t_x}^2$
float x(float z) const
linear extrapolation of $x$ to z
static const unsigned int size
Definition: SVertex.hh:97
double bk13() const
Definition: SVertex.hh:276
float y(float z) const
linear extrapolation of $y$ to z
bool propagate(const double z)
propagate reconsructed track to $z$
SVector< double, 3 > tvec() const
slope $\vec{t} = (t_x,t_y,1)$ of mother track
bool isKalmanFit() const
has Kalman fit succeeded?
bool calc_mother_trtr()
calculate mother track using track info
SVector< double, 2 > rmsDistAngle() const
return rms distance and rms opening angle of tracks in vertex
float vz() const
vertex $z$ position $v_z$
bool validity
Definition: SVertex.hh:305
float x() const
$x$ of reconstructed track
bool isMotherTr() const
is mother track calculated?
SMatrix< double, 5 > cov_
Definition: SVertex.hh:299
SKalman< NTR > & kalman(unsigned int i)
read/write access to Kalman objects
float pt() const
transverse mother track momentum $p_t$
float energy(double mass=0.) const
$E = \sqrt{m^2 + p^2}$
const SMatrix< double, 5 > & CINV() const
inverse cov. matrix of mother track
bool calc_mother_tr()
calculate mother track using kalman info
float xf(double mass=0.) const
float phi() const
azimuthal angle $\phi$ [deg]
float vtx_cov_x() const
$\sigma_x^2$ of vertex
bool moth_tr
Definition: SVertex.hh:303
bool calc_mother_cov()
calculate covariance matrix of mother track
double massError(const SVector< double, NTR > &rm) const
compute invariant mass error caused by momentum error
double mass(const SVector< double, NTR > &rm) const
compute invariant mass using refitted track momenta
SVertex(const Track &t1, const Track &t2)
SVector< double, 3 > & vposR()
vertex position $\vec{v} = (v_x,v_y,v_z)$ (fast read/write access)
bool bigcov()
construct $(3\cdot n+3)\times(3\cdot n+3)$ cov. matrix
bool smooth()
smooth vertex parameters
SMatrix< double, 3 > v_CINV
Definition: SVertex.hh:294
double dz
Definition: Track.h:46
TTree * t
Definition: check_shower.C:4