Belle II Software  release-05-02-19
generators
Collaboration diagram for generators:

Modules

 generators data objects
 
 generators modules
 

Classes

class  AAFHInterface
 Class to inferface AAFH/DIAG36 Generator written in Fortran. More...
 
class  BabayagaNLO
 C++ Interface for the Fortran Bhabha and exclusive two photon generator BABAYAGA.NLO. More...
 
class  BBBrem
 Generator for low scattering angle radiative Bhabha events (Beam-Beam Bremsstrahlung). More...
 
class  BHWide
 C++ Interface for the Fortran Bhabha scattering generator BHWide. More...
 
class  SGCosmic
 Class to generate tracks in the cosmics generator and store them in a MCParticle graph. More...
 
class  CRY
 C++ Interface for the generator CRY. More...
 
class  EvtBSemiTauonicDecayRateCalculator
 Class to calculate the differential decay rate, R(D), R(D*), polarizations of tau and D* using BSTD model based on [M. More...
 
class  EvtGenInterface
 Class to interface EvtGen. More...
 
class  EvtGenModelRegister
 Class to keep a register of all Belle2 EvtDecayBases. More...
 
class  EvtB0toKsKK
 Register Decay model EvtB0toKsKK. More...
 
class  EvtBCL
 The class provides the form factors for orbitally excited semileptonic decays. More...
 
class  EvtBCLFF
 BCL Form Factors. More...
 
class  EvtBSemiTauonic
 The EvtGen model of semi-tauonic B decays including new physics effects based on [M. More...
 
class  EvtBSemiTauonic2HDMType2
 The EvtGen model of semi-tauonic B decays including the charged higgs effect of 2HDM Type2 based on [M. More...
 
class  EvtBSemiTauonicAmplitude
 The base class for the calculation of the spin dependent amplitudes for the BSemiTauonic model based on [M. More...
 
class  EvtBSemiTauonicHelicityAmplitudeCalculator
 The class calculates the helicity amplitude of semi-tauonic B decays including new physics effects based on [M. More...
 
class  EvtBSemiTauonicScalarMesonAmplitude
 The class calculates the spin dependent amplitudes of B->Dtaunu decays for the BSemiTauonic model based on [M. More...
 
class  EvtBSemiTauonicVectorMesonAmplitude
 The class calculates the spin dependent amplitudes of B->D*taunu decays for the BSemiTauonic model based on [M. More...
 
class  EvtEtaFullDalitz
 Class for the simulation of the eta -> pi+pi-pi0 decay with an improved dalitz description. More...
 
class  EvtEtaPi0Dalitz
 Class for the simulation of the eta -> 3pi0 and eta'->3pi0 decays. More...
 
class  EvtEtaPrimeDalitz
 Class for the simulation of the eta' -> pi+ pi- eta and pi0 pi0 eta decays. More...
 
class  HepevtReader
 Class to read Hepevt files and store the content in a MCParticle graph. More...
 
class  HepMCReader
 Class to read HepMC files and store the content in a MCParticle graph. More...
 
class  KKGenInterface
 Interface class for using the KKMC generator. More...
 
class  KoralW
 C++ interface for the FORTRAN 4-fermion final state generator KoralW. More...
 
class  LHEReader
 Class to read LHE files and store the content in a MCParticle graph. More...
 
class  ParticleGun
 Class to generate tracks in the particle gun and store them in a MCParticle graph. More...
 
class  Phokhara
 C++ Interface for the Fortran generator Phokhara. More...
 
class  ReaderSAD
 Class to read files that have been created by SAD and store their content in a MCParticle graph. More...
 
class  Teegg
 C++ Interface for the Fortran generator TEEGG. More...
 
class  EvtBCLFFTest
 The fixture for testing the EvtBCLFF. More...
 
class  ParticleGunTest
 The fixture for testing the Particlegun. More...
 
class  TouschekReaderTURTLE
 Class to read Touschek files and store their content in a MCParticle graph. More...
 
class  Part_cont
 
class  Part_gen
 
class  Sutool
 
class  Interps
 
class  TrepsB
 
class  UtrepsB
 Input from TREPS generator for ee->eeff. More...
 
class  InitialParticleGeneration
 Generate Collision. More...
 

Macros

#define B2_EVTGEN_REGISTER_MODEL(classname)
 Class to register B2_EVTGEN_REGISTER_MODEL. More...
 

Functions

 B2_EVTGEN_REGISTER_MODEL (EvtB0toKsKK)
 register the model in EvtGen
 
double s13_min (const double &s12, const double &M, const double &m1, const double &m2, const double &m3)
 minimum s13
 
double s13_max (const double &s12, const double &M, const double &m1, const double &m2, const double &m3)
 maximum s13
 
 B2_EVTGEN_REGISTER_MODEL (EvtBCL)
 register the model in EvtGen
 
 B2_EVTGEN_REGISTER_MODEL (EvtBSemiTauonic)
 register the model in EvtGen
 
 B2_EVTGEN_REGISTER_MODEL (EvtBSemiTauonic2HDMType2)
 register the model in EvtGen
 
 B2_EVTGEN_REGISTER_MODEL (EvtEtaFullDalitz)
 register the model in EvtGen
 
 B2_EVTGEN_REGISTER_MODEL (EvtEtaPi0Dalitz)
 register the model in EvtGen
 
 B2_EVTGEN_REGISTER_MODEL (EvtEtaPrimeDalitz)
 register the model in EvtGen
 
 TEST_F (EvtBCLFFTest, Scalar)
 Test calculation of scalar BCL FF.
 
 TEST_F (EvtBCLFFTest, Vector)
 Test calculation of vector BCL FF.
 
 TEST_F (ParticleGunTest, MomentumDistributions)
 Tests momentum generation parameters.
 
 TEST_F (ParticleGunTest, VertexDistributions)
 Tests vertex generation parameters.
 
 TEST_F (ParticleGunTest, AngularDistributions)
 Tests angular generation parameters.
 
void aaubrn_ (float *, float[20], int *, float *)
 
void init ()
 Initializes the generator.
 
void generateEvent (MCParticleGraph &mcGraph)
 Generates one single event. More...
 
void term ()
 Terminates the generator. More...
 
std::string getName ()
 Get function Name

 
EvtDecayBase * clone ()
 Clone the decay of B0toKsKK.
 
void init ()
 Initialize standard stream objects

 
void initProbMax ()
 Initialize standard stream objects for probability function

 
void decay (EvtParticle *p)
 Member of particle in EvtGen.
 
EvtVector4R umu (const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
 Function 4Vector umu.
 
EvtVector4R Smu (const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
 Function 4Vector Smu.
 
EvtVector4R Lmu (const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
 Function 4Vector Lmu.
 
EvtTensor4C gmunu_tilde (const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
 Function Tensor gmunu

 
EvtTensor4C Tmunu (const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
 Function Tensor Tmunu

 
EvtTensor4C Multiply (const EvtTensor4C &t1, const EvtTensor4C &t2)
 Function Tensor Multiply

 
EvtTensor4C RaiseIndices (const EvtTensor4C &t)
 Function RaiseIndices

 
void RaiseIndex (EvtVector4R &vector)
 Member function RaiseIndices.
 
EvtTensor4C Mmunu (const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
 Function Tensor Mmunu.
 
double BWBF (const double &q, const unsigned int &L)
 Meson radius

 
double BWBF (const double &q, const double &q0, const unsigned int &L)
 Meson radius

 
EvtComplex BreitWigner (const double &m, const double &m0, const double &Gamma0, const double &q, const double &q0, const unsigned int &L)
 BreitWigner Shape.
 
EvtVector4R Boost (const EvtVector4R &p4, const EvtVector4R &boost)
 Parameter for boost frame

 
double p (const double &mab, const double &M, const double &mc)
 Constants p

 
double q (const double &mab, const double &ma, const double &mb)
 Constants q.
 
EvtComplex Flatte_k (const double &s, const double &m_h)
 Constant Flatte_k.
 
EvtComplex Flatte (const double &m, const double &m0)
 Constant Flatte.
 
EvtComplex A_f0ks (const EvtVector4R &p4ks, const EvtVector4R &p4kp, const EvtVector4R &p4km)
 A_f0ks is amplitude of f0.
 
EvtComplex A_phiks (const EvtVector4R &p4ks, const EvtVector4R &p4kp, const EvtVector4R &p4km)
 A_phiks is amplitude of phi.
 
EvtComplex A_fxks (const EvtVector4R &p4ks, const EvtVector4R &p4kp, const EvtVector4R &p4km)
 A_fxks is amplitude of fxks.
 
EvtComplex A_chic0ks (const EvtVector4R &p4ks, const EvtVector4R &p4kp, const EvtVector4R &p4km)
 A_chic0ks is amplitude of chic0ks.
 
EvtComplex A_kknr (const EvtVector4R &p4k1, const EvtVector4R &p4k2, const double &alpha_kk)
 A_kknr is amplitude of kknr.
 
 EvtBCL ()
 Default constructor.
 
virtual ~EvtBCL ()
 virtual destructor
 
std::string getName ()
 Returns name of module.
 
EvtDecayBase * clone ()
 Clones module.
 
void decay (EvtParticle *p)
 Creates a decay.
 
void initProbMax ()
 Sets maximal probab.
 
void init ()
 Initializes module.
 
 EvtBCLFF (int numarg, double *arglist)
 constructor
 
void getscalarff (EvtId parent, EvtId daughter, double t, double, double *fpf, double *f0f)
 Scalar FF's. More...
 
void getvectorff (EvtId parent, EvtId daughter, double t, double, double *a1f, double *a2f, double *vf, double *a0f)
 Vector FF's. More...
 
void gettensorff (EvtId parent, EvtId daughter, double t, double, double *hf, double *kf, double *bp, double *bm)
 Not Implemented.
 
void getbaryonff (EvtId, EvtId, double, double, double *, double *, double *, double *)
 Not Implemented.
 
void getdiracff (EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *)
 Not Implemented.
 
void getraritaff (EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *, double *, double *)
 Not Implemented.
 
 EvtBSemiTauonic ()
 The default constructor

 
virtual ~EvtBSemiTauonic ()
 The destructor

 
std::string getName ()
 The function returns the model name. More...
 
EvtDecayBase * clone ()
 The function makes a copy of an EvtBSTD object. More...
 
void decay (EvtParticle *p)
 The function evaluates the decay amplitude of the parent particle. More...
 
void initProbMax ()
 The function sets the maximum value of the probability.
 
void init ()
 The function initializes the decay. More...
 
 EvtBSemiTauonic2HDMType2 ()
 The default constructor

 
virtual ~EvtBSemiTauonic2HDMType2 ()
 The destructor

 
std::string getName ()
 The function returns the model name. More...
 
EvtDecayBase * clone ()
 The function makes a copy of an EvtBSemiTauonic2HDMType2 object. More...
 
void decay (EvtParticle *p)
 The function evaluates the decay amplitude of the parent particle. More...
 
void initProbMax ()
 The function sets the maximum value of the probability. More...
 
void init ()
 The function initializes the decay. More...
 
EvtSpinDensity RotateToHelicityBasisInBoostedFrame (const EvtParticle *p, EvtVector4R p4boost)
 The function calculates the rotation matrix to convert the spin basis to the helicity basis in the boosted frame. More...
 
double CalcMaxProb (EvtId parent, EvtId meson, EvtId lepton, EvtId nudaug, EvtBSemiTauonicHelicityAmplitudeCalculator *HelicityAmplitudeCalculator)
 The function calculates the maximum probability. More...
 
 EvtBSemiTauonicHelicityAmplitudeCalculator ()
 The default constructor. More...
 
 EvtBSemiTauonicHelicityAmplitudeCalculator (const double rho12, const double rhoA12, const double ffR11, const double ffR21, const double AS1, const double AR3, const double bottomMass, const double charmMass, const EvtComplex &CV1, const EvtComplex &CV2, const EvtComplex &CS1, const EvtComplex &CS2, const EvtComplex &CT, const double parentMass, const double DMass, const double DstarMass)
 The constructor with HQET form factor parameters, Wilson coefficients of new physics contributions and parent B, daughter D(*) meson masses. More...
 
EvtComplex helAmp (double mtau, int tauhel, int Dhel, double w, double costau) const
 The function calculates the helicity amplitude. More...
 
EvtComplex helAmp (const EvtComplex &CV1, const EvtComplex &CV2, const EvtComplex &CS1, const EvtComplex &CS2, const EvtComplex &CT, double mtau, int tauhel, int Dhel, double w, double costau) const
 The function calculates helicity amplitudes with given Wilson coefficients. More...
 
double Lep (const double mtau, int tauhel, int whel, double q2, double costau) const
 The function to calculate the Leptonic Amplitudes for B->D*taunu decay of the vector type contribution. More...
 
double Lep (const double mtau, int tauhel, double q2, double costau) const
 The function to calculate the Leptonic Amplitudes for B->Dtaunu decay of the scalar type contribution. More...
 
double Lep (const double mtau, int tauhel, int whel1, int whel2, double q2, double costau) const
 The function to calculate the Leptonic Amplitudes for B->D*taunu decay of the tensor type contribution. More...
 
double HadV1 (int Dhel, int whel, double w) const
 The function to calculate the Hadronic Amplitudes of left handed (V-A) type contribution. More...
 
double HadV2 (int Dhel, int whel, double w) const
 The function to calculate the Hadronic Amplitudes of right handed (V+A) type contribution. More...
 
double HadS1 (int Dhel, double w) const
 The function to calculate the Hadronic Amplitudes of scalar (S+P) type contribution. More...
 
double HadS2 (int Dhel, double w) const
 The function to calculate the Hadronic Amplitudes of scalar (S-P) type contribution. More...
 
double HadT (int Dhel, int whel1, int whel2, double w) const
 The function to calculate the Hadronic Amplitudes of tensor type contribution. More...
 
double helampSM (double mtau, int tauhel, int Dhel, double w, double costau) const
 Helicity Amplitudes of SM (left handed) contribution. More...
 
double helampV1 (double mtau, int tauhel, int Dhel, double w, double costau) const
 Helicity Amplitudes of left handed (V-A) contribution. More...
 
double helampV2 (double mtau, int tauhel, int Dhel, double w, double costau) const
 Helicity Amplitudes of right handed (V+A) contribution. More...
 
double helampS1 (double mtau, int tauhel, int Dhel, double w, double costau) const
 Helicity Amplitudes of scalar (S+P) type contribution. More...
 
double helampS2 (double mtau, int tauhel, int Dhel, double w, double costau) const
 Helicity Amplitudes of scalar (S-P) type contribution. More...
 
double helampT (double mtau, int tauhel, int Dhel, double w, double costau) const
 Helicity Amplitudes of tensor type contribution. More...
 
double hp (double w) const
 HQET D vector form factor h_+(w). More...
 
double hm (double w) const
 HQET D vector form factor h_-(w). More...
 
double hA1 (double w) const
 HQET D* axial vector form factor h_{A1}(w). More...
 
double hV (double w) const
 HQET D* axial vector form factor h_V(w). More...
 
double hA2 (double w) const
 HQET D* axial vector form factor h_{A2}(w). More...
 
double hA3 (double w) const
 HQET D* axial vector form factor h_{A3}(w). More...
 
double hS (double w) const
 D scalar form factor h_S(w) in terms of vector form factors. More...
 
double hP (double w) const
 D* pseudo scalar form factor h_P(w) in terms of axial vector form factors. More...
 
double hT (double w) const
 D tensor form factor h_T(w) in terms of vector form factors. More...
 
double hT1 (double w) const
 D* tensor form factor h_{T1}(w) in terms of axial vector form factors. More...
 
double hT2 (double w) const
 D* tensor form factor h_{T2}(w). More...
 
double hT3 (double w) const
 D* tensor form factor h_{T3}(w). More...
 
double z (double w) const
 CLN form factor z. More...
 
double ffV1 (double w) const
 CLN form factor V1. More...
 
double ffS1 (double w) const
 CLN form factor S1. More...
 
double ffA1 (double w) const
 CLN form factor A1. More...
 
double ffR1 (double w) const
 CLN form factor R1. More...
 
double ffR2 (double w) const
 CLN form factor R2. More...
 
double ffR3 (double w) const
 CLN form factor R3. More...
 
double dS1 (double w) const
 HQET correction factor for the scalar form factor for B->Dtaunu. More...
 
double dR3 (double w) const
 HQET correction factor for the scalar form factor for B->D*taunu. More...
 
double mD (int Dhel) const
 Daughter D(*) meson mass. More...
 
double v (double mtau, double q2) const
 Function to calculate the tau velocity. More...
 
double qh2 (int Dhel, double w) const
 Function to calculate the q^2 divided by the square of parent mass (m_B^2). More...
 
double q2 (int Dhel, double w) const
 Function to calculate the q^2 of the decay (square of l+nu invariant mass). More...
 
bool chkDhel (int Dhel) const
 sanity checkers More...
 
bool chkwhel (int whel) const
 Function to check if whel is in the valid range. More...
 
bool chktauhel (int tauhel) const
 Function to check if tauhel is in the valid range. More...
 
void CalcAmp (EvtParticle *parent, EvtAmp &amp, EvtBSemiTauonicHelicityAmplitudeCalculator *HelicityAmplitudeCalculator) override
 The function calculates the spin dependent amplitude. More...
 
void CalcAmp (EvtParticle *parent, EvtAmp &amp, EvtBSemiTauonicHelicityAmplitudeCalculator *HelicityAmplitudeCalculator) override
 The function calculates the spin dependent amplitude. More...
 
virtual ~EvtEtaFullDalitz ()
 Default Destructor.
 
std::string getName ()
 Returns the model name: ETA_FULLDALITZ.
 
EvtDecayBase * clone ()
 Makes a copy of the pointer to the class.
 
void init ()
 Checks that the number of input parameters are correct: More...
 
void initProbMax ()
 Sets the Maximum probability for the PHSP reweight. More...
 
void decay (EvtParticle *p)
 Function that implements the energy-dependent Dalitz.
 
virtual ~EvtEtaPi0Dalitz ()
 Default destructor.
 
std::string getName ()
 Returns the name of the model: ETA_PI0DALITZ.
 
EvtDecayBase * clone ()
 Makes a copy of the class object.
 
void init ()
 Checks that the number of input parameters are correct: More...
 
void initProbMax ()
 Sets the Maximum probability for the PHSP reweight. More...
 
void decay (EvtParticle *p)
 Function that implements the energy-dependent Dalitz.
 
virtual ~EvtEtaPrimeDalitz ()
 Default destructor.
 
std::string getName ()
 Returns the model name: ETAPRIME_DALITZ.
 
EvtDecayBase * clone ()
 Returns a copy of the class object.
 
void init ()
 Checks that the number of input parameters are correct: More...
 
void initProbMax ()
 Sets the Maximum probability for the PHSP reweight. More...
 
void decay (EvtParticle *p)
 Function that implements the energy-dependent Dalitz.
 
double dGammadwdcostau (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau, int tauhel, int Dhel, double w, double costau)
 Function calculates the differential decay rate dGamma/dw/dcostau. More...
 
double dGammadw (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau, int tauhel, int Dhel, double w)
 Function calculates the differential decay rate dGamma/dw, integrated for costau. More...
 
double dGammadcostau (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau, int tauhel, int Dhel, double costau)
 Function calculates the differential decay rate dGamma/dcostau, integrated for w. More...
 
double Gamma (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau, int tauhel, int Dhel)
 Function calculates the helicity dependent decay rate Gamma, integrated for w and costau. More...
 
double GammaD (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau)
 Function calculates the decay rate Gamma for Dtaunu decay, integrated for w and costau and summed for helicities. More...
 
double GammaDstar (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau)
 Function calculates the differential decay rate Gamma for D*taunu decay, integrated for w and costau and summed for helicities. More...
 
double GammaSMD (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mlep=0.0005110)
 Function calculates the SM decay rate Gamma for Dlnu decay, integrated for w and costau and summed for helicities. More...
 
double GammaSMDstar (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mlep=0.0005110)
 Function calculates the SM decay rate Gamma for D*lnu decay, integrated for w and costau and summed for helicities. More...
 
double RGammaD (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mtau, const double mlep=0.0005110)
 Function calculates the ratio of Br(B->Dtaunu)/Br(B->Dlnu), R(D). More...
 
double RGammaDstar (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mtau, const double mlep=0.0005110)
 Function calculates the ratio of Br(B->Dtaunu)/Br(B->Dlnu), R(D*). More...
 
double PtauD (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mtau)
 Function calculates the polarization of tau, (RH - LH)/(LH + RH), in B->Dtaunu decay. More...
 
double PtauDstar (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mtau)
 Function calculates the polarization of tau, (RH - LH)/(LH + RH), in B->D*taunu decay. More...
 
double PDstar (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mtau)
 Function calculates the polarization of D*, longitudinal/(longitudinal + transverse), in B->D*taunu decay. More...
 
double pf (const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau, int Dhel, double w)
 Phase space factor, which is multiplied to the helicity amplitude to calculate the decay rate. More...
 
double EvaluateByW (double *x, double *param)
 Function used internally for numerical integration.
 
double EvaluateByCostau (double *x, double *param)
 Function used internally for numerical integration.
 
double EvaluateBy2D (double *x, double *param)
 Function used internally for numerical integration.
 
static EvtGenModelRegistergetInstance ()
 Return reference to the instance. More...
 
static std::list< EvtDecayBase * > getModels ()
 Return a list of models. More...
 
void checkVariable (const std::string &name, const std::map< int, bool > &allowed, ParticleGun::EDistribution &dist, std::vector< double > &pars)
 check one of the variables given a list of allowed and excluded distributions
 
 Part_cont (int, double, double, int, double)
 
 Part_cont (int, double, double)
 
double p2bdy (double, double, double, int &)
 
int pdecy (double, double *, const TVector3 &, TLorentzVector *, int)
 
void rotate (TLorentzVector &, double, double)
 
float interp (float, float, float, float, float)
 
int poisson (double)
 
void initp (void)
 
void create_hist (void)
 
void wtable ()
 
double wtable (int)
 
void setW (double)
 
void updateW (void)
 
double twlumi (void)
 
double twlumi_n (void)
 
double tpgetd (int, double, double, double, double)
 
double tpgetz (int)
 
int event_gen (int)
 
double tpgetq (double, double, double)
 
void tpgetm (Part_cont *, int)
 
void terminate (void) const
 
double tpdfnc (double) const
 
double simpsny (double, double, double, int) const
 
double tpdfy (double, double) const
 
double simpsnz (double, double, double, int) const
 
double tpdfz (double, double) const
 
double tpxint (double, double, double) const
 
double tpf (double, double) const
 
double simpsn1 (double, double, int) const
 
double simpsn2 (double, double, int) const
 
double tplogf (double) const
 
virtual double tpform (double, double) const
 
virtual double tpangd (double, double)
 
virtual int tpuser (TLorentzVector, TLorentzVector, Part_gen *, int)
 
void trkpsh (int, TLorentzVector, TLorentzVector, Part_gen *, int) const
 
void print_event (void) const
 
void tpkin3 (Part_gen *, int, int, int, double &, double &, double &, double &, double &, double &, double &)
 
void tpkin4 (Part_gen *, int, int, int, int, double &, double &, double &, double &, double &, double &, double &, double &, double &, double &, double &, double &)
 
void tpkin5 (Part_gen *, int, int, int, int, int, double &, double &, double &, double &, double &, double &, TVector3 &, TVector3 &, TVector3 &, double &)
 
void initialize ()
 function to be executed on initialize()
 
TVector3 generateVertex (const TVector3 &initial, const TMatrixDSym &cov, MultivariateNormalGenerator &gen)
 generate the vertex More...
 
TLorentzVector generateBeam (const TLorentzVector &initial, const TMatrixDSym &cov, MultivariateNormalGenerator &gen)
 generate 4 vector for one beam More...
 
MCInitialParticlesgenerate ()
 Generate a new event.
 
MCInitialParticlesgenerate (int allowedFlags)
 Generate a new event wit a particular set of allowed flags. More...
 
TVector3 updateVertex (bool force=false)
 Update the vertex position: More...
 

Variables

static EvtGen * s_evtgen = nullptr
 pointer to the evtgen instance
 

Detailed Description

Macro Definition Documentation

◆ B2_EVTGEN_REGISTER_MODEL

#define B2_EVTGEN_REGISTER_MODEL (   classname)
Value:
namespace {\
Belle2::EvtGenModelRegister::Factory<classname> EvtGenModelFactory_##classname; \
}

Class to register B2_EVTGEN_REGISTER_MODEL.

Definition at line 77 of file EvtGenModelRegister.h.

Function Documentation

◆ CalcAmp() [1/2]

void CalcAmp ( EvtParticle *  parent,
EvtAmp &  amp,
EvtBSemiTauonicHelicityAmplitudeCalculator HelicityAmplitudeCalculator 
)
overridevirtual

The function calculates the spin dependent amplitude.

Parameters
parenta pointer to the parent particle.
ampa pointer to fill the calculated spin dependent amplitude.
HelicityAmplitudeCalculatora pointer to the calculator of the helicity dependent amplitude. The function calculate the spin dependent amplitude of the semi-tauonic decay to a scalar meson (D meson).

Implements EvtBSemiTauonicAmplitude.

Definition at line 35 of file EvtBSemiTauonicScalarMesonAmplitude.cc.

97  {
98  for (int lhel = 0; lhel < 2; lhel++) {
99  // b -> l
100  if (l_num == EM || l_num == MUM || l_num == TAUM) {
101  spinamp[lsp] += l_SpFromHel[lsp][lhel] * helamp[lhel];
102  }
103  // b-bar -> anti-l
104  else {
105  spinamp[lsp] += l_SpFromHel[lsp][lhel] * (lhel == 0 ? +1 : -1) * conj(helamp[1 - lhel]);
106  }
107  }
108  }
109 
110  amp.vertex(0, spinamp[0]);
111  amp.vertex(1, spinamp[1]);
112 
113  // consistency check
114  double helprob = abs2(helamp[0]) + abs2(helamp[1]);
115  double spinprob = abs2(spinamp[0]) + abs2(spinamp[1]);
116  if (fabs(helprob - spinprob) / helprob > 1E-6 || !finite(helprob) || !finite(spinprob)) {
117  B2ERROR("EvtBSemiTauonicScalarMesonAmplitude total helicity prob does not match with total spin prob.");
118  B2ERROR("helprob: " << helprob << " spinprob: " << spinprob);
119  B2ERROR("w: " << w << " costau: " << costau << " hel probs: " << abs2(helamp[0])
120  << "\t" << abs2(helamp[1])
121  << "\t" << abs2(helamp[0]) + abs2(helamp[1]));
122 
123  B2ERROR("w: " << w << " costau: " << costau << " spin probs: " << abs2(spinamp[0])
124  << "\t" << abs2(spinamp[1])
125  << "\t" << abs2(spinamp[0]) + abs2(spinamp[1]));
126 
127 // EvtGenReport(EVTGEN_ERROR, "EvtGen") <<
128 // "EvtBSemiTauonicScalarMesonAmplitude total helicity prob does not match with total spin prob."
129 // << std::endl;
130 // EvtGenReport(EVTGEN_ERROR, "EvtGen") << "helprob: "<<helprob<<" spinprob: "<<spinprob<<std::endl;
131 // EvtGenReport(EVTGEN_ERROR, "EvtGen") << "w: "<<w<<" costau: "<<costau
132 // <<" hel probs: "<<abs2(helamp[0])
133 // <<"\t"<<abs2(helamp[1])
134 // <<"\t"<<abs2(helamp[0])+abs2(helamp[1])<<std::endl;
135 //
136 // EvtGenReport(EVTGEN_ERROR, "EvtGen") << "w: "<<w<<" costau: "<<costau
137 // <<" spin probs: "<<abs2(spinamp[0])
138 // <<"\t"<<abs2(spinamp[1])
139 // <<"\t"<<abs2(spinamp[0])+abs2(spinamp[1])<<std::endl;
140  // abort();
141  }
142 
143  return;
144  }
145 
147 } // Belle 2 Namespace

◆ CalcAmp() [2/2]

void CalcAmp ( EvtParticle *  parent,
EvtAmp &  amp,
EvtBSemiTauonicHelicityAmplitudeCalculator HelicityAmplitudeCalculator 
)
overridevirtual

The function calculates the spin dependent amplitude.

Parameters
parenta pointer to the parent particle.
ampa pointer to fill the calculated spin dependent amplitude.
HelicityAmplitudeCalculatora pointer to the calculator of the helicity dependent amplitude. The function calculate the spin dependent amplitude of the semi-tauonic decay to a vector meson (D* meson).

Implements EvtBSemiTauonicAmplitude.

Definition at line 34 of file EvtBSemiTauonicVectorMesonAmplitude.cc.

119  {
120  for (int lsp = 0; lsp < 2; lsp++) {
121  for (int dhel = 0; dhel < 3; dhel++) {
122  for (int lhel = 0; lhel < 2; lhel++) {
123  // b -> l, D*+
124  if (l_num == EM || l_num == MUM || l_num == TAUM) {
125  spinamp[dsp][lsp] += l_SpFromHel[lsp][lhel] * D_SpFromHel[dsp][dhel] * helamp[dhel][lhel];
126  }
127  // b-bar -> anti-l, D*-
128  else {
129  spinamp[dsp][lsp] += l_SpFromHel[lsp][lhel] * D_SpFromHel[dsp][dhel] * (lhel == 0 ? +1 : -1) * (dhel == 1 ? +1 : -1)
130  * conj(helamp[2 - dhel][1 - lhel]);
131  }
132  }
133  }
134  }
135  }
136 
137  amp.vertex(0, 0, spinamp[0][0]);
138  amp.vertex(0, 1, spinamp[0][1]);
139  amp.vertex(1, 0, spinamp[1][0]);
140  amp.vertex(1, 1, spinamp[1][1]);
141  amp.vertex(2, 0, spinamp[2][0]);
142  amp.vertex(2, 1, spinamp[2][1]);
143 
144  // Set D* mass to its original value
145  CalcHelAmp->setMDst(orig_mD);
146 
147  // consistency check
148  double helprob = abs2(helamp[0][0]) + abs2(helamp[0][1]) + abs2(helamp[1][0]) + abs2(helamp[1][1]) + abs2(helamp[2][0])
149  + abs2(helamp[2][1]);
150  double spinprob = abs2(spinamp[0][0]) + abs2(spinamp[0][1]) + abs2(spinamp[1][0]) + abs2(spinamp[1][1])
151  + abs2(spinamp[2][0]) + abs2(spinamp[2][1]);
152  if (fabs(helprob - spinprob) / helprob > 1E-6 || !finite(helprob) || !finite(spinprob)) {
153  B2ERROR("EvtBSemiTauonicVectorMesonAmplitude total helicity prob does not match with total spin prob, or nan.");
154  B2ERROR("helprob: " << helprob << " spinprob: " << spinprob);
155  B2ERROR("w: " << w << " costau: " << costau << " hel probs: "
156  << abs2(helamp[0][0]) << "\t" << abs2(helamp[0][1]) << "\t"
157  << abs2(helamp[1][0]) << "\t" << abs2(helamp[1][1]) << "\t"
158  << abs2(helamp[2][0]) << "\t" << abs2(helamp[2][1]) << "\t"
159  << abs2(helamp[0][0]) + abs2(helamp[0][1]) + abs2(helamp[1][0]) + abs2(helamp[1][1]) + abs2(helamp[2][0]) + abs2(helamp[2][1])
160  );
161 
162  B2ERROR("w: " << w << " costau: " << costau << " spin probs: "
163  << abs2(spinamp[0][0]) << "\t" << abs2(spinamp[0][1]) << "\t"
164  << abs2(spinamp[1][0]) << "\t" << abs2(spinamp[1][1]) << "\t"
165  << abs2(spinamp[2][0]) << "\t" << abs2(spinamp[2][1]) << "\t"
166  << abs2(spinamp[0][0]) + abs2(spinamp[0][1]) + abs2(spinamp[1][0]) + abs2(spinamp[1][1]) + abs2(spinamp[2][0]) + abs2(spinamp[2][1])
167  );
168 
169 // EvtGenReport(EVTGEN_ERROR, "EvtGen") <<
170 // "EvtBSemiTauonicVectorMesonAmplitude total helicity prob does not match with total spin prob, or nan."
171 // << std::endl;
172 // EvtGenReport(EVTGEN_ERROR, "EvtGen") "helprob: "<<helprob<<" spinprob: "<<spinprob<< std::endl;
173 // EvtGenReport(EVTGEN_ERROR, "EvtGen") "w: "<<w<<" costau: "<<costau<<" hel probs: "
174 // <<abs2(helamp[0][0])<<"\t"<<abs2(helamp[0][1])<<"\t"
175 // <<abs2(helamp[1][0])<<"\t"<<abs2(helamp[1][1])<<"\t"
176 // <<abs2(helamp[2][0])<<"\t"<<abs2(helamp[2][1])<<"\t"
177 // <<abs2(helamp[0][0]) + abs2(helamp[0][1]) + abs2(helamp[1][0]) + abs2(helamp[1][1]) + abs2(helamp[2][0]) + abs2(helamp[2][1])
178 // <<std::endl;
179 //
180 // EvtGenReport(EVTGEN_ERROR, "EvtGen") "w: "<<w<<" costau: "<<costau<<" spin probs: "
181 // <<abs2(spinamp[0][0])<<"\t"<<abs2(spinamp[0][1])<<"\t"
182 // <<abs2(spinamp[1][0])<<"\t"<<abs2(spinamp[1][1])<<"\t"
183 // <<abs2(spinamp[2][0])<<"\t"<<abs2(spinamp[2][1])<<"\t"
184 // <<abs2(spinamp[0][0]) + abs2(spinamp[0][1]) + abs2(spinamp[1][0]) + abs2(spinamp[1][1]) + abs2(spinamp[2][0]) + abs2(spinamp[2][1])
185 // <<std::endl;
186 
187  // Debugging information
188 // fprintf(stderr, "q2 by Helamp: %g\n", CalcHelAmp->q2(1, w));
189 // fprintf(stderr, "helampSM by Helamp: %g\n", CalcHelAmp->helampSM(ml, 1, 1, w, costau));
190 // fprintf(stderr, "Lep by Helamp: %g\n", CalcHelAmp->Lep(ml, 1, 1, CalcHelAmp->q2(1, w), costau));
191 // fprintf(stderr, "HadV2 by Helamp: %g\n", CalcHelAmp->HadV2(1, 1, w));
192 // fprintf(stderr, "v by Helamp: %g\n", CalcHelAmp->v(ml, CalcHelAmp->v(ml, CalcHelAmp->q2(1, w))));
193 //
194 // fprintf(stderr, "B mass : %g \t nominal %g\n", gmB, EvtPDL::getMeanMass(p->getId()));
195 // fprintf(stderr, "D mass : %g \t nominal %g\n", gmd, EvtPDL::getMeanMass(p->getDaug(0)->getId()));
196 // fprintf(stderr, "lepton mass : %g \t nominal %g\n", ml, EvtPDL::getMeanMass(p->getDaug(1)->getId()));
197 
198  // abort();
199  }
200 
201  return;
202  }
203 
205 } // Belle 2 Namespace

◆ CalcMaxProb()

double CalcMaxProb ( EvtId  parent,
EvtId  meson,
EvtId  lepton,
EvtId  nudaug,
EvtBSemiTauonicHelicityAmplitudeCalculator HelicityAmplitudeCalculator 
)

The function calculates the maximum probability.

Parameters
parenta ID of the parent meson.
mesona ID of the daughter meson.
leptona ID of the daughter lepton.
nudauga ID of the daughter neutrino.
HelicityAmplitudeCalculatora pointer to the calculator of the helicity dependent amplitude.
Returns
the maxmum probability multiplied by 1.1. The function scan the q^2 and angle between the daughter meson and lepton and search for the the maximum probability value.

Definition at line 87 of file EvtBSemiTauonicAmplitude.cc.

152  {
153 
154  mass[0] = EvtPDL::getMeanMass(meson);
155  mass[1] = EvtPDL::getMeanMass(lepton);
156  mass[2] = EvtPDL::getMeanMass(nudaug);
157  if (massiter == 1) {
158  mass[0] = EvtPDL::getMinMass(meson);
159  }
160  if (massiter == 2) {
161  mass[0] = EvtPDL::getMaxMass(meson);
162  if ((mass[0] + mass[1] + mass[2]) > m) mass[0] = m - mass[1] - mass[2] - 0.00001;
163  }
164 
165  double q2min = mass[1] * mass[1]; // limit to minimum=lepton mass square
166  double q2max = (m - mass[0]) * (m - mass[0]);
167  double dq2 = (q2max - q2min) / 25;
168 // std::cout<<"m: "<<m<<" mass[0]: "<<mass[0]<<" q2min: "<<q2min<<" q2max: "<<q2max<<std::endl;
169 
170  //loop over q2
171 
172  for (i = 0; i < 25; i++) {
173  q2 = q2min + (i + 0.5) * dq2; // <-- !! not start from unphysical q2=0 !!
174 
175  erho = (m * m + mass[0] * mass[0] - q2) / (2.0 * m);
176 
177  prho = sqrt(erho * erho - mass[0] * mass[0]);
178 
179  p4meson.set(erho, 0.0, 0.0, -1.0 * prho);
180  p4w.set(m - erho, 0.0, 0.0, prho);
181 
182 // std::cout<<"q2: "<<q2<<std::endl;
183 // std::cout<<"p4meson: "<<p4meson<<std::endl;
184 
185  //This is in the W rest frame
186  elepton = (q2 + mass[1] * mass[1]) / (2.0 * sqrt(q2));
187  plepton = sqrt(elepton * elepton - mass[1] * mass[1]);
188 // std::cout<<"elepton: "<<elepton<<" plepton: "<<plepton<<std::endl;
189 
190  double probctl[3];
191 
192  for (j = 0; j < 3; j++) {
193 
194  costl = 0.99 * (j - 1.0);
195 
196  //These are in the W rest frame. Need to boost out into
197  //the B frame.
198  p4lepton.set(elepton, 0.0,
199  plepton * sqrt(1.0 - costl * costl), plepton * costl);
200  p4nu.set(plepton, 0.0,
201  -1.0 * plepton * sqrt(1.0 - costl * costl), -1.0 * plepton * costl);
202 
203  EvtVector4R boost((m - erho), 0.0, 0.0, 1.0 * prho);
204  p4lepton = boostTo(p4lepton, boost);
205  p4nu = boostTo(p4nu, boost);
206 
207  //Now initialize the daughters...
208 
209  daughter->init(meson, p4meson);
210  lep->init(lepton, p4lepton);
211  trino->init(nudaug, p4nu);
212 
213  CalcAmp(root_part, amp, CalcHelAmp);
214 
215  //Now find the probability at this q2 and cos theta lepton point
216  //and compare to maxfoundprob.
217 
218  //Do a little magic to get the probability!!
219  prob = rho.normalizedProb(amp.getSpinDensity());
220 
221  probctl[j] = prob;
222  }
223 
224  //probclt contains prob at ctl=-1,0,1.
225  //prob=a+b*ctl+c*ctl^2
226 
227  double a = probctl[1];
228  double b = 0.5 * (probctl[2] - probctl[0]);
229  double c = 0.5 * (probctl[2] + probctl[0]) - probctl[1];
230 
231  prob = probctl[0];
232  if (probctl[1] > prob) prob = probctl[1];
233  if (probctl[2] > prob) prob = probctl[2];
234 
235  if (fabs(c) > 1e-20) {
236  double ctlx = -0.5 * b / c;
237  if (fabs(ctlx) < 1.0) {
238  double probtmp = a + b * ctlx + c * ctlx * ctlx;
239  if (probtmp > prob) prob = probtmp;
240  }
241 
242  }
243 
244  if (prob > maxfoundprob) {
245  maxfoundprob = prob;
246  }
247 
248  }
249  if (EvtPDL::getWidth(meson) <= 0.0) {
250  //if the particle is narrow dont bother with changing the mass.
251  massiter = 4;
252  }
253 
254  }
255  root_part->deleteTree();
256 
257  maxfoundprob *= 1.1;
258  return maxfoundprob;
259 
260  }
261 
263 } // Belle 2 Namespace

◆ chkDhel()

bool chkDhel ( int  Dhel) const
private

sanity checkers

Function to check if Dhel is in the valid range.

Parameters
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.

Definition at line 538 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

543  {

◆ chktauhel()

bool chktauhel ( int  tauhel) const
private

Function to check if tauhel is in the valid range.

Parameters
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.

Definition at line 550 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ chkwhel()

bool chkwhel ( int  whel) const
private

Function to check if whel is in the valid range.

Parameters
whelhelicity of the virtual vector boson {+1,0,1,2}.

Definition at line 544 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ clone() [1/2]

EvtDecayBase * clone ( )

The function makes a copy of an EvtBSTD object.

Returns
a pointer to a new uninitialized EvtBSemiTauonic object

Definition at line 57 of file EvtBSemiTauonic.cc.

◆ clone() [2/2]

EvtDecayBase * clone ( )

The function makes a copy of an EvtBSemiTauonic2HDMType2 object.

Returns
a pointer to a new uninitialized EvtBSemiTauonic2HDMType2 object

Definition at line 57 of file EvtBSemiTauonic2HDMType2.cc.

◆ decay() [1/2]

void decay ( EvtParticle *  p)

The function evaluates the decay amplitude of the parent particle.

Parameters
pa pointer to the parent particle

Definition at line 63 of file EvtBSemiTauonic.cc.

◆ decay() [2/2]

void decay ( EvtParticle *  p)

The function evaluates the decay amplitude of the parent particle.

a pointer to the parent particle

Definition at line 63 of file EvtBSemiTauonic2HDMType2.cc.

◆ dGammadcostau()

double dGammadcostau ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
double  mtau,
int  tauhel,
int  Dhel,
double  costau 
)

Function calculates the differential decay rate dGamma/dcostau, integrated for w.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame. Note that overall factor (GF/sqrt(2) Vcb)^2 is omitted.

Definition at line 69 of file EvtBSemiTauonicDecayRateCalculator.cc.

81  {
82  m_BSTD = &BSTD;
84  BSTD.wmin(), BSTD.wmax(mtau, Dhel), -1, 1, 3,

◆ dGammadw()

double dGammadw ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
double  mtau,
int  tauhel,
int  Dhel,
double  w 
)

Function calculates the differential decay rate dGamma/dw, integrated for costau.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable. Note that overall factor (GF/sqrt(2) Vcb)^2 is omitted.

Definition at line 51 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ dGammadwdcostau()

double dGammadwdcostau ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
double  mtau,
int  tauhel,
int  Dhel,
double  w,
double  costau 
)

Function calculates the differential decay rate dGamma/dw/dcostau.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame. Note that overall factor (GF/sqrt(2) Vcb)^2 is omitted.

Definition at line 41 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ dR3()

double dR3 ( double  w) const

HQET correction factor for the scalar form factor for B->D*taunu.

Parameters
wvelocity transfer variable.
Returns
calculated factor.

Definition at line 503 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ dS1()

double dS1 ( double  w) const

HQET correction factor for the scalar form factor for B->Dtaunu.

Parameters
wvelocity transfer variable.
Returns
calculated factor.

Definition at line 498 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ EvtBSemiTauonicHelicityAmplitudeCalculator() [1/2]

The default constructor.

Initializes with the default parameter values used by the aurhos of PRD87,034028.

Definition at line 31 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ EvtBSemiTauonicHelicityAmplitudeCalculator() [2/2]

EvtBSemiTauonicHelicityAmplitudeCalculator ( const double  rho12,
const double  rhoA12,
const double  ffR11,
const double  ffR21,
const double  AS1,
const double  AR3,
const double  bottomMass,
const double  charmMass,
const EvtComplex &  CV1,
const EvtComplex &  CV2,
const EvtComplex &  CS1,
const EvtComplex &  CS2,
const EvtComplex &  CT,
const double  parentMass,
const double  DMass,
const double  DstarMass 
)

The constructor with HQET form factor parameters, Wilson coefficients of new physics contributions and parent B, daughter D(*) meson masses.

Parameters
rho12HQET form factor parameter rho_1^2 obtained by Dlnu decay data.
rhoA12HQET form factor parameter rho_A1^2 obtained by D*lnu decay data.
ffR11HQET form factor parameter R_1(1) obtained by D*lnu decay data.
ffR21HQET form factor parameter R_2(1) obtained by D*lnu decay data.
AS1a parameter to take into account the theoretical error of the scalar form factor for Dtaunu decay.
AR3a parameter to take into account the theoretical error of the scalar form factor for D*taunu decay.
CV1Wilson coeffcient of the left handed vector type NP contribution.
CV2Wilson coeffcient of the right handed vector type NP contribution.
CS1Wilson coeffcient of the scalar (S+P) type NP contribution.
CS2Wilson coeffcient of the scalar (S-P) type NP contribution.
CTWilson coeffcient of the tensor type NP contribution.
parentMassmass of the parent (B) meson.
DMassmass of the scalar type daughter (D) meson.
DstarMassmass of the vector type daughter (D*) meson.
bottomMassmass of the bottom quark mass (running mass at the energy of bottom quark mass)
charmMassmass of the charm quark mass (running mass at the energy of bottom quark mass) The constructor initializes the parameters of the decay. The recommended values of AS1 and AR3 by authors of PRD87,034028 are 1+/-1.

Definition at line 69 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ ffA1()

double ffA1 ( double  w) const

CLN form factor A1.

Parameters
wvelocity transfer variable.
Returns
calculated form factor value.

Definition at line 476 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ ffR1()

double ffR1 ( double  w) const

CLN form factor R1.

Parameters
wvelocity transfer variable.
Returns
calculated form factor value.

Definition at line 483 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ ffR2()

double ffR2 ( double  w) const

CLN form factor R2.

Parameters
wvelocity transfer variable.
Returns
calculated form factor value.

Definition at line 488 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ ffR3()

double ffR3 ( double  w) const

CLN form factor R3.

Parameters
wvelocity transfer variable.
Returns
calculated form factor value.

Definition at line 493 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ ffS1()

double ffS1 ( double  w) const

CLN form factor S1.

Parameters
wvelocity transfer variable.
Returns
calculated form factor value.

Definition at line 471 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ ffV1()

double ffV1 ( double  w) const

CLN form factor V1.

Parameters
wvelocity transfer variable.
Returns
calculated form factor value.

Definition at line 464 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ Gamma()

double Gamma ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
double  mtau,
int  tauhel,
int  Dhel 
)

Function calculates the helicity dependent decay rate Gamma, integrated for w and costau.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D. Note that overall factor (GF/sqrt(2) Vcb)^2 is omitted.

Definition at line 87 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ GammaD()

double GammaD ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
double  mtau 
)

Function calculates the decay rate Gamma for Dtaunu decay, integrated for w and costau and summed for helicities.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter lepton mass. Note that overall factor (GF/sqrt(2) Vcb)^2 is omitted.

Definition at line 108 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ GammaDstar()

double GammaDstar ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
double  mtau 
)

Function calculates the differential decay rate Gamma for D*taunu decay, integrated for w and costau and summed for helicities.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter lepton mass. Note that overall factor (GF/sqrt(2) Vcb)^2 is omitted.

Definition at line 116 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ GammaSMD()

double GammaSMD ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
const double  mlep = 0.0005110 
)

Function calculates the SM decay rate Gamma for Dlnu decay, integrated for w and costau and summed for helicities.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mlepdaughter lepton mass (default is the electron mass). Note that overall factor (GF/sqrt(2) Vcb)^2 is omitted.

Definition at line 127 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ GammaSMDstar()

double GammaSMDstar ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
const double  mlep = 0.0005110 
)

Function calculates the SM decay rate Gamma for D*lnu decay, integrated for w and costau and summed for helicities.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mlepdaughter lepton mass (default is the electron mass). Note that overall factor (GF/sqrt(2) Vcb)^2 is omitted.

Definition at line 142 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ generate()

MCInitialParticles & generate ( int  allowedFlags)
private

Generate a new event wit a particular set of allowed flags.

Parameters
[in]allowedFlagsAllowed flags.

Definition at line 89 of file InitialParticleGeneration.cc.

89  {
93  }
94  m_event->setGenerationFlags(m_beamParams->getGenerationFlags() & allowedFlags);
95  TLorentzVector her = generateBeam(m_beamParams->getHER(), m_beamParams->getCovHER(), m_generateHER);
96  TLorentzVector ler = generateBeam(m_beamParams->getLER(), m_beamParams->getCovLER(), m_generateLER);
97  TVector3 vtx = generateVertex(m_beamParams->getVertex(), m_beamParams->getCovVertex(), m_generateVertex);
98  m_event->set(her, ler, vtx);
99  //Check if we want to go to CMS, if so boost both
100  if (m_beamParams->hasGenerationFlags(BeamParameters::c_generateCMS)) {
101  m_event->setGenerationFlags(0);
102  her = m_event->getLabToCMS() * her;
103  ler = m_event->getLabToCMS() * ler;
104  m_event->set(her, ler, vtx);
105  m_event->setGenerationFlags(m_beamParams->getGenerationFlags() & allowedFlags);
106  }
107  return *m_event;
108  }
109 
110  TVector3 InitialParticleGeneration::updateVertex(bool force)
111  {
112  if (!m_beamParams.isValid()) {
113  B2FATAL("Cannot generate beam without valid BeamParameters");
114  }
115  if (!m_event) {
116  // generate a new mc initial particle without smearing except for the vertex

◆ generateBeam()

TLorentzVector generateBeam ( const TLorentzVector &  initial,
const TMatrixDSym &  cov,
MultivariateNormalGenerator gen 
)
private

generate 4 vector for one beam

Parameters
initialbeam
covcovariance of the beam momentum (E, theta_x, theta_y)
genmultivariate normal generator to be used

Definition at line 44 of file InitialParticleGeneration.cc.

◆ generateEvent()

void generateEvent ( MCParticleGraph mcGraph)

Generates one single event.

Parameters
mcGraphReference to the MonteCarlo graph into which the generated particles will be stored.

Definition at line 91 of file CRY.cc.

91  {
92  m_totalTrials++;
93  // Generate one event
94  ev.clear();
95  m_cryGenerator->genEvent(&ev);
96  // check all particles
97  for (auto* p : ev) {
98  const int pdg = p->PDGid();
99  const double kineticEnergy = p->ke() * Unit::MeV;
100  if (kineticEnergy < m_kineticEnergyThreshold) continue;
101 
102  const double mass = TDatabasePDG::Instance()->GetParticle(pdg)->Mass();
103  const double etot = kineticEnergy + mass;
104  // since etot is at least mass this cannot be negative
105  const double ptot = sqrt(etot * etot - mass * mass);
106 
107  // Momentum
108  // We have x horizontal, y up and z along the beam. So uvw -> zxy, xc yc zc -> zxy
109  const double px = ptot * p->v();
110  const double py = ptot * p->w();
111  const double pz = ptot * p->u();
112  // Vertex
113  const double vx = p->y() * Unit::m;
114  const double vy = p->z() * Unit::m;
115  const double vz = p->x() * Unit::m;
116  // Time
117  double time = p->t() * Unit::s;
118 
119  vecgeom::Vector3D<double> pos(vx, vy, vz);
120  vecgeom::LorentzVector<double> mom(px, py, pz, etot);
121  const double speed = (mass == 0 ? 1 : mom.Beta()) * Const::speedOfLight;
122 
123  // Project on the boundary of the world box
124  auto inside = m_world->Inside(pos);
125  if (inside == vecgeom::kInside) {
126  // inside the world volume, go backwards in time to the world box
127  const auto dir = -mom.vect().Unit();
128  double dist = m_world->DistanceToOut(pos, dir);
129  pos += dist * dir;
130  time -= dist / speed;
131  } else if (inside == vecgeom::kOutside) {
132  // outside the world volume, go forwards in time to the world box
133  // this should not happen but better safe then sorry ...
134  const auto dir = mom.vect().Unit();
135  double dist = m_world->DistanceToIn(pos, dir);
136  if (dist == vecgeom::InfinityLength<double>()) continue;
137  pos += dist * dir;
138  time += dist / speed;
139  }
140  // Intersect with the acceptance box
141  double dist = m_acceptance->DistanceToIn(pos, mom.vect().Unit());
142  if (dist == vecgeom::InfinityLength<double>()) continue;
143 
144  // We want to keep this one
145  auto& particle = mcGraph.addParticle();
146  // all particle of a generator are primary
147  particle.addStatus(MCParticle::c_PrimaryParticle);
148  // all particle of CRY are stable
149  particle.addStatus(MCParticle::c_StableInGenerator);
150  particle.setPDG(pdg);
151  particle.setFirstDaughter(0);
152  particle.setLastDaughter(0);
153  particle.setMomentum(TVector3(mom.x(), mom.y(), mom.z()));
154  particle.setMass(mass);
155  particle.setEnergy(mom.e());
156  particle.setProductionVertex(TVector3(pos.x(), pos.y(), pos.z()));
157  particle.setProductionTime(time);
158  eventInAcceptance = true;
159 
160  // calculate shift in time necessary to be at y=0 for t=0
161  const vecgeom::Vector3D<double> normalVector(0., 1., 0.); // normal to the global generation plane
162  const vecgeom::Vector3D<double> origin(0, 0, 0);
163  const double distance = ((origin - pos) * normalVector) / (mom.vect().Unit() * normalVector);
164  // and check which is the shift needed to have the first particle at t=0&y=0
165  productionShift = std::min(time - (distance / speed), productionShift);
166  }
167  // clean up CRY event
168  for (auto* p : ev) delete p;
169 
170  // and if we have something in the acceptance then we're done
171  if (eventInAcceptance) {
172  // just shift the times to have the first particle hit y=0 at t=0 (modulo magnetic field)
173  for (size_t i = startIndex; i < mcGraph.size(); ++i) {
174  mcGraph[i].setProductionTime(mcGraph[i].getProductionTime() - productionShift + m_timeOffset);
175  }
176  //everything else is done
177  return;
178  }
179  }
180  B2ERROR("Number of trials exceeds maxTrials increase number of maxTrials" << LogVar("maxTrials", m_maxTrials));
181  }
182 
183  void CRY::term()
184  {
185  B2RESULT("Total time simulated: " << m_cryGenerator->timeSimulated() << " seconds");
186  B2RESULT("Total number of events simulated: " << m_totalTrials);
187  }
188 
189 

◆ generateVertex()

TVector3 generateVertex ( const TVector3 &  initial,
const TMatrixDSym &  cov,
MultivariateNormalGenerator gen 
)
private

generate the vertex

Parameters
initialnominal vertex position
covcovariance of the vertex position
genmultivariate normal generator to be used

Definition at line 34 of file InitialParticleGeneration.cc.

◆ getInstance()

EvtGenModelRegister & getInstance ( )
staticprivate

Return reference to the instance.

This class behaves like a purely static class but we need a singleton pattern to avoid initialisation hell.

Definition at line 23 of file EvtGenModelRegister.cc.

24  {
25  static unique_ptr<EvtGenModelRegister> instance(new EvtGenModelRegister());
26  return *instance;
27  }

◆ getModels()

list< EvtDecayBase * > getModels ( )
static

Return a list of models.

Caller takes responsibility to free the instances when no longer needed

Returns
list with pointers to instances of all registered models.

Definition at line 29 of file EvtGenModelRegister.cc.

◆ getName() [1/2]

std::string getName ( )

The function returns the model name.

Returns
name of the model "BSTD_2HDMTYPE2"

Definition at line 50 of file EvtBSemiTauonic2HDMType2.cc.

◆ getName() [2/2]

std::string getName ( )

The function returns the model name.

Returns
name of the model "BSTD"

Definition at line 50 of file EvtBSemiTauonic.cc.

◆ getscalarff()

void getscalarff ( EvtId  parent,
EvtId  daughter,
double  t,
double  ,
double *  fpf,
double *  f0f 
)

Scalar FF's.

Implementation follows arXiv:1509.06938v3.

For the scalar FF, the arglist in the constructor should contain 8 expansion parameters: b+_0, b+_1, b+_2, b+_3, b0_0, b0_1, b0_2, b0_3

Parameters
parent
daughter
tMomentum transfer, also called q2. q2 = (p_B - p_M)^2
fpff_+(q2).
f0ff_0(q2).

Definition at line 40 of file EvtBCLFF.cc.

49  const std::vector<double> bzero = {m_BCLFFCoefficients[4], m_BCLFFCoefficients[5], m_BCLFFCoefficients[6], m_BCLFFCoefficients[7]};
50 
51  const auto N_fpf = bplus.size();
52  const auto N_f0f = bzero.size();
53 
54  auto z = [tplus, tzero](decltype(t) q2) {
55  const auto term1 = std::sqrt(tplus - q2);
56  const auto term2 = std::sqrt(tplus - tzero);
57  return (term1 - term2) / (term1 + term2);
58  };
59 
60  double sum_fpf = 0;
61  for (unsigned int n = 0; n < N_fpf; ++n) {
62  sum_fpf += bplus[n] * (std::pow(z(t), n) - std::pow(-1, n - N_fpf) * n / N_fpf * std::pow(z(t), N_fpf));
63  }
64  *fpf = pole * sum_fpf;
65 
66  double sum_f0f = 0;
67  for (unsigned int n = 0; n < N_f0f; ++n) {
68  sum_f0f += bzero[n] * std::pow(z(t), n);
69  }
70  *f0f = sum_f0f;
71  }
72 
73  void EvtBCLFF::getvectorff(EvtId parent, EvtId daughter, double t, double, double* a1f, double* a2f, double* vf, double* a0f)
74  {
75 
76  if (m_numBCLFFCoefficients != 11) {
77  EvtGenReport(EVTGEN_ERROR, "EvtGen") << "Wrong number of arguments for EvtBCLFF::getvectorff!\n";
78  }
79 

◆ getvectorff()

void getvectorff ( EvtId  parent,
EvtId  daughter,
double  t,
double  ,
double *  a1f,
double *  a2f,
double *  vf,
double *  a0f 
)

Vector FF's.

Implementation follows arXiv:1503.05534v3. It is assumed that each expansion has three terms (hardcoded). However, this can be easily expanded or generalized. It is not done, because this way we can check if the number of arguments in the decay file is the correct one.

For the vector FF, the arglist in the constructor should contain 11 expansion parameters: A0_1, A0_2, A1_0, A1_1, A1_2, A12_0, A12_1, A12_2, V_0, V_1, V_2 Nota bene: A0_0 is correlated to A12_0.

Parameters
parent
daughter
tMomentum transfer, also called q2. q2 = (p_B - p_M)^2
a1fA1(q2)
a2fA2(q2)
vfV(q2)
a0fA0(q2)

Definition at line 81 of file EvtBCLFF.cc.

◆ hA1()

double hA1 ( double  w) const

HQET D* axial vector form factor h_{A1}(w).


Definition at line 377 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ hA2()

double hA2 ( double  w) const

HQET D* axial vector form factor h_{A2}(w).


Definition at line 389 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ hA3()

double hA3 ( double  w) const

HQET D* axial vector form factor h_{A3}(w).


Definition at line 395 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ HadS1()

double HadS1 ( int  Dhel,
double  w 
) const

The function to calculate the Hadronic Amplitudes of scalar (S+P) type contribution.

Parameters
Dhelhelicity of the daughter D(*) meson {+1,0,1} for D* and 2 for D.
whelhelicity of the virtual vector boson {+1,0,1,2}.
wvelocity transfer variable.
Returns
calculated amplitude value.

Definition at line 252 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ HadS2()

double HadS2 ( int  Dhel,
double  w 
) const

The function to calculate the Hadronic Amplitudes of scalar (S-P) type contribution.

Parameters
Dhelhelicity of the daughter D(*) meson {+1,0,1} for D* and 2 for D.
whelhelicity of the virtual vector boson {+1,0,1,2}.
wvelocity transfer variable.
Returns
calculated amplitude value.

Definition at line 264 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ HadT()

double HadT ( int  Dhel,
int  whel1,
int  whel2,
double  w 
) const

The function to calculate the Hadronic Amplitudes of tensor type contribution.

Parameters
Dhelhelicity of the daughter D(*) meson {+1,0,1} for D* and 2 for D.
whel1helicity of the one virtual vector boson {+1,0,1,2}.
whel2helicity of the another virtual vector boson {+1,0,1,2}.
wvelocity transfer variable.
Returns
calculated amplitude value. The tensor contribution is described by two vector contributions.

Definition at line 274 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ HadV1()

double HadV1 ( int  Dhel,
int  whel,
double  w 
) const

The function to calculate the Hadronic Amplitudes of left handed (V-A) type contribution.

Parameters
Dhelhelicity of the daughter D(*) meson {+1,0,1} for D* and 2 for D.
whelhelicity of the virtual vector boson {+1,0,1,2}.
wvelocity transfer variable.
Returns
calculated amplitude value.

Definition at line 207 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ HadV2()

double HadV2 ( int  Dhel,
int  whel,
double  w 
) const

The function to calculate the Hadronic Amplitudes of right handed (V+A) type contribution.

Parameters
Dhelhelicity of the daughter D(*) meson {+1,0,1} for D* and 2 for D.
whelhelicity of the virtual vector boson {+1,0,1,2}.
wvelocity transfer variable.
Returns
calculated amplitude value.

Definition at line 239 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ helAmp() [1/2]

EvtComplex helAmp ( const EvtComplex &  CV1,
const EvtComplex &  CV2,
const EvtComplex &  CS1,
const EvtComplex &  CS2,
const EvtComplex &  CT,
double  mtau,
int  tauhel,
int  Dhel,
double  w,
double  costau 
) const

The function calculates helicity amplitudes with given Wilson coefficients.

Parameters
CV1Wilson coeffcient of the left handed vector type NP contribution.
CV2Wilson coeffcient of the right handed vector type NP contribution.
CS1Wilson coeffcient of the scalar (S+P) type NP contribution.
CS2Wilson coeffcient of the scalar (S-P) type NP contribution.
CTWilson coeffcient of the tensor type NP contribution.
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame. The overall factor GF/sqrt(2) Vcb omitted because it does not change the distribution.

Definition at line 118 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ helAmp() [2/2]

EvtComplex helAmp ( double  mtau,
int  tauhel,
int  Dhel,
double  w,
double  costau 
) const

The function calculates the helicity amplitude.

Parameters
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame. The overall factor GF/sqrt(2) Vcb omitted because it does not change the distribution.

Definition at line 111 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ helampS1()

double helampS1 ( double  mtau,
int  tauhel,
int  Dhel,
double  w,
double  costau 
) const

Helicity Amplitudes of scalar (S+P) type contribution.

Parameters
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame.
Returns
calculated amplitude value. Overall factor GF/sqrt(2) Vcb omitted. Wilson coefficients CXX ommited.

Definition at line 335 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ helampS2()

double helampS2 ( double  mtau,
int  tauhel,
int  Dhel,
double  w,
double  costau 
) const

Helicity Amplitudes of scalar (S-P) type contribution.

Parameters
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame.
Returns
calculated amplitude value. Overall factor GF/sqrt(2) Vcb omitted. Wilson coefficients CXX ommited.

Definition at line 341 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ helampSM()

double helampSM ( double  mtau,
int  tauhel,
int  Dhel,
double  w,
double  costau 
) const

Helicity Amplitudes of SM (left handed) contribution.

Parameters
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame. Overall factor GF/sqrt(2) Vcb omitted. Wilson coefficients CXX ommited.

Definition at line 307 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ helampT()

double helampT ( double  mtau,
int  tauhel,
int  Dhel,
double  w,
double  costau 
) const

Helicity Amplitudes of tensor type contribution.

Parameters
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame.
Returns
calculated amplitude value. Overall factor GF/sqrt(2) Vcb omitted. Wilson coefficients CXX ommited.

Definition at line 347 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ helampV1()

double helampV1 ( double  mtau,
int  tauhel,
int  Dhel,
double  w,
double  costau 
) const

Helicity Amplitudes of left handed (V-A) contribution.

Parameters
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame.
Returns
calculated amplitude value. Overall factor GF/sqrt(2) Vcb omitted. Wilson coefficients CXX ommited.

Definition at line 318 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ helampV2()

double helampV2 ( double  mtau,
int  tauhel,
int  Dhel,
double  w,
double  costau 
) const

Helicity Amplitudes of right handed (V+A) contribution.

Parameters
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame.
Returns
calculated amplitude value. Overall factor GF/sqrt(2) Vcb omitted. Wilson coefficients CXX ommited.

Definition at line 324 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ hm()

double hm ( double  w) const

HQET D vector form factor h_-(w).


Definition at line 371 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ hp()

double hp ( double  w) const

HQET D vector form factor h_+(w).


Definition at line 364 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ hP()

double hP ( double  w) const

D* pseudo scalar form factor h_P(w) in terms of axial vector form factors.


Definition at line 414 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ hS()

double hS ( double  w) const

D scalar form factor h_S(w) in terms of vector form factors.


Definition at line 402 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ hT()

double hT ( double  w) const

D tensor form factor h_T(w) in terms of vector form factors.


Definition at line 426 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ hT1()

double hT1 ( double  w) const

D* tensor form factor h_{T1}(w) in terms of axial vector form factors.


Definition at line 433 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ hT2()

double hT2 ( double  w) const

D* tensor form factor h_{T2}(w).


Definition at line 442 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ hT3()

double hT3 ( double  w) const

D* tensor form factor h_{T3}(w).


Definition at line 450 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ hV()

double hV ( double  w) const

HQET D* axial vector form factor h_V(w).


Definition at line 383 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ init() [1/5]

void init ( )

Checks that the number of input parameters are correct:

  • 3 scalar particles (check on spin but not on charge)
  • 1 real parameters (no check on the actual values)

Definition at line 56 of file EvtEtaPi0Dalitz.cc.

57  {
58 
59  // check that there is 1 argument
60  checkNArg(1);
61  checkNDaug(3);
62 
63 
64  checkSpinParent(EvtSpinType::SCALAR);
65 
66  checkSpinDaughter(0, EvtSpinType::SCALAR);
67  checkSpinDaughter(1, EvtSpinType::SCALAR);
68  checkSpinDaughter(2, EvtSpinType::SCALAR);
69  }

◆ init() [2/5]

void init ( )

The function initializes the decay.

The function reads paramters from the decay file and initializes the parameters for the decay amplitude calculator.

Definition at line 88 of file EvtBSemiTauonic2HDMType2.cc.

◆ init() [3/5]

void init ( )

Checks that the number of input parameters are correct:

  • 3 scalar particles (check on spin but not on charge)
  • 6 real parameters (no check on the actual values)

Definition at line 65 of file EvtEtaFullDalitz.cc.

67  {
68 
69  setProbMax(2.5);
70 
71  }
72 
73  void EvtEtaFullDalitz::decay(EvtParticle* p)
74  {
75 
76  const double a = getArg(0);
77  const double b = getArg(1);
78  const double c = getArg(2);

◆ init() [4/5]

void init ( )

The function initializes the decay.

The function reads paramters from the decay file and initializes the parameters for the decay amplitude calculator.

Definition at line 88 of file EvtBSemiTauonic.cc.

◆ init() [5/5]

void init ( )

Checks that the number of input parameters are correct:

  • 3 scalar particles (check on spin but not on charge)
  • 4 real parameters (no check on the actual values)

Definition at line 58 of file EvtEtaPrimeDalitz.cc.

59  {
60 
61  // check that there is are arguments
62  checkNArg(4);
63  checkNDaug(3);
64 
65 
66  checkSpinParent(EvtSpinType::SCALAR);
67 
68  checkSpinDaughter(0, EvtSpinType::SCALAR);
69  checkSpinDaughter(1, EvtSpinType::SCALAR);
70  checkSpinDaughter(2, EvtSpinType::SCALAR);
71  }

◆ initProbMax() [1/4]

void initProbMax ( )

The function sets the maximum value of the probability.


Definition at line 69 of file EvtBSemiTauonic2HDMType2.cc.

◆ initProbMax() [2/4]

void initProbMax ( )

Sets the Maximum probability for the PHSP reweight.

Maximum value is hardcoded and inherited from the EvtEtaDalitz class.

Definition at line 72 of file EvtEtaPi0Dalitz.cc.

◆ initProbMax() [3/4]

void initProbMax ( )

Sets the Maximum probability for the PHSP reweight.

Maximum value is hardcoded and inherited from the EvtEtaDalitz class.

Definition at line 81 of file EvtEtaFullDalitz.cc.

◆ initProbMax() [4/4]

void initProbMax ( )

Sets the Maximum probability for the PHSP reweight.

Maximum value is hardcoded and inherited from the EvtEtaDalitz class.

Definition at line 74 of file EvtEtaPrimeDalitz.cc.

◆ Lep() [1/3]

double Lep ( const double  mtau,
int  tauhel,
double  q2,
double  costau 
) const

The function to calculate the Leptonic Amplitudes for B->Dtaunu decay of the scalar type contribution.

Parameters
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
q2q^2 of the decay (square of l+nu invariant mass).
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame.
Returns
calculated amplitude value.

Definition at line 160 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ Lep() [2/3]

double Lep ( const double  mtau,
int  tauhel,
int  whel,
double  q2,
double  costau 
) const

The function to calculate the Leptonic Amplitudes for B->D*taunu decay of the vector type contribution.

Parameters
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
whelhelicity of the virtual vector boson {+1,0,1,2}.
q2q^2 of the decay (square of l+nu invariant mass).
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame.
Returns
calculated amplitude value.

Definition at line 137 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ Lep() [3/3]

double Lep ( const double  mtau,
int  tauhel,
int  whel1,
int  whel2,
double  q2,
double  costau 
) const

The function to calculate the Leptonic Amplitudes for B->D*taunu decay of the tensor type contribution.

Parameters
mtaudaughter lepton mass.
tauhelhelicity of the lepton in the (l+nu) rest frame {+1,-1}.
whel1helicity of the one virtual vector boson {+1,0,1,2}.
whel2helicity of the another virtual vector boson {+1,0,1,2}.
q2q^2 of the decay (square of l+nu invariant mass).
costaucosine of the angle between D(*) meson and the lepton in the (l+nu) rest frame.
Returns
calculated amplitude value. The tensor contribution is described by two vector contributions.

Definition at line 175 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ mD()

double mD ( int  Dhel) const

Daughter D(*) meson mass.

kinematics

Parameters
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
Returns
daughter D(*) meson mass corresponding to the Dhel.

Definition at line 509 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ PDstar()

double PDstar ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
const double  mtau 
)

Function calculates the polarization of D*, longitudinal/(longitudinal + transverse), in B->D*taunu decay.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter tau lepton mass for B->Dtaunu decay.

Definition at line 197 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ pf()

double pf ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
double  mtau,
int  Dhel,
double  w 
)

Phase space factor, which is multiplied to the helicity amplitude to calculate the decay rate.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter tau lepton mass for B->Dtaunu decay.
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.

Definition at line 209 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ PtauD()

double PtauD ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
const double  mtau 
)

Function calculates the polarization of tau, (RH - LH)/(LH + RH), in B->Dtaunu decay.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter tau lepton mass for B->Dtaunu decay.

Definition at line 180 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ PtauDstar()

double PtauDstar ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
const double  mtau 
)

Function calculates the polarization of tau, (RH - LH)/(LH + RH), in B->D*taunu decay.

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter tau lepton mass for B->Dtaunu decay.

Definition at line 187 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ q2()

double q2 ( int  Dhel,
double  w 
) const

Function to calculate the q^2 of the decay (square of l+nu invariant mass).

Parameters
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.
Returns
calculated q^2.

Definition at line 532 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ qh2()

double qh2 ( int  Dhel,
double  w 
) const

Function to calculate the q^2 divided by the square of parent mass (m_B^2).

Parameters
Dhelhelicity of the D(*) meson in the rest frame of the parent meson {+1,0,-1} for D* and 2 for D.
wvelocity transfer variable.
Returns
calculated q^2/m_B^2.

Definition at line 526 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ RGammaD()

double RGammaD ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
const double  mtau,
const double  mlep = 0.0005110 
)

Function calculates the ratio of Br(B->Dtaunu)/Br(B->Dlnu), R(D).

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter tau lepton mass for B->Dtaunu decay.
mlepdaughter lepton mass for B->Dlnu decay (default is the electron mass). Note that overall factor (GF/sqrt(2) Vcb)^2 is omitted.

Definition at line 159 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ RGammaDstar()

double RGammaDstar ( const EvtBSemiTauonicHelicityAmplitudeCalculator BSTD,
const double  mtau,
const double  mlep = 0.0005110 
)

Function calculates the ratio of Br(B->Dtaunu)/Br(B->Dlnu), R(D*).

Parameters
BSTDhelicity ampliutude calculator initialized properly by user.
mtaudaughter tau lepton mass for B->Dtaunu decay.
mlepdaughter lepton mass for B->Dlnu decay (default is the electron mass).

Definition at line 168 of file EvtBSemiTauonicDecayRateCalculator.cc.

◆ RotateToHelicityBasisInBoostedFrame()

EvtSpinDensity RotateToHelicityBasisInBoostedFrame ( const EvtParticle *  p,
EvtVector4R  p4boost 
)

The function calculates the rotation matrix to convert the spin basis to the helicity basis in the boosted frame.

Parameters
pa pointer to the particle
p4boosta 4 vector to specify the rest frame to boost to. The function calculate the rotation matrix from the spin basis defined in the p rest frame to the helicity basis in the rest frame of p4boost.

Definition at line 37 of file EvtBSemiTauonicAmplitude.cc.

◆ term()

void term ( )

Terminates the generator.

Closes the internal generator.

Definition at line 191 of file CRY.cc.

◆ updateVertex()

TVector3 updateVertex ( bool  force = false)

Update the vertex position:

  1. If there is no initial particles object generate a new one with nominal values without smearing
  2. If the BeamParameters disallow smearing of the vertex it does nothing
  3. If initial particles already exist check if the vertex smearing has already been applied. If not, apply vertex smearing if allowed.
  4. Return the shift in vertex to the previous value (or the origin if there was no previous value).

This function does not update the energies as this would possibly introduce inconsistency between values used by the generator and the values contained in the initial particles. But it is useful to smear the vertex after generation.

Parameters
forceif true the vertex will be regenerated even if vertex smearing was already applied.

Definition at line 118 of file InitialParticleGeneration.cc.

◆ v()

double v ( double  mtau,
double  q2 
) const

Function to calculate the tau velocity.

Parameters
mtaudaughter lepton mass.
q2q^2 of the decay (square of l+nu invariant mass).
Returns
calculated tau velocity.

Definition at line 520 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

◆ z()

double z ( double  w) const

CLN form factor z.

Parameters
wvelocity transfer variable.
Returns
calculated form factor value.

Definition at line 459 of file EvtBSemiTauonicHelicityAmplitudeCalculator.cc.

Belle2::Unit::s
static const double s
[second]
Definition: Unit.h:105
Belle2::InitialParticleGeneration::generateVertex
TVector3 generateVertex(const TVector3 &initial, const TMatrixDSym &cov, MultivariateNormalGenerator &gen)
generate the vertex
Definition: InitialParticleGeneration.cc:34
prepareAsicCrosstalkSimDB.e
e
aux.
Definition: prepareAsicCrosstalkSimDB.py:53
Belle2::InitialParticleGeneration::updateVertex
TVector3 updateVertex(bool force=false)
Update the vertex position:
Definition: InitialParticleGeneration.cc:118
Belle2::InitialParticleGeneration::m_event
StoreObjPtr< MCInitialParticles > m_event
Datastore object containing the generated event.
Definition: InitialParticleGeneration.h:100
Belle2::EvtEtaFullDalitz::decay
void decay(EvtParticle *p)
Function that implements the energy-dependent Dalitz.
Definition: EvtEtaFullDalitz.cc:88
Belle2::CRY::m_cryGenerator
std::unique_ptr< CRYGenerator > m_cryGenerator
The CRY generator.
Definition: CRY.h:168
Belle2::EvtBCLFF::m_BCLFFCoefficients
double m_BCLFFCoefficients[19]
Parameters passed to the model; BCL expansion coefficients.
Definition: EvtBCLFF.h:88
Belle2::CRY::m_acceptance
std::unique_ptr< vecgeom::VUnplacedVolume > m_acceptance
acceptance shape
Definition: CRY.h:170
Belle2::InitialParticleGeneration::m_generateHER
MultivariateNormalGenerator m_generateHER
Generator for HER.
Definition: InitialParticleGeneration.h:102
Belle2::InitialParticleGeneration::m_generateVertex
MultivariateNormalGenerator m_generateVertex
Generator for Vertex.
Definition: InitialParticleGeneration.h:106
Belle2::EvtBSemiTauonicDecayRateCalculator::m_BSTD
const EvtBSemiTauonicHelicityAmplitudeCalculator * m_BSTD
temporal pointer to the helicity amplitude calculator for EvaluateBy* functions
Definition: EvtBSemiTauonicDecayRateCalculator.h:162
Belle2::EvtBSemiTauonicDecayRateCalculator::EvaluateBy2D
double EvaluateBy2D(double *x, double *param)
Function used internally for numerical integration.
Definition: EvtBSemiTauonicDecayRateCalculator.cc:229
Belle2::InitialParticleGeneration::generateBeam
TLorentzVector generateBeam(const TLorentzVector &initial, const TMatrixDSym &cov, MultivariateNormalGenerator &gen)
generate 4 vector for one beam
Definition: InitialParticleGeneration.cc:44
Belle2::CRY::m_timeOffset
double m_timeOffset
time offset in nanoseconds.
Definition: CRY.h:154
Belle2::Unit::MeV
static const double MeV
[megaelectronvolt]
Definition: Unit.h:124
Belle2::Const::speedOfLight
static const double speedOfLight
[cm/ns]
Definition: Const.h:568
Belle2::CRY::m_maxTrials
int m_maxTrials
number of trials per event.
Definition: CRY.h:157
Belle2::CRY::term
void term()
Terminates the generator.
Definition: CRY.cc:191
Belle2::MCInitialParticles::c_generateCMS
@ c_generateCMS
generate initial event in CMS instead of lab
Definition: MCInitialParticles.h:42
Belle2::CRY::m_world
std::unique_ptr< vecgeom::VUnplacedVolume > m_world
world box shape
Definition: CRY.h:169
Belle2::CRY::m_totalTrials
int m_totalTrials
total number of thrown events.
Definition: CRY.h:158
LogVar
Class to store variables with their name which were sent to the logging service.
Definition: LogVariableStream.h:24
Belle2::EvtBCLFF::m_numBCLFFCoefficients
int m_numBCLFFCoefficients
Total number of parameters passed to the model.
Definition: EvtBCLFF.h:86
Belle2::EvtBSemiTauonicAmplitude::CalcAmp
virtual void CalcAmp(EvtParticle *parent, EvtAmp &amp, EvtBSemiTauonicHelicityAmplitudeCalculator *HelicityAmplitudeCalculator)=0
The function calculates the spin dependent amplitude.
Belle2::Unit::m
static const double m
[meters]
Definition: Unit.h:79
Belle2::CRY::m_kineticEnergyThreshold
double m_kineticEnergyThreshold
kinetic energy threshold.
Definition: CRY.h:155
Belle2::MCParticle::c_StableInGenerator
@ c_StableInGenerator
bit 1: Particle is stable, i.e., not decaying in the generator.
Definition: MCParticle.h:60
Belle2::InitialParticleGeneration::m_generateLER
MultivariateNormalGenerator m_generateLER
Generator for LER.
Definition: InitialParticleGeneration.h:104
Belle2::InitialParticleGeneration::m_beamParams
DBObjPtr< BeamParameters > m_beamParams
Datastore object containing the nominal beam parameters.
Definition: InitialParticleGeneration.h:98
Belle2::EvtBCLFF::getvectorff
void getvectorff(EvtId parent, EvtId daughter, double t, double, double *a1f, double *a2f, double *vf, double *a0f)
Vector FF's.
Definition: EvtBCLFF.cc:81
Belle2::EvtGenModelRegister::EvtGenModelRegister
EvtGenModelRegister()
Singleton: private constructor.
Definition: EvtGenModelRegister.h:59
Belle2::MCParticle::c_PrimaryParticle
@ c_PrimaryParticle
bit 0: Particle is primary particle.
Definition: MCParticle.h:58
Belle2::MultivariateNormalGenerator::reset
void reset()
reset the generator setting the size to 0.
Definition: MultivariateNormalGenerator.cc:16