1#ifndef VertexFit_KalmanKinematicFit_H
2#define VertexFit_KalmanKinematicFit_H
5#include "VertexFit/WTrackParameter.h"
6#include "VertexFit/KinematicConstraints.h"
7#include "VertexFit/TrackPool.h"
8#include "VertexFit/GammaShape.h"
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);
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);}
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;
NTuple::Item< double > m_p
NTuple::Item< double > m_q
****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
********INTEGER modcns REAL m_C
void AddResonance(int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
double chisq(int n) const
void AddTotalEnergy(int number, double etot, std::vector< int > lis)
void AddFourMomentum(int number, double etot)
void AddResonance(int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6)
void setIterNumber(const int niter=5)
void AddTotalEnergy(int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
void AddTotalMomentum(int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
void AddFourMomentum(int number, HepLorentzVector p4)
void AddTotalMomentum(int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6)
void setDynamicerror(const bool dynamicerror=1)
void setChisqCut(const double chicut=200, const double chiter=0.05)
WTrackParameter origin(int n) const
void AddTotalEnergy(int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
void AddThreeMomentum(int number, Hep3Vector p3)
void setCollideangle(const double collideangle=11e-3)
void AddResonance(int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
void AddTotalEnergy(int number, double etot, int n1, int n2, int n3)
void AddTotalEnergy(int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
void setTgraph(TGraph2D *graph2d)
void AddTotalEnergy(int number, double etot, int n1, int n2)
void AddTotalMomentum(int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
void AddTotalMomentum(int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
void AddResonance(int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
void AddResonance(int number, double mres, int n1, int n2)
HepLorentzVector pfit(int n) const
WTrackParameter infit(int n) const
void AddTotalEnergy(int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6)
void BuildVirtualParticle(int number)
void AddTotalMomentum(int number, double ptot, int n1, int n2, int n3)
HepLorentzVector pfit1(int n)
void AddTotalEnergy(int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7)
void AddResonance(int number, double mres, int n1, int n2, int n3, int n4)
WTrackParameter wVirtualTrack(int n) const
HepSymMatrix getCInfit(int i) const
void AddResonance(int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
void AddTotalEnergy(int number, double etot, int n1, int n2, int n3, int n4, int n5)
void AddTotalMomentum(int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7)
void AddResonance(int number, double mres, std::vector< int > tlis)
void setEspread(const double espread=0.0009)
void AddTotalMomentum(int number, double ptot, int n1, int n2, int n3, int n4, int n5)
void AddTotalMomentum(int number, double ptot, int n1, int n2, int n3, int n4)
void AddTotalMomentum(int number, double ptot, int n1)
static KalmanKinematicFit * instance()
void AddTotalEnergy(int number, double etot, int n1)
void AddTotalEnergy(int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
void AddTotalMomentum(int number, double ptot, std::vector< int > lis)
void AddResonance(int number, double mres, int n1, int n2, int n3, int n4, int n5)
void AddResonance(int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7)
void AddTotalMomentum(int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
void AddTotalEnergy(int number, double etot, int n1, int n2, int n3, int n4)
void AddResonance(int number, double mres, int n1)
HepSymMatrix getCOrigin(int i) const
bool dynamicerror() const
double collideangle() const
void AddTotalEnergy(int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
void AddResonance(int number, double mres, int n1, int n2, int n3)
void setFlag(const bool flag=1)
void AddTotalMomentum(int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
void AddTotalMomentum(int number, double ptot, int n1, int n2)
void AddResonance(int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
void AddEqualMass(int number, std::vector< int > tlis1, std::vector< int > tlis2)
std::vector< WTrackParameter > wTrackInfit() const
std::vector< WTrackParameter > wTrackOrigin() const