1#ifndef VertexFit_Kinematic_Constraints_H
2#define VertexFit_Kinematic_Constraints_H
7#include "CLHEP/Vector/ThreeVector.h"
8#include "CLHEP/Vector/LorentzVector.h"
9#include "CLHEP/Matrix/Vector.h"
10#include "CLHEP/Matrix/Matrix.h"
12#include "VertexFit/WTrackParameter.h"
13using CLHEP::Hep3Vector;
14using CLHEP::HepLorentzVector;
15using CLHEP::HepVector;
16using CLHEP::HepMatrix;
26 int Type()
const {
return m_type;}
39 std::vector<HepMatrix>
Ec() {
return m_Ec;}
40 std::vector<HepMatrix>
Dc() {
return m_Dc;}
41 std::vector<HepVector>
dc() {
return m_dc;}
42 std::vector<HepVector>
lambda() {
return m_lambda;}
43 std::vector<HepSymMatrix>
Vm() {
return m_Vm;}
44 std::vector<HepSymMatrix>
VD() {
return m_VD;}
45 std::vector<int>
Ltrk() {
return m_ltrk;}
46 int nc() {
return m_nc;}
47 void setType(
const int type) {m_type = type;}
49 void setVD(HepSymMatrix vd) {m_VD[0] = vd;}
56 int typeP3()
const {
return ThreeMomentum;}
57 int typeP4()
const {
return FourMomentum;}
61 double mres()
const {
return m_mres;}
62 double etot()
const {
return m_etot;}
63 double ptot()
const {
return m_ptot;}
65 Hep3Vector
p3()
const {
return m_p3;}
66 HepLorentzVector
p4()
const {
return m_p4;}
67 double phipre()
const {
return m_phipre;}
69 HepSymMatrix
Vre()
const {
return m_Vre;}
70 HepSymMatrix
Vme()
const {
return m_Vme;}
71 HepSymMatrix
Vne()
const {
return m_Vne;}
72 HepSymMatrix
Vpe()
const {
return m_Vpe;}
73 HepSymMatrix
Vmeasure()
const {
return m_Vmeasure;}
81 void setP4(
const double etot) {m_p4 = HepLorentzVector(0., 0., 0.,
etot);}
90 void setNumEqual(std::vector<int> nequal) {m_nequal = nequal;}
93 std::vector<HepMatrix> m_Dc;
94 std::vector<HepMatrix> m_Ec;
95 std::vector<HepVector> m_dc;
96 std::vector<HepSymMatrix> m_Vm;
97 std::vector<HepVector> m_lambda;
98 std::vector<HepSymMatrix> m_VD;
99 std::vector<int> m_ltrk;
105 HepLorentzVector m_p4;
109 HepSymMatrix m_Vmeasure;
114 std::vector<int> m_nequal;
116 static const int Resonance;
117 static const int TotalEnergy;
118 static const int TotalMomentum;
119 static const int ThreeMomentum;
120 static const int FourMomentum;
121 static const int EqualMass;
122 static const int Position;
131 m_lambda = kc.m_lambda;
140 m_phipre = kc.m_phipre;
141 m_lambdapre = kc.m_lambdapre;
142 m_nequal = kc.m_nequal;
147 m_Vmeasure = kc.m_Vmeasure;
157 m_lambda = kc.m_lambda;
166 m_phipre = kc.m_phipre;
167 m_lambdapre = kc.m_lambdapre;
168 m_nequal = kc.m_nequal;
173 m_Vmeasure = kc.m_Vmeasure;
std::vector< HepMatrix > Ec()
std::vector< HepSymMatrix > VD()
void setVD(HepSymMatrix vd)
void setP4(const double etot)
void setP4(const HepLorentzVector p4)
void setLambda(HepVector lambda)
std::vector< HepSymMatrix > Vm()
KinematicConstraints & operator=(const KinematicConstraints &)
void FourMomentumConstraints(const HepLorentzVector p4, std::vector< int > tlis, HepSymMatrix Vme)
std::vector< int > Ltrk()
void ResonanceConstraints(const double mres, std::vector< int > tlis, HepSymMatrix Vre)
void setNumEqual(std::vector< int > nequal)
void setMres(const double mres)
HepSymMatrix Vmeasure() const
void ThreeMomentumConstraints(const Hep3Vector p3, std::vector< int > tlis)
void TotalEnergyConstraints(const double etot, std::vector< int > tlis)
void setVne(const HepSymMatrix Vne)
void setType(const int type)
void setVme(const HepSymMatrix Vme)
std::vector< HepVector > lambda()
void setEtot(const double etot)
std::vector< int > numEqual()
KinematicConstraints(const KinematicConstraints &)
std::vector< HepVector > dc()
HepLorentzVector p4() const
std::vector< HepMatrix > Dc()
void setLambdapre(const double lambdapre)
void setVpe(const HepSymMatrix Vpe)
void setVre(const HepSymMatrix Vre)
void setPtot(const double ptot)
void TotalMomentumConstraints(const double ptot, std::vector< int > tlis)
void setVmeasure(const HepSymMatrix Vmeasure)
void setPhipre(const double phipre)
void setPoint(const HepPoint3D x)
void EqualMassConstraints(std::vector< int > tlis1, std::vector< int > tlis2, HepSymMatrix Vne)
void setP3(const Hep3Vector p3)