00001
00002
00003
00004
00005 #ifndef TopKinFitter_StKinFitter_h
00006 #define TopKinFitter_StKinFitter_h
00007
00008 #include "AnalysisDataFormats/TopObjects/interface/StEvtSolution.h"
00009
00010 #include "TLorentzVector.h"
00011 #include "TMatrixD.h"
00012 #include "TMath.h"
00013
00014 #include <vector>
00015
00016 class TKinFitter;
00017 class TAbsFitParticle;
00018 class TFitConstraintM;
00019
00020 class StKinFitter {
00021
00022 public:
00023
00024 enum Parametrization { EMom, EtEtaPhi, EtThetaPhi };
00025
00026 public:
00027
00028 StKinFitter();
00029 StKinFitter(int jetParam, int lepParam, int metParam, int maxNrIter, double maxDeltaS, double maxF, std::vector<int> constraints);
00030 StKinFitter(Parametrization jetParam, Parametrization lepParam, Parametrization metParam, int maxNrIter, double maxDeltaS, double maxF, std::vector<int> constraints);
00031 ~StKinFitter();
00032
00033 StEvtSolution addKinFitInfo(StEvtSolution * asol);
00034
00035 private:
00036
00037 void setupFitter();
00038 std::vector<float> translateCovM(TMatrixD &);
00039
00040 private:
00041
00042
00043 TKinFitter * theFitter_;
00044
00045 TAbsFitParticle * fitBottom_;
00046 TAbsFitParticle * fitLight_;
00047 TAbsFitParticle * fitLepton_;
00048 TAbsFitParticle * fitNeutrino_;
00049
00050 TFitConstraintM * cons1_;
00051 TFitConstraintM * cons2_;
00052 TFitConstraintM * cons3_;
00053
00054 Parametrization jetParam_, lepParam_, metParam_;
00055 bool doNeutrinoResol_;
00056 int maxNrIter_;
00057 double maxDeltaS_;
00058 double maxF_;
00059 std::vector<int> constraints_;
00060 };
00061
00062
00063 #endif