00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 #ifndef KMASSFITTER_H
00048 #define KMASSFITTER_H
00049 #include "kfitter/kfitterbase.h"
00050
00051 class kmassfitter : public kfitterbase
00052 {
00053 public:
00054 kmassfitter(void);
00055 ~kmassfitter(void);
00056
00057
00058 void vertex(const HepPoint3D&);
00059 void errVertex(const HepSymMatrix&);
00060 void errVertexTrack(const HepMatrix&);
00061 void errVertexTrack(void);
00062 void invariantMass(const double);
00063 void atDecayPoint(void);
00064 void notDecayPoint(void);
00065 void fixMass(void);
00066 void unfixMass(void);
00067 void correlation(const HepMatrix&);
00068 void correlation(void);
00069
00070
00071 HepPoint3D vertex(const unsigned = KF_AFTER_FIT);
00072 HepSymMatrix errVertex(const unsigned = KF_AFTER_FIT);
00073 HepMatrix errVertexTrack(const unsigned,
00074 const unsigned = KF_AFTER_FIT);
00075 double invariantMass(void);
00076 unsigned decayPoint(void);
00077 unsigned fitWithVertex(void);
00078 double chisq(void);
00079 double chisq(const unsigned n);
00080 HepMatrix correlation(const unsigned n, const unsigned m, const unsigned flag = KF_AFTER_FIT);
00081
00082 void clear(void);
00083
00084 #if KF_WITH_OLD_INTERFACE
00085 void set_vertex(const Hep3Vector &v){ vertex(static_cast<const HepPoint3D&>(v)); }
00086 void set_vertex(double x,double y,double z)
00087 { HepPoint3D t(x,y,z); vertex(t); }
00088 void set_invariant_mass(double mass){ invariantMass(mass); }
00089 void set_at_decaypoint() { atDecayPoint(); }
00090 void set_not_decaypoint(){ notDecayPoint(); }
00091 #endif //KF_WITH_OLD_INTERFACE
00092
00093 private:
00094
00095 HepPoint3D m_vertex_b;
00096 HepSymMatrix m_errVertex_b;
00097 std::vector<HepMatrix> m_errVertexTrack_b;
00098 unsigned m_errVertexTrackFlag;
00099
00100
00101 HepPoint3D m_vertex_a;
00102 HepSymMatrix m_errVertex_a;
00103 std::vector<HepMatrix> m_errVertexTrack_a;
00104
00105
00106 double m_invariantMass;
00107 unsigned m_fitIncludingVertex;
00108 unsigned m_atDecayPoint;
00109 std::vector<int> m_isFixMass;
00110
00111
00112 unsigned m_setInputMatrix(void);
00113 unsigned m_setCorrelation(void);
00114
00115
00116 unsigned m_setOutputMatrix(void);
00117
00118
00119 unsigned m_makeCoreMatrix(void);
00120 unsigned m_calDgf(void);
00121 };
00122
00123 #endif