17 hadB_(0), hadP_(0), hadQ_(0), lepB_(0), lepton_(0), neutrino_(0),
18 jetParam_(kEMom), lepParam_(kEMom), metParam_(kEMom)
24 int maxNrIter,
double maxDeltaS,
double maxF,
25 std::vector<Constraint>
constraints,
double mW,
double mTop):
27 hadB_(0), hadP_(0), hadQ_(0), lepB_(0), lepton_(0), neutrino_(0),
28 jetParam_(jetParam), lepParam_(lepParam), metParam_(metParam), constrList_(constraints)
41 for(std::map<Constraint, TFitConstraintM*>::iterator it =
massConstr_.begin(); it !=
massConstr_.end(); ++it)
47 std::stringstream constr;
50 case kWHadMass : constr <<
" * hadronic W-mass (" <<
mW_ <<
" GeV) \n";
break;
51 case kWLepMass : constr <<
" * leptonic W-mass (" << mW_ <<
" GeV) \n";
break;
52 case kTopHadMass : constr <<
" * hadronic t-mass (" <<
mTop_ <<
" GeV) \n";
break;
53 case kTopLepMass : constr <<
" * leptonic t-mass (" << mTop_ <<
" GeV) \n";
break;
54 case kNeutrinoMass : constr <<
" * neutrino mass (0 GeV) \n";
break;
60 <<
"+++++++++++ TtSemiLepKinFitter Setup ++++++++++++ \n"
61 <<
" Parametrization: \n"
67 <<
" Max(No iterations): " <<
maxNrIter_ <<
"\n"
69 <<
" Max(F) : " <<
maxF_ <<
"\n"
70 <<
"+++++++++++++++++++++++++++++++++++++++++++++++++ \n";
75 TMatrixD empty3x3(3,3);
76 TMatrixD empty4x4(4,4);
101 TMatrixD empty3x3(3,3);
154 template <
class LeptonType>
167 TLorentzVector p4HadP( hadP.
px(), hadP.
py(), hadP.
pz(), hadP.
energy() );
168 TLorentzVector p4HadQ( hadQ.
px(), hadQ.
py(), hadQ.
pz(), hadQ.
energy() );
169 TLorentzVector p4HadB( hadB.
px(), hadB.
py(), hadB.
pz(), hadB.
energy() );
170 TLorentzVector p4LepB( lepB.
px(), lepB.
py(), lepB.
pz(), lepB.
energy() );
171 TLorentzVector p4Lepton ( lepton.px(), lepton.py(), lepton.pz(), lepton.energy() );
172 TLorentzVector p4Neutrino( neutrino.
px(), neutrino.
py(), 0, neutrino.
et() );
177 TMatrixD m2 = covM.setupMatrix(hadQ,
jetParam_);
178 TMatrixD m3 = covM.setupMatrix(hadB,
jetParam_,
"bjets");
179 TMatrixD m4 = covM.setupMatrix(lepB,
jetParam_,
"bjets");
180 TMatrixD m5 = covM.setupMatrix(lepton,
lepParam_);
181 TMatrixD m6 = covM.setupMatrix(neutrino,
metParam_);
230 std::vector<pat::Jet>
jets;
Analysis-level MET class.
void setFitHadq(const pat::Particle &aFitHadq)
const pat::Particle fittedHadP() const
void setFitHadb(const pat::Particle &aFitHadb)
Param
supported parameterizations
TAbsFitParticle * neutrino_
virtual double et() const
transverse energy
const pat::Particle fittedNeutrino() const
const pat::Particle fittedLepB() const
pat::Jet getCalHadq() const
virtual void setIni4Vec(const TLorentzVector *pini)=0
std::string param(const Param ¶m) const
convert Param to human readable form
pat::MET getCalLepn() const
TMatrixD setupMatrix(const pat::PATObject< ObjectType > &object, TopKinFitter::Param param, std::string resolutionProvider)
std::string getDecay() const
int maxNrIter_
maximal allowed number of iterations to be used for the fit
pat::Particle fittedHadP_
double fitProb() const
return fit probability
pat::Particle fittedLepB_
Param lepParam_
lepton parametrization
pat::Particle fittedHadB_
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
pat::Electron getCalLepe() const
virtual double energy() const
energy
TAbsFitParticle * lepton_
int fit(const std::vector< pat::Jet > &jets, const pat::Lepton< LeptonType > &leps, const pat::MET &met)
kinematic fit interface
void setupJets()
initialize jet inputs
void printSetup() const
print fitter setup
void setFitLepb(const pat::Particle &aFitLepb)
pat::Particle fittedLepton_
void addConstraint(TAbsFitConstraint *constraint)
void setFitHadp(const pat::Particle &aFitHadp)
Analysis-level lepton class.
virtual void setCovMatrix(const TMatrixD *theCovMatrix)
Param jetParam_
jet parametrization
const pat::Particle fittedHadB() const
double mW_
W mass value used for constraints.
void addMeasParticle(TAbsFitParticle *particle)
TtSemiLepKinFitter()
default constructor
std::map< Constraint, TFitConstraintM * > massConstr_
Param metParam_
met parametrization
pat::Particle fittedHadQ_
pat::Muon getCalLepm() const
double maxDeltaS_
maximal allowed chi2 (not normalized to degrees of freedom)
pat::Jet getCalHadb() const
TtSemiEvtSolution addKinFitInfo(TtSemiEvtSolution *asol)
add kin fit information to the old event solution (in for legacy reasons)
~TtSemiLepKinFitter()
default destructor
void setupConstraints()
initialize constraints
std::vector< Constraint > constrList_
vector of constraints to be used
void setupLeptons()
initialize lepton inputs
virtual double px() const
x coordinate of momentum vector
void setFitLepn(const pat::Particle &aFitLepn)
XYZPointD XYZPoint
point in space with cartesian internal representation
Analysis-level particle class.
Analysis-level calorimeter jet class.
const pat::Particle fittedHadQ() const
virtual double pz() const
z coordinate of momentum vector
const TLorentzVector * getCurr4Vec()
const pat::Particle fittedLepton() const
void setProbChi2(double c)
pat::Jet getCalLepb() const
void setupFitter()
setup fitter
pat::Particle fittedNeutrino_
void setFitLepl(const pat::Particle &aFitLepl)
double mTop_
top mass value used for constraints
virtual double py() const
y coordinate of momentum vector
double maxF_
maximal allowed distance from constraints
pat::Jet getCalHadp() const