1 #ifndef TtSemiLepKinFitter_h
2 #define TtSemiLepKinFitter_h
6 #include "TLorentzVector.h"
50 const std::vector<edm::ParameterSet>* udscResolutions =
nullptr,
51 const std::vector<edm::ParameterSet>* bResolutions =
nullptr,
52 const std::vector<edm::ParameterSet>* lepResolutions =
nullptr,
53 const std::vector<edm::ParameterSet>* metResolutions =
nullptr,
54 const std::vector<double>* jetEnergyResolutionScaleFactors =
nullptr,
55 const std::vector<double>* jetEnergyResolutionEtaBinning =
nullptr);
60 template <
class LeptonType>
63 int fit(
const TLorentzVector& p4HadP,
64 const TLorentzVector& p4HadQ,
65 const TLorentzVector& p4HadB,
66 const TLorentzVector& p4LepB,
67 const TLorentzVector& p4Lepton,
68 const TLorentzVector& p4Neutrino,
69 const int leptonCharge,
72 int fit(
const TLorentzVector& p4HadP,
73 const TLorentzVector& p4HadQ,
74 const TLorentzVector& p4HadB,
75 const TLorentzVector& p4LepB,
76 const TLorentzVector& p4Lepton,
77 const TLorentzVector& p4Neutrino,
78 const TMatrixD& covHadP,
79 const TMatrixD& covHadQ,
80 const TMatrixD& covHadB,
81 const TMatrixD& covLepB,
82 const TMatrixD& covLepton,
83 const TMatrixD& covNeutrino,
84 const int leptonCharge);
116 std::unique_ptr<TAbsFitParticle>
hadB_;
117 std::unique_ptr<TAbsFitParticle>
hadP_;
118 std::unique_ptr<TAbsFitParticle>
hadQ_;
119 std::unique_ptr<TAbsFitParticle>
lepB_;
131 std::unique_ptr<CovarianceMatrix>
covM_;
133 std::map<Constraint, std::unique_ptr<TFitConstraintM>>
massConstr_;
155 template <
class LeptonType>
169 const TLorentzVector p4HadP(hadP.
px(), hadP.
py(), hadP.
pz(), hadP.
energy());
170 const TLorentzVector p4HadQ(hadQ.
px(), hadQ.
py(), hadQ.
pz(), hadQ.
energy());
171 const TLorentzVector p4HadB(hadB.
px(), hadB.
py(), hadB.
pz(), hadB.
energy());
172 const TLorentzVector p4LepB(lepB.
px(), lepB.
py(), lepB.
pz(), lepB.
energy());
173 const TLorentzVector p4Lepton(lepton.px(), lepton.py(), lepton.pz(), lepton.energy());
174 const TLorentzVector p4Neutrino(neutrino.
px(), neutrino.
py(), 0, neutrino.
et());
Analysis-level MET class.
const pat::Particle fittedHadP() const
return hadronic light quark candidate
std::map< Constraint, std::unique_ptr< TFitConstraintM > > massConstr_
supported constraints
std::unique_ptr< TAbsFitParticle > hadQ_
Param
supported parameterizations
double pz() const final
z coordinate of momentum vector
const std::vector< edm::ParameterSet > * udscResolutions_
resolutions
const pat::Particle fittedNeutrino() const
return neutrino candidate
const pat::Particle fittedLepB() const
return leptonic b quark candidate
std::unique_ptr< TKinFitter > fitter_
kinematic fitter
std::unique_ptr< TAbsFitParticle > neutrino_
bool constrainSumPt_
internally use simple boolean for this constraint to reduce the per-event computing time ...
std::unique_ptr< TAbsFitParticle > lepton_
pat::Particle fittedHadP_
pat::Particle fittedLepB_
Param lepParam_
lepton parametrization
pat::Particle fittedHadB_
output particles
const std::vector< edm::ParameterSet > * bResolutions_
double px() const final
x coordinate of momentum vector
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
pat::Particle fittedLepton_
Analysis-level lepton class.
const std::vector< double > * jetEnergyResolutionScaleFactors_
scale factors for the jet energy resolution
Param jetParam_
jet parametrization
const pat::Particle fittedHadB() const
return hadronic b quark candidate
std::unique_ptr< TFitConstraintEp > sumPyConstr_
TtSemiLepKinFitter()
default constructor
double py() const final
y coordinate of momentum vector
Param metParam_
met parametrization
pat::Particle fittedHadQ_
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
std::unique_ptr< TAbsFitParticle > lepB_
void setupLeptons()
initialize lepton inputs
Analysis-level particle class.
std::unique_ptr< TFitConstraintEp > sumPxConstr_
std::unique_ptr< TAbsFitParticle > hadB_
input particles
Analysis-level calorimeter jet class.
const pat::Particle fittedHadQ() const
return hadronic light quark candidate
const pat::Particle fittedLepton() const
return lepton candidate
double et() const final
transverse energy
void setupFitter()
setup fitter
pat::Particle fittedNeutrino_
const std::vector< double > * jetEnergyResolutionEtaBinning_
std::unique_ptr< CovarianceMatrix > covM_
object used to construct the covariance matrices for the individual particles
std::unique_ptr< TAbsFitParticle > hadP_
Constraint
supported constraints
double energy() const final
energy
const std::vector< edm::ParameterSet > * metResolutions_