17 hadB_(0), hadP_(0), hadQ_(0), lepB_(0), lepton_(0), neutrino_(0),
18 udscResolutions_(0), bResolutions_(0), lepResolutions_(0), metResolutions_(0),
19 jetEnergyResolutionScaleFactors_(0), jetEnergyResolutionEtaBinning_(0),
20 jetParam_(kEMom), lepParam_(kEMom), metParam_(kEMom)
26 int maxNrIter,
double maxDeltaS,
double maxF,
27 const std::vector<Constraint>&
constraints,
double mW,
double mTop,
28 const std::vector<edm::ParameterSet>* udscResolutions,
29 const std::vector<edm::ParameterSet>* bResolutions,
30 const std::vector<edm::ParameterSet>* lepResolutions,
31 const std::vector<edm::ParameterSet>* metResolutions,
32 const std::vector<double>* jetEnergyResolutionScaleFactors,
33 const std::vector<double>* jetEnergyResolutionEtaBinning):
35 hadB_(0), hadP_(0), hadQ_(0), lepB_(0), lepton_(0), neutrino_(0),
36 udscResolutions_(udscResolutions), bResolutions_(bResolutions), lepResolutions_(lepResolutions), metResolutions_(metResolutions),
37 jetEnergyResolutionScaleFactors_(jetEnergyResolutionScaleFactors), jetEnergyResolutionEtaBinning_(jetEnergyResolutionEtaBinning),
38 jetParam_(jetParam), lepParam_(lepParam), metParam_(metParam), constrList_(constraints)
52 for(std::map<Constraint, TFitConstraintM*>::iterator it =
massConstr_.begin(); it !=
massConstr_.end(); ++it)
60 std::stringstream constr;
63 case kWHadMass : constr <<
" * hadronic W-mass (" <<
mW_ <<
" GeV) \n";
break;
64 case kWLepMass : constr <<
" * leptonic W-mass (" << mW_ <<
" GeV) \n";
break;
65 case kTopHadMass : constr <<
" * hadronic t-mass (" <<
mTop_ <<
" GeV) \n";
break;
66 case kTopLepMass : constr <<
" * leptonic t-mass (" << mTop_ <<
" GeV) \n";
break;
67 case kNeutrinoMass : constr <<
" * neutrino mass (0 GeV) \n";
break;
69 case kSumPt : constr <<
" * summed transverse momentum \n";
break;
74 <<
"+++++++++++ TtSemiLepKinFitter Setup ++++++++++++ \n"
75 <<
" Parametrization: \n"
81 <<
" Max(No iterations): " <<
maxNrIter_ <<
"\n"
83 <<
" Max(F) : " <<
maxF_ <<
"\n"
84 <<
"+++++++++++++++++++++++++++++++++++++++++++++++++ \n";
89 TMatrixD empty3x3(3,3);
90 TMatrixD empty4x4(4,4);
115 TMatrixD empty3x3(3,3);
188 int TtSemiLepKinFitter::fit(
const TLorentzVector& p4HadP,
const TLorentzVector& p4HadQ,
const TLorentzVector& p4HadB,
const TLorentzVector& p4LepB,
200 return fit(p4HadP, p4HadQ, p4HadB, p4LepB, p4Lepton, p4Neutrino,
201 covHadP, covHadQ, covHadB, covLepB, covLepton, covNeutrino,
205 int TtSemiLepKinFitter::fit(
const TLorentzVector& p4HadP,
const TLorentzVector& p4HadQ,
const TLorentzVector& p4HadB,
const TLorentzVector& p4LepB,
206 const TLorentzVector& p4Lepton,
const TLorentzVector& p4Neutrino,
207 const TMatrixD& covHadP,
const TMatrixD& covHadQ,
const TMatrixD& covHadB,
const TMatrixD& covLepB,
208 const TMatrixD& covLepton,
const TMatrixD& covNeutrino,
const int leptonCharge)
263 std::vector<pat::Jet>
jets;
void setFitHadq(const pat::Particle &aFitHadq)
const pat::Particle fittedHadP() const
return hadronic light quark candidate
void addParticles(TAbsFitParticle *p1, TAbsFitParticle *p2=0, TAbsFitParticle *p3=0, TAbsFitParticle *p4=0, TAbsFitParticle *p5=0, TAbsFitParticle *p6=0, TAbsFitParticle *p7=0, TAbsFitParticle *p8=0, TAbsFitParticle *p9=0, TAbsFitParticle *p10=0)
void setFitHadb(const pat::Particle &aFitHadb)
TAbsFitParticle * hadB_
input particles
Param
supported parameterizations
const std::vector< edm::ParameterSet > * udscResolutions_
resolutions
TAbsFitParticle * neutrino_
const pat::Particle fittedNeutrino() const
return neutrino candidate
const pat::Particle fittedLepB() const
return leptonic b quark candidate
pat::Jet getCalHadq() const
virtual void setIni4Vec(const TLorentzVector *pini)=0
bool constrainSumPt_
internally use simple boolean for this constraint to reduce the per-event computing time ...
std::string param(const Param ¶m) const
convert Param to human readable form
pat::MET getCalLepn() const
TMatrixD setupMatrix(const pat::PATObject< T > &object, const TopKinFitter::Param param, const std::string &resolutionProvider="")
return covariance matrix for a PAT object
std::string getDecay() const
TFitConstraintEp * sumPyConstr_
math::Error< 5 >::type CovarianceMatrix
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
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_
output particles
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
pat::Electron getCalLepe() const
const std::vector< edm::ParameterSet > * bResolutions_
TAbsFitParticle * lepton_
int fit(const std::vector< pat::Jet > &jets, const pat::Lepton< LeptonType > &leps, const pat::MET &met)
kinematic fit interface for PAT objects
void setupJets()
initialize jet inputs
const std::vector< edm::ParameterSet > * lepResolutions_
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)
const std::vector< double > * jetEnergyResolutionScaleFactors_
scale factors for the jet energy resolution
virtual void setCovMatrix(const TMatrixD *theCovMatrix)
Param jetParam_
jet parametrization
const pat::Particle fittedHadB() const
return hadronic b quark candidate
double mW_
W mass value used for constraints.
void addMeasParticle(TAbsFitParticle *particle)
TtSemiLepKinFitter()
default constructor
std::map< Constraint, TFitConstraintM * > massConstr_
supported constraints
Param metParam_
met parametrization
CovarianceMatrix * covM_
object used to construct the covariance matrices for the individual particles
pat::Particle fittedHadQ_
pat::Muon getCalLepm() const
void setConstraint(Double_t constraint)
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
TFitConstraintEp * sumPxConstr_
void setFitLepn(const pat::Particle &aFitLepn)
XYZPointD XYZPoint
point in space with cartesian internal representation
Analysis-level particle class.
const pat::Particle fittedHadQ() const
return hadronic light quark candidate
const TLorentzVector * getCurr4Vec()
const pat::Particle fittedLepton() const
return lepton candidate
void setProbChi2(double c)
pat::Jet getCalLepb() const
void setupFitter()
setup fitter
pat::Particle fittedNeutrino_
const std::vector< double > * jetEnergyResolutionEtaBinning_
TKinFitter * fitter_
kinematic fitter
void setFitLepl(const pat::Particle &aFitLepl)
double mTop_
top mass value used for constraints
double maxF_
maximal allowed distance from constraints
pat::Jet getCalHadp() const
const std::vector< edm::ParameterSet > * metResolutions_