1 #ifndef TtFullHadKinFitter_h
2 #define TtFullHadKinFitter_h
6 #include "TLorentzVector.h"
47 const std::vector<edm::ParameterSet>* udscResolutions =
nullptr,
48 const std::vector<edm::ParameterSet>* bResolutions =
nullptr,
49 const std::vector<double>* jetEnergyResolutionScaleFactors =
nullptr,
50 const std::vector<double>* jetEnergyResolutionEtaBinning =
nullptr);
59 const std::vector<edm::ParameterSet>* udscResolutions =
nullptr,
60 const std::vector<edm::ParameterSet>* bResolutions =
nullptr,
61 const std::vector<double>* jetEnergyResolutionScaleFactors =
nullptr,
62 const std::vector<double>* jetEnergyResolutionEtaBinning =
nullptr);
67 int fit(
const std::vector<pat::Jet>&
jets);
99 std::unique_ptr<TAbsFitParticle>
b_;
100 std::unique_ptr<TAbsFitParticle>
bBar_;
112 std::map<Constraint, std::unique_ptr<TFitConstraintM>>
massConstr_;
126 std::unique_ptr<CovarianceMatrix>
covM_;
153 double minBTagValueBJet,
154 double maxBTagValueNonBJet,
155 const std::vector<edm::ParameterSet>& udscResolutions,
156 const std::vector<edm::ParameterSet>& bResolutions,
157 const std::vector<double>& jetEnergyResolutionScaleFactors,
158 const std::vector<double>& jetEnergyResolutionEtaBinning,
162 unsigned int maxNrIter,
165 unsigned int jetParam,
176 double minBTagValueBJet,
177 double maxBTagValueNonBJet) {
186 const std::vector<edm::ParameterSet>& bResolutions,
187 const std::vector<double>& jetEnergyResolutionScaleFactors,
188 const std::vector<double>& jetEnergyResolutionEtaBinning) {
196 unsigned int maxNrIter,
199 unsigned int jetParam,
200 const std::vector<unsigned>& constraints,
224 std::list<TtFullHadKinFitter::KinFitResult>
fit(
const std::vector<pat::Jet>&
jets);
228 bool doBTagging(
const std::vector<pat::Jet>&
jets,
const unsigned int& bJetCounter, std::vector<int>& combi);
237 std::vector<TtFullHadKinFitter::Constraint>
constraints(
const std::vector<unsigned int>& configParameters);
284 std::unique_ptr<TtFullHadKinFitter>
fitter;
void setResolutions(const std::vector< edm::ParameterSet > &udscResolutions, const std::vector< edm::ParameterSet > &bResolutions, const std::vector< double > &jetEnergyResolutionScaleFactors, const std::vector< double > &jetEnergyResolutionEtaBinning)
set resolutions
double maxF_
maximal deviation for contstraints
const std::vector< double > * jetEnergyResolutionEtaBinning_
double maxDeltaS_
maximal chi2 equivalent
TtFullHadKinFitter::Param param(unsigned int configParameter)
Param
supported parameterizations
void setupConstraints()
initialize constraints
void setFitter(int maxNJets, unsigned int maxNrIter, double maxDeltaS, double maxF, unsigned int jetParam, const std::vector< unsigned > &constraints, double mW, double mTop)
set parameters for fitter
TtHadEvtSolution addKinFitInfo(TtHadEvtSolution *asol)
add kin fit information to the old event solution (in for legacy reasons)
std::unique_ptr< TAbsFitParticle > lightPBar_
void setBTagging(bool useBTagging, unsigned int bTags, std::string bTagAlgo, double minBTagValueBJet, double maxBTagValueNonBJet)
set all parameters for b-tagging
int maxNComb_
maximal number of combinations to be written to the event
TtFullHadKinFitter::Constraint constraint(unsigned int configParameter)
const pat::Particle fittedLightPBar() const
return fitted light quark candidate
std::unique_ptr< TKinFitter > fitter_
kinematic fitter
pat::Particle fittedLightPBar_
void setUseOnlyMatch(bool useOnlyMatch)
set useOnlyMatch
pat::Particle fittedB_
output particles
int fit(const std::vector< pat::Jet > &jets)
kinematic fit interface
void printSetup() const
print fitter setup
double mW_
W mass value used for constraints.
std::vector< unsigned > constraints_
numbering of different possible kinematic constraints
pat::Particle fittedLightQBar_
const std::vector< double > * jetEnergyResolutionScaleFactors_
scale factors for the jet energy resolution
std::list< TtFullHadKinFitter::KinFitResult > fit(const std::vector< pat::Jet > &jets)
do the fitting and return fit result
std::vector< double > jetEnergyResolutionScaleFactors_
scale factors for the jet energy resolution
const pat::Particle fittedBBar() const
return fitted b quark candidate
std::vector< edm::ParameterSet > udscResolutions_
store the resolutions for the jets
class that does the fitting
std::vector< edm::ParameterSet > bResolutions_
std::string jetCorrectionLevel_
correction level for jets
std::map< Constraint, std::unique_ptr< TFitConstraintM > > massConstr_
supported constraints
void setJEC(std::string jetCorrectionLevel)
set jec level
bool doBTagging(const std::vector< pat::Jet > &jets, const unsigned int &bJetCounter, std::vector< int > &combi)
pat::Jet corJet(const pat::Jet &jet, const std::string &quarkType)
helper function to construct the proper corrected jet for its corresponding quarkType ...
std::vector< double > jetEnergyResolutionEtaBinning_
std::unique_ptr< TAbsFitParticle > lightP_
unsigned int bTags_
minimal number of b-jets
Constraint
supported constraints
void setMatch(const std::vector< int > &match)
set match to be used
unsigned int maxNrIter_
maximal number of iterations to be performed for the fit
std::vector< int > match_
the combination that should be used
std::vector< TtFullHadKinFitter::Constraint > intToConstraint(const std::vector< unsigned int > &constraints)
used to convert vector of int's to vector of constraints (just used in TtFullHadKinFitter(int, int, double, double, std::vector<unsigned int>))
~TtFullHadKinFitter()
default destructor
const std::vector< edm::ParameterSet > * bResolutions_
double minBTagValueBJet_
min value of bTag for a b-jet
std::vector< TtFullHadKinFitter::Constraint > constraints(const std::vector< unsigned int > &configParameters)
pat::Particle fittedLightP_
const pat::Particle fittedLightQ() const
return fitted light quark candidate
pat::Particle fittedBBar_
std::unique_ptr< TAbsFitParticle > b_
input particles
double mTop_
top mass value used for constraints
std::vector< Constraint > constraints_
vector of constraints to be used
std::vector< int > JetCombi
Param jetParam_
jet parametrization
pat::Particle fittedLightQ_
void setupFitter()
setup fitter
~KinFit()
default destructor
Analysis-level particle class.
std::string bTagAlgo_
input tag for b-tagging algorithm
const std::vector< edm::ParameterSet > * udscResolutions_
resolutions
Analysis-level calorimeter jet class.
void setOutput(int maxNComb)
set number of combinations of output
unsigned int jetParam_
numbering of different possible jet parametrizations
bool useOnlyMatch_
fit or only a certain combination
int maxNJets_
maximal number of jets (-1 possible to indicate 'all')
TtFullHadKinFitter()
default constructor
std::unique_ptr< CovarianceMatrix > covM_
get object resolutions and put them into a matrix
const pat::Particle fittedLightP() const
return fitted light quark candidate
void setupJets()
initialize jet inputs
std::unique_ptr< TAbsFitParticle > lightQBar_
std::unique_ptr< TtFullHadKinFitter > fitter
kinematic fit interface
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
std::unique_ptr< TAbsFitParticle > lightQ_
bool operator<(const KinFitResult &rhs)
double maxBTagValueNonBJet_
max value of bTag for a non-b-jet
bool invalidMatch_
match is invalid
const pat::Particle fittedLightQBar() const
return fitted light quark candidate
const pat::Particle fittedB() const
return fitted b quark candidate
KinFit()
default constructor
std::unique_ptr< TAbsFitParticle > bBar_
void setMatchInvalidity(bool invalidMatch)
set the validity of a match