1#ifndef VertexFit_KalmanKinematicFit_H
2#define VertexFit_KalmanKinematicFit_H
21 void AddResonance(
int number,
double mres, std::vector<int> tlis);
31 int n5,
int n6,
int n7);
33 int n5,
int n6,
int n7,
int n8);
35 int n5,
int n6,
int n7,
int n8,
int n9);
37 int n5,
int n6,
int n7,
int n8,
int n9,
40 int n5,
int n6,
int n7,
int n8,
int n9,
43 int n5,
int n6,
int n7,
int n8,
int n9,
44 int n10,
int n11,
int n12);
48 void AddTotalEnergy(
int number,
double etot, std::vector<int> lis);
58 int n5,
int n6,
int n7);
60 int n5,
int n6,
int n7,
int n8);
62 int n5,
int n6,
int n7,
int n8,
int n9);
64 int n5,
int n6,
int n7,
int n8,
int n9,
int n10);
66 int n5,
int n6,
int n7,
int n8,
int n9,
int n10,
int n11);
68 int n5,
int n6,
int n7,
int n8,
int n9,
69 int n10,
int n11,
int n12);
84 int n5,
int n6,
int n7);
86 int n5,
int n6,
int n7,
int n8);
88 int n5,
int n6,
int n7,
int n8,
int n9);
90 int n5,
int n6,
int n7,
int n8,
int n9,
93 int n5,
int n6,
int n7,
int n8,
int n9,
96 int n5,
int n6,
int n7,
int n8,
int n9,
97 int n10,
int n11,
int n12);
112 void AddEqualMass(
int number, std::vector<int> tlis1, std::vector<int> tlis2);
132 void setChisqCut(
const double chicut = 200,
const double chiter=0.05) {m_chicut = chicut;m_chiter=chiter;}
139 void setTgraph ( TGraph2D* graph2d) {m_graph2d = graph2d;}
150 double chisq()
const {
return m_chi;}
151 double chisq(
int n)
const {
return m_chisq[n];}
154 HepLorentzVector
pfit(
int n)
const {
return p4Infit(n);}
157 HepLorentzVector
pfit1(
int n) {
return p4Origin(n);}
158 HepVector
xfit() {
return m_q.sub(1,3);}
163 HepVector
pull(
int n) ;
170 HepVector
cpu()
const {
return m_cpu;}
178 std::vector<WTrackParameter> m_virtual_wtrk;
188 void covMatrix(
int n);
191 std::vector<KinematicConstraints> m_kc;
192 std::vector<double> m_chisq;
196 void setA(
int ic,
int itk,
const HepMatrix &p) {m_A.sub(ic+1, itk, p);}
198 void setAT(
int itk,
int ic,
const HepMatrix &p) { m_AT.sub(itk, ic+1, p);}
205 void setB(
int ic,
int itk,
const HepMatrix &p) {m_B.sub(ic+1, itk, p);}
207 void setBT(
int itk,
int ic,
const HepMatrix &p) { m_BT.sub(itk, ic+1, p);}
219 HepVector pOrigin(
int i)
const ;
220 HepLorentzVector p4Origin(
int i)
const { HepVector p(4, 0); p = pOrigin(i);
return HepLorentzVector(p[0], p[1], p[2], p[3]);}
221 HepVector pInfit(
int i)
const ;
222 HepLorentzVector p4Infit(
int i)
const { HepVector p(4, 0); p = pInfit(i);
return HepLorentzVector(p[0], p[1], p[2], p[3]); }
225 void setPOrigin(
int i,
const HepVector &p) { m_p0.sub(i, p);}
226 void setPInfit(
int i,
const HepVector &p) {
m_p.sub(i, p);}
227 void setCOrigin(
int i,
const HepSymMatrix &D) {m_C0.sub(i, D);}
228 void setCInfit(
int i,
const HepSymMatrix &D) {
m_C.sub(i,D);}
234 HepSymMatrix m_D0inv;
237 void setQOrigin(
int i,
const HepVector &
q) { m_q0.sub(i,
q);}
238 void setQInfit(
int i,
const HepVector &
q) {
m_q.sub(i,
q);}
239 void setDOrigin(
int i,
const HepSymMatrix &D) {m_D0.sub(i, D);}
240 void setDInfit(
int i,
const HepSymMatrix &D) {m_D.sub(i,D);}
241 void setDOriginInv(
int i,
const HepSymMatrix &Dinv) {m_D0inv.sub(i,Dinv);}
255 double m_collideangle;
261 static const int NTRKPAR;
262 static const int NKFPAR;
263 static const int Resonance;
264 static const int TotalEnergy;
265 static const int TotalMomentum;
266 static const int ThreeMomentum;
267 static const int FourMomentum;
268 static const int EqualMass;
269 static const int Position;
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
NTuple::Item< double > m_p
NTuple::Item< double > m_q
********INTEGER modcns REAL m_C
double chisq(int n) const
void AddTotalEnergy(int number, double etot, std::vector< int > lis)
void setIterNumber(const int niter=5)
void AddFourMomentum(int number, HepLorentzVector p4)
void setDynamicerror(const bool dynamicerror=1)
void setChisqCut(const double chicut=200, const double chiter=0.05)
WTrackParameter origin(int n) const
void AddThreeMomentum(int number, Hep3Vector p3)
void setCollideangle(const double collideangle=11e-3)
void setTgraph(TGraph2D *graph2d)
HepLorentzVector pfit(int n) const
WTrackParameter infit(int n) const
void BuildVirtualParticle(int number)
HepLorentzVector pfit1(int n)
WTrackParameter wVirtualTrack(int n) const
HepSymMatrix getCInfit(int i) const
void AddResonance(int number, double mres, std::vector< int > tlis)
void setEspread(const double espread=0.0009)
void AddTotalMomentum(int number, double ptot, std::vector< int > lis)
HepSymMatrix getCOrigin(int i) const
bool dynamicerror() const
static KalmanKinematicFit * instance()
double collideangle() const
void setFlag(const bool flag=1)
void AddEqualMass(int number, std::vector< int > tlis1, std::vector< int > tlis2)
std::vector< WTrackParameter > wTrackInfit() const
std::vector< WTrackParameter > wTrackOrigin() const