Changeset View
Changeset View
Standalone View
Standalone View
EvtGenModels/EvtBBScalar.hh
Show All 34 Lines | |||||
#include <map> | #include <map> | ||||
#include <string> | #include <string> | ||||
#include <vector> | #include <vector> | ||||
// Implementation of the decay B- -> lambda p_bar pi according to | // Implementation of the decay B- -> lambda p_bar pi according to | ||||
// hep-ph/0204185, hep-ph/0211240 | // hep-ph/0204185, hep-ph/0211240 | ||||
// This model is intended to be applicable to all decays of the type B-> baryon baryon scalar | // This model is intended to be applicable to all decays of the type B-> baryon baryon scalar | ||||
class EvtBBScalar : public EvtDecayAmp { | |||||
public: | |||||
EvtBBScalar(); | |||||
std::string getName() override; | |||||
EvtBBScalar* clone() override; | |||||
void decay( EvtParticle* p ) override; | |||||
void init() override; | |||||
void initProbMax() override; | |||||
private: | |||||
struct FormFactor { | struct FormFactor { | ||||
double value; | double m_value; | ||||
double sigma1; | double m_sigma1; | ||||
double sigma2; | double m_sigma2; | ||||
double mV; | double m_mV; | ||||
}; | }; | ||||
enum Baryons | enum Baryons | ||||
{ | { | ||||
Lambda, | Lambda, | ||||
Proton, | Proton, | ||||
Neutron, | Neutron, | ||||
Sigma0, | Sigma0, | ||||
Sigma_minus, | Sigma_minus, | ||||
Xi0, | Xi0, | ||||
Xi_minus, | Xi_minus, | ||||
nBaryons | nBaryons | ||||
}; | }; | ||||
class EvtBBScalar : public EvtDecayAmp { | |||||
public: | |||||
EvtBBScalar(); | |||||
std::string getName() override; | |||||
EvtBBScalar* clone() override; | |||||
void decay( EvtParticle* p ) override; | |||||
void init() override; | |||||
void initProbMax() override; | |||||
private: | |||||
// used values of constants | // used values of constants | ||||
static const EvtComplex I; | static const EvtComplex m_I; | ||||
static const EvtComplex V_ub; | static const EvtComplex m_V_ub; | ||||
static const EvtComplex V_us_star; | static const EvtComplex m_V_us_star; | ||||
static const EvtComplex a1; | static const EvtComplex m_a1; | ||||
static const EvtComplex V_tb; | static const EvtComplex m_V_tb; | ||||
static const EvtComplex V_ts_star; | static const EvtComplex m_V_ts_star; | ||||
static const EvtComplex a4; | static const EvtComplex m_a4; | ||||
static const EvtComplex a6; | static const EvtComplex m_a6; | ||||
// used parameters in the calculation of the magnetic form factors | // used parameters in the calculation of the magnetic form factors | ||||
static const double x[]; | static const double m_x[]; | ||||
static const double y[]; | static const double m_y[]; | ||||
// quark masses as used in the model | // quark masses as used in the model | ||||
static const double m_s; | static const double m_ms; | ||||
static const double m_u; | static const double m_mu; | ||||
static const double m_b; | static const double m_mb; | ||||
// used to choose the right value for the form factor depending on the type of scalar | // used to choose the right m_value for the form factor depending on the type of scalar | ||||
std::string _scalarType; | std::string m_scalarType; | ||||
mutable std::map<std::string, FormFactor> _f0Map; | mutable std::map<std::string, FormFactor> m_f0Map; | ||||
mutable std::map<std::string, FormFactor> _f1Map; | mutable std::map<std::string, FormFactor> m_f1Map; | ||||
// only consider F1+F2 here | // only consider F1+F2 here | ||||
std::bitset<nBaryons> _baryonCombination; | std::bitset<nBaryons> m_baryonCombination; | ||||
void setKnownBaryonTypes( const EvtId& baryon ); | void setKnownBaryonTypes( const EvtId& baryon ); | ||||
double B_pi_f1( double t ) const; | double B_pi_f1( double t ) const; | ||||
double B_pi_f0( double t ) const; | double B_pi_f0( double t ) const; | ||||
double baryonF1F2( double t ) const; | double baryonF1F2( double t ) const; | ||||
double G_p( double t ) const; | double G_p( double t ) const; | ||||
double G_n( double t ) const; | double G_n( double t ) const; | ||||
double baryon_gA( double t ) const; | double baryon_gA( double t ) const; | ||||
double baryon_hA( double t ) const; | double baryon_hA( double t ) const; | ||||
double baryon_gP( double t ) const; | double baryon_gP( double t ) const; | ||||
double baryon_fS( double t ) const; | double baryon_fS( double t ) const; | ||||
double D_A( double t ) const; | double D_A( double t ) const; | ||||
double F_A( double t ) const; | double F_A( double t ) const; | ||||
double D_P( double t ) const; | double D_P( double t ) const; | ||||
double F_P( double t ) const; | double F_P( double t ) const; | ||||
double D_S( double t ) const; | double D_S( double t ) const; | ||||
double F_S( double t ) const; | double F_S( double t ) const; | ||||
// (mB1 - mB2)/(mq1 - mq1) | // (mB1 - mB2)/(mq1 - mq1) | ||||
double _massRatio; | double m_massRatio; | ||||
double _baryonMassSum; | double m_baryonMassSum; | ||||
double formFactorFit( double t, const std::vector<double>& params ) const; | double formFactorFit( double t, const std::vector<double>& params ) const; | ||||
static const EvtComplex const_B; | static const EvtComplex m_const_B; | ||||
static const EvtComplex const_C; | static const EvtComplex m_const_C; | ||||
const EvtVector4C amp_A( const EvtVector4R& p4B, const EvtVector4R& p4Scalar ); | const EvtVector4C amp_A( const EvtVector4R& p4B, const EvtVector4R& p4Scalar ); | ||||
const EvtComplex amp_B( const EvtDiracParticle* baryon1, | const EvtComplex amp_B( const EvtDiracParticle* baryon1, | ||||
const EvtDiracSpinor& b1Pol, | const EvtDiracSpinor& b1Pol, | ||||
const EvtDiracParticle* baryon2, | const EvtDiracParticle* baryon2, | ||||
const EvtDiracSpinor& b2Pol, int index ); | const EvtDiracSpinor& b2Pol, int index ); | ||||
const EvtComplex amp_B_vectorPart( const EvtDiracParticle* baryon1, | const EvtComplex amp_B_vectorPart( const EvtDiracParticle* baryon1, | ||||
const EvtDiracSpinor& b1Pol, | const EvtDiracSpinor& b1Pol, | ||||
const EvtDiracParticle* baryon2, | const EvtDiracParticle* baryon2, | ||||
Show All 20 Lines |