1 #ifndef TtFullLepKinSolver_h
2 #define TtFullLepKinSolver_h
7 #include "TLorentzVector.h"
39 TtFullLepKinSolver(
const double,
const double,
const double,
const std::vector<double>,
const double=80.4,
const double=4.8);
53 TLorentzVector LV_b_);
59 const TLorentzVector
l,
60 const TLorentzVector b_al,
61 const TLorentzVector b_l,
62 const double mt,
const double mat,
const double pxboost,
const double pyboost,
65 void TopRec(
const TLorentzVector al,
66 const TLorentzVector
l,
67 const TLorentzVector b_al,
68 const TLorentzVector b_l,
const double sol);
74 int quartic(
double* q_coeff,
double* q_sol)
const;
76 int cubic(
const double* c_coeff,
double* c_sol)
const;
78 double sqr(
const double x)
const {
return (x*x);}
80 void SWAP(
double& realone,
double& realtwo)
const;
int quartic(double *q_coeff, double *q_sol) const
int cubic(const double *c_coeff, double *c_sol) const
void TopRec(const TLorentzVector al, const TLorentzVector l, const TLorentzVector b_al, const TLorentzVector b_l, const double sol)
double WeightSolfromMC() const
void SetConstraints(const double xx=0, const double yy=0)
TtFullLepKinSolver()
default constructor
bool useMCforBest_
flag to swith from WeightSolfromMC() to WeightSolfromShape()
TLorentzVector genLV_n
provisional
const double topmass_step
void SWAP(double &realone, double &realtwo) const
NeutrinoSolution getNuSolution(TLorentzVector LV_l, TLorentzVector LV_l_, TLorentzVector LV_b, TLorentzVector LV_b_)
reco::LeafCandidate neutrino
TtDilepEvtSolution addKinSolInfo(TtDilepEvtSolution *asol)
TF2 * EventShape_
Event shape.
double sqr(const double x) const
void useWeightFromMC(bool useMC)
~TtFullLepKinSolver()
destructor
double WeightSolfromShape() const
use the parametrized event shape to obtain the solution weight.
const double topmass_begin
reco::LeafCandidate neutrinoBar
void FindCoeff(const TLorentzVector al, const TLorentzVector l, const TLorentzVector b_al, const TLorentzVector b_l, const double mt, const double mat, const double pxboost, const double pyboost, double *q_coeff)