#include <EvtVubNLO.hh>
Inheritance diagram for EvtVubNLO:
Public Member Functions | |
EvtVubNLO () | |
virtual | ~EvtVubNLO () |
void | getName (std::string &name) |
EvtDecayBase * | clone () |
void | initProbMax () |
void | init () |
void | decay (EvtParticle *p) |
void | makeDecay (EvtParticle *p) |
void | setDaughterSpinDensity (int daughter) |
int | isDaughterSpinDensitySet (int daughter) |
virtual std::string | commandName () |
virtual void | command (std::string cmd) |
double | getProbMax (double prob) |
double | resetProbMax (double prob) |
virtual bool | matchingDecay (const EvtDecayBase &other) const |
EvtId | getParentId () |
double | getBranchingFraction () |
void | disableCheckQ () |
void | checkQ () |
int | getNDaug () |
EvtId * | getDaugs () |
EvtId | getDaug (int i) |
int | getNArg () |
int | getPHOTOS () |
void | setPHOTOS () |
void | setVerbose () |
void | setSummary () |
double * | getArgs () |
std::string * | getArgsStr () |
double | getArg (int j) |
std::string | getArgStr (int j) |
std::string | getModelName () |
int | getDSum () |
int | summary () |
int | verbose () |
void | saveDecayInfo (EvtId ipar, int ndaug, EvtId *daug, int narg, std::vector< std::string > &args, std::string name, double brfr) |
void | printSummary () |
void | setProbMax (double prbmx) |
void | noProbMax () |
void | checkNArg (int a1, int a2=-1, int a3=-1, int a4=-1) |
void | checkNDaug (int d1, int d2=-1) |
void | checkSpinParent (EvtSpinType::spintype sp) |
void | checkSpinDaughter (int d1, EvtSpinType::spintype sp) |
virtual int | nRealDaughters () |
Static Public Member Functions | |
static void | findMasses (EvtParticle *p, int ndaugs, EvtId daugs[10], double masses[10]) |
static void | findMass (EvtParticle *p) |
static double | findMaxMass (EvtParticle *p) |
Protected Member Functions | |
bool | daugsDecayedByParentModel () |
Protected Attributes | |
bool | _daugsDecayedByParentModel |
Private Member Functions | |
double | tripleDiff (double pp, double pl, double pm) |
double | SFNorm (const std::vector< double > &coeffs) |
double | F10 (const std::vector< double > &coeffs) |
double | F20 (const std::vector< double > &coeffs) |
double | F30 (const std::vector< double > &coeffs) |
double | mu_i () |
double | mu_bar () |
double | mu_h () |
double | lambda1 () |
double | lambda_SF () |
double | lambda_bar (double omega0) |
double | lambda2 () |
double | mu_pi2 (double omega0) |
double | lambda (double mu=0) |
double | M0 (double mui, double omega0) |
double | subS (const std::vector< double > &coeffs) |
double | subT (const std::vector< double > &coeffs) |
double | subU (const std::vector< double > &coeffs) |
double | subV (const std::vector< double > &coeffs) |
double | S0 (double a, double r) |
double | S1 (double a, double r) |
double | S2 (double a, double r) |
double | dSudakovdepsi (double mu1, double mu2) |
double | Sudakov (double mu1, double mu2, double epsi=0) |
double | dGdepsi (double mu1, double mu2) |
double | aGamma (double mu1, double mu2, double epsi=0) |
double | dgpdepsi (double mu1, double mu2) |
double | agammap (double mu1, double mu2, double epsi=0) |
double | U1 (double mu1, double mu2, double epsi=0) |
double | U1lo (double mu1, double mu2) |
double | U1nlo (double mu1, double mu2) |
double | alo (double mu1, double mu2) |
double | anlo (double mu1, double mu2) |
Static Private Member Functions | |
static double | integrand (double omega, const std::vector< double > &coeffs) |
static double | F1Int (double omega, const std::vector< double > &coeffs) |
static double | F2Int (double omega, const std::vector< double > &coeffs) |
static double | F3Int (double omega, const std::vector< double > &coeffs) |
static double | g1 (double y, double z) |
static double | g2 (double y, double z) |
static double | g3 (double y, double z) |
static double | Gamma (double z) |
static double | dgamma (double t, const std::vector< double > &c) |
static double | Gamma (double z, double tmax) |
static double | beta0 (int nf=4) |
static double | beta1 (int nf=4) |
static double | beta2 (int nf=4) |
static double | gamma0 () |
static double | gamma1 (int nf=4) |
static double | gamma2 (int nf=4) |
static double | gammap0 () |
static double | gammap1 (int nf=4) |
static double | alphas (double mu) |
static double | C_F (double mu) |
static double | cGaus (double b) |
static double | shapeFunction (double omega, const std::vector< double > &coeffs) |
static double | expShapeFunction (double omega, const std::vector< double > &coeffs) |
static double | gausShapeFunction (double omega, const std::vector< double > &coeffs) |
Private Attributes | |
double | _lbar |
double | _mupi2 |
double | _mb |
double | _mB |
double | _lambdaSF |
double | _b |
double | _kpar |
double | _mui |
double | _SFNorm |
double | _dGMax |
int | _nbins |
int | _idSF |
double * | _masses |
double * | _weights |
double | _gmax |
int | _ngood |
int | _ntot |
Definition at line 32 of file EvtVubNLO.hh.
EvtVubNLO::EvtVubNLO | ( | ) | [inline] |
EvtVubNLO::~EvtVubNLO | ( | ) | [virtual] |
double EvtVubNLO::aGamma | ( | double | mu1, | |
double | mu2, | |||
double | epsi = 0 | |||
) | [inline, private] |
double EvtVubNLO::agammap | ( | double | mu1, | |
double | mu2, | |||
double | epsi = 0 | |||
) | [inline, private] |
double EvtVubNLO::alo | ( | double | mu1, | |
double | mu2 | |||
) | [inline, private] |
Definition at line 158 of file EvtVubNLO.hh.
References aGamma().
Referenced by tripleDiff().
00158 {return -2*aGamma(mu1,mu2);}
double EvtVubNLO::alphas | ( | double | mu | ) | [static, private] |
Definition at line 591 of file EvtVubNLO.cc.
References beta0(), beta1(), beta2(), and EvtConst::pi.
Referenced by aGamma(), agammap(), C_F(), dGdepsi(), dgpdepsi(), dSudakovdepsi(), and Sudakov().
00591 { 00592 double Lambda4=0.302932; 00593 double lg=2*log(mu/Lambda4); 00594 return 4*EvtConst::pi/lg/beta0()*(1-beta1()*log(lg)/pow(beta0(),2)/lg+pow(beta1()/lg,2)/pow(beta0(),4)*(pow(log(lg)-0.5,2)-1.25+beta2()*beta0()/pow(beta1(),2))); 00595 }
double EvtVubNLO::anlo | ( | double | mu1, | |
double | mu2 | |||
) | [inline, private] |
Definition at line 159 of file EvtVubNLO.hh.
References dGdepsi().
Referenced by F10().
00159 {return -2*dGdepsi(mu1,mu2);}
static double EvtVubNLO::beta0 | ( | int | nf = 4 |
) | [inline, static, private] |
Definition at line 97 of file EvtVubNLO.hh.
Referenced by aGamma(), agammap(), alphas(), dGdepsi(), dgpdepsi(), S0(), S1(), and S2().
static double EvtVubNLO::beta1 | ( | int | nf = 4 |
) | [inline, static, private] |
Definition at line 98 of file EvtVubNLO.hh.
Referenced by alphas(), dGdepsi(), dgpdepsi(), S1(), and S2().
static double EvtVubNLO::beta2 | ( | int | nf = 4 |
) | [inline, static, private] |
static double EvtVubNLO::C_F | ( | double | mu | ) | [inline, static, private] |
Definition at line 110 of file EvtVubNLO.hh.
References alphas(), and EvtConst::pi.
Referenced by F10(), F1Int(), F20(), F2Int(), F3Int(), and M0().
00110 {return (4.0/3.0)*alphas(mu)/4./EvtConst::pi;}
static double EvtVubNLO::cGaus | ( | double | b | ) | [inline, static, private] |
Definition at line 121 of file EvtVubNLO.hh.
References Gamma().
Referenced by gausShapeFunction(), lambda_bar(), mu_pi2(), and SFNorm().
void EvtDecayBase::checkNArg | ( | int | a1, | |
int | a2 = -1 , |
|||
int | a3 = -1 , |
|||
int | a4 = -1 | |||
) | [inherited] |
Definition at line 482 of file EvtDecayBase.cc.
References EvtDecayBase::_modelname, EvtDecayBase::_narg, calibUtil::ERROR, EvtDecayBase::printSummary(), and report().
Referenced by EvtVVSPwave::init(), EvtVVPIPI_WEIGHTED::init(), EvtVVpipi::init(), EvtVVP::init(), EvtVSSMix::init(), EvtVSSBMixCPT::init(), EvtVSS::init(), EvtVSPPwave::init(), EvtVPHOtoVISRHi::init(), EvtVPHOtoVISR::init(), EvtVll::init(), EvtVectorIsr::init(), EvtTVSPwave::init(), EvtTSS::init(), EvtTrackGen::init(), EvtTauVectornu::init(), EvtTauScalarnu::init(), EvtTaulnunu::init(), EvtTauHadnu::init(), EvtTauGamMu::init(), EvtT2GV::init(), EvtSVVNONCPEIGEN::init(), EvtSVVHelAmp::init(), EvtSVVCPLH::init(), EvtSVVCP::init(), EvtSVSNONCPEIGEN::init(), EvtSVSCPLH::init(), EvtSVSCPiso::init(), EvtSVSCP::init(), EvtSVS::init(), EvtSVPHelAmp::init(), EvtSVPCP::init(), EvtSTSCP::init(), EvtSTS::init(), EvtSSSCPT::init(), EvtSSSCPpng::init(), EvtSSSCP::init(), EvtSSDCP::init(), EvtSLN::init(), EvtSll::init(), EvtS2GV::init(), EvtRexc::init(), EvtPythia::init(), EvtPyGaGa::init(), EvtPycont::init(), EvtPi0Dalitz::init(), EvtPhsp::init(), EvtPhokhara_ppbar::init(), EvtPhokhara_pipipi0::init(), EvtPhokhara_pipi::init(), EvtPhokhara_pi0pi0pipi::init(), EvtPhokhara_nnbar::init(), EvtPhokhara_LLB::init(), EvtPhokhara_KK::init(), EvtPhokhara_K0K0::init(), EvtPhokhara_4pi::init(), EvtPhokhara::init(), EvtPhiDalitz::init(), EvtPartWave::init(), EvtP2GC2::init(), EvtP2GC1::init(), EvtP2GC0::init(), EvtOmegaDalitz::init(), EvtmH2::init(), EvtMelikhov::init(), EvtMBody3::init(), EvtMassH2::init(), EvtMassH1::init(), EvtLNuGamma::init(), EvtLambdaP_BarGamma::init(), EvtLambdac2pKpi::init(), EvtKstarstargamma::init(), EvtKstarnunu::init(), EvtJscont::init(), EvtJpipi::init(), EvtJPE::init(), EvtJetSet::init(), EvtISGW2::init(), EvtISGW::init(), EvtHypWK::init(), EvtHQET::init(), EvtHelPPJ::init(), EvtHelAmp::init(), EvtHAngSam3::init(), EvtGoityRoberts::init(), EvtFlatQ2::init(), EvtEtaDalitz::init(), EvtEDM::init(), EvtDMix::init(), EvtDeBD::init(), EvtDDalitz::init(), EvtChi2BB2::init(), EvtChi2BB1::init(), EvtChi1BB2::init(), EvtChi1BB1::init(), EvtChi0BB2::init(), EvtCBTo3piP00::init(), EvtCBTo3piMPP::init(), EvtCalHelAmp::init(), EvtBtoXsll::init(), EvtBtoXsEtap::init(), EvtbTosllBall::init(), EvtbTosllAli::init(), EvtBToKpipiCP::init(), EvtBtoKpiCPiso::init(), EvtBtoKD3P::init(), EvtBTo4piCP::init(), EvtBTo3piCP::init(), EvtBto2piCPiso::init(), EvtBsquark::init(), EvtBody3::init(), EvtBHadronic::init(), EvtAV2GV::init(), and EvtAngH2::init().
00482 { 00483 00484 if ( _narg != a1 && _narg != a2 && _narg != a3 && _narg != a4 ) { 00485 report(ERROR,"EvtGen") << _modelname.c_str() << " generator expected "<<endl; 00486 report(ERROR,"EvtGen") << a1<<endl;; 00487 if ( a2>-1) { 00488 report(ERROR,"EvtGen") << " or " << a2<<endl; 00489 } 00490 if ( a3>-1) { 00491 report(ERROR,"EvtGen") << " or " << a3<<endl; 00492 } 00493 if ( a4>-1) { 00494 report(ERROR,"EvtGen") << " or " << a4<<endl; 00495 } 00496 report(ERROR,"EvtGen") << " arguments but found:"<< _narg << endl; 00497 printSummary(); 00498 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl; 00499 ::abort(); 00500 00501 } 00502 00503 }
void EvtDecayBase::checkNDaug | ( | int | d1, | |
int | d2 = -1 | |||
) | [inherited] |
Definition at line 504 of file EvtDecayBase.cc.
References EvtDecayBase::_modelname, EvtDecayBase::_ndaug, calibUtil::ERROR, EvtDecayBase::printSummary(), and report().
Referenced by EvtVVSPwave::init(), EvtVVPIPI_WEIGHTED::init(), EvtVVpipi::init(), EvtVVP::init(), init(), EvtVubHybrid::init(), EvtVub::init(), EvtVSSMix::init(), EvtVSSBMixCPT::init(), EvtVSS::init(), EvtVSPPwave::init(), EvtVPHOtoVISRHi::init(), EvtVPHOtoVISR::init(), EvtVll::init(), EvtVectorIsr::init(), EvtTVSPwave::init(), EvtTSS::init(), EvtTauVectornu::init(), EvtTauScalarnu::init(), EvtTaulnunu::init(), EvtTauGamMu::init(), EvtSVVNONCPEIGEN::init(), EvtSVVHelAmp::init(), EvtSVVCPLH::init(), EvtSVVCP::init(), EvtSVSNONCPEIGEN::init(), EvtSVSCPLH::init(), EvtSVSCPiso::init(), EvtSVSCP::init(), EvtSVS::init(), EvtSVPHelAmp::init(), EvtSVPCP::init(), EvtSTSCP::init(), EvtSTS::init(), EvtSSSCPT::init(), EvtSSSCPpng::init(), EvtSSSCP::init(), EvtSSDCP::init(), EvtSPL::init(), EvtSLPole::init(), EvtSLN::init(), EvtSll::init(), EvtSLBKPole::init(), EvtS2GV::init(), EvtPi0Dalitz::init(), EvtPhokhara::init(), EvtPhiDalitz::init(), EvtPBB2::init(), EvtPBB1::init(), EvtPartWave::init(), EvtP2GC2::init(), EvtP2GC1::init(), EvtP2GC0::init(), EvtOmegaDalitz::init(), EvtMelikhov::init(), EvtLNuGamma::init(), EvtLambdaP_BarGamma::init(), EvtKstarstargamma::init(), EvtKstarnunu::init(), EvtKKLambdaC::init(), EvtJTO3P::init(), EvtJpipi::init(), EvtJPE::init(), EvtJ2BB3::init(), EvtJ2BB2::init(), EvtJ2BB1::init(), EvtISGW2::init(), EvtISGW::init(), EvtHypWK::init(), EvtHQET2::init(), EvtHQET::init(), EvtHelPPJ::init(), EvtHelAmp::init(), EvtGoityRoberts::init(), EvtFlatQ2::init(), EvtEtaDalitz::init(), EvtEDM::init(), EvtDeBD::init(), EvtDDalitz::init(), EvtD0mixDalitz::init(), EvtChi2BB2::init(), EvtChi2BB1::init(), EvtChi1BB2::init(), EvtChi1BB1::init(), EvtChi0BB2::init(), EvtChi0BB1::init(), EvtCBTo3piP00::init(), EvtCBTo3piMPP::init(), EvtBtoXsll::init(), EvtbTosllBall::init(), EvtbTosllAli::init(), EvtBToKpipiCP::init(), EvtBtoKpiCPiso::init(), EvtBtoKD3P::init(), EvtBTo4piCP::init(), EvtBTo3piCP::init(), EvtBto2piCPiso::init(), EvtAV2GV::init(), EvtAngSamLab::init(), EvtAngSam3::init(), and EvtAngSam::init().
00504 { 00505 00506 if ( _ndaug != d1 && _ndaug != d2 ) { 00507 report(ERROR,"EvtGen") << _modelname.c_str() << " generator expected "; 00508 report(ERROR,"EvtGen") << d1; 00509 if ( d2>-1) { 00510 report(ERROR,"EvtGen") << " or " << d2; 00511 } 00512 report(ERROR,"EvtGen") << " daughters but found:"<< _ndaug << endl; 00513 printSummary(); 00514 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl; 00515 ::abort(); 00516 } 00517 00518 }
void EvtDecayBase::checkQ | ( | ) | [inherited] |
Definition at line 35 of file EvtDecayBase.cc.
References EvtDecayBase::_daug, EvtDecayBase::_modelname, EvtDecayBase::_ndaug, EvtDecayBase::_parent, EvtCyclic3::c_str(), EvtPDL::chg3(), calibUtil::ERROR, genRecEmupikp::i, EvtPDL::name(), q, and report().
Referenced by EvtDecayBase::saveDecayInfo().
00035 { 00036 int i; 00037 int q=0; 00038 int qpar; 00039 00040 //If there are no daughters (jetset etc) then we do not 00041 //want to do this test. Why? Because sometimes the parent 00042 //will have a nonzero charge. 00043 00044 if ( _ndaug != 0) { 00045 for(i=0; i<_ndaug; i++ ) { 00046 q += EvtPDL::chg3(_daug[i]); 00047 } 00048 qpar = EvtPDL::chg3(_parent); 00049 00050 if ( q != qpar ) { 00051 report(ERROR,"EvtGen") <<_modelname.c_str()<< " generator expected " 00052 << " charge to be conserved, found:"<<endl; 00053 report(ERROR,"EvtGen") << "Parent charge of "<<(qpar/3)<<endl; 00054 report(ERROR,"EvtGen") << "Sum of daughter charge of "<<(q/3)<<endl; 00055 report(ERROR,"EvtGen") << "The parent is "<< EvtPDL::name(_parent).c_str()<<endl; 00056 for(i=0; i<_ndaug; i++ ) { 00057 report(ERROR,"EvtGen") << "Daughter "<< EvtPDL::name(_daug[i]).c_str()<<endl; 00058 } 00059 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl; 00060 00061 ::abort(); 00062 } 00063 } 00064 }
void EvtDecayBase::checkSpinDaughter | ( | int | d1, | |
EvtSpinType::spintype | sp | |||
) | [inherited] |
Definition at line 533 of file EvtDecayBase.cc.
References EvtDecayBase::_modelname, calibUtil::ERROR, EvtDecayBase::getDaug(), EvtPDL::getSpinType(), EvtDecayBase::printSummary(), and report().
Referenced by EvtVVSPwave::init(), EvtVVPIPI_WEIGHTED::init(), EvtVVpipi::init(), EvtVVP::init(), EvtVSSMix::init(), EvtVSSBMixCPT::init(), EvtVSS::init(), EvtVSPPwave::init(), EvtVPHOtoVISRHi::init(), EvtVPHOtoVISR::init(), EvtVll::init(), EvtVectorIsr::init(), EvtTVSPwave::init(), EvtTSS::init(), EvtTauVectornu::init(), EvtTauScalarnu::init(), EvtTaulnunu::init(), EvtTauHadnu::init(), EvtTauGamMu::init(), EvtSVVNONCPEIGEN::init(), EvtSVVHelAmp::init(), EvtSVVCPLH::init(), EvtSVVCP::init(), EvtSVSNONCPEIGEN::init(), EvtSVSCPLH::init(), EvtSVSCPiso::init(), EvtSVSCP::init(), EvtSVS::init(), EvtSVPHelAmp::init(), EvtSVPCP::init(), EvtSTSCP::init(), EvtSTS::init(), EvtSSSCPpng::init(), EvtSSSCP::init(), EvtSPL::init(), EvtSLPole::init(), EvtSLN::init(), EvtSll::init(), EvtSLBKPole::init(), EvtS2GV::init(), EvtPi0Dalitz::init(), EvtPhiDalitz::init(), EvtPBB2::init(), EvtPBB1::init(), EvtP2GC2::init(), EvtP2GC1::init(), EvtP2GC0::init(), EvtOmegaDalitz::init(), EvtMelikhov::init(), EvtLNuGamma::init(), EvtLambdaP_BarGamma::init(), EvtKstarstargamma::init(), EvtKstarnunu::init(), EvtKKLambdaC::init(), EvtJTO3P::init(), EvtJpipi::init(), EvtJPE::init(), EvtJ2BB3::init(), EvtJ2BB2::init(), EvtJ2BB1::init(), EvtISGW2::init(), EvtISGW::init(), EvtHypWK::init(), EvtHQET2::init(), EvtHQET::init(), EvtHelPPJ::init(), EvtGoityRoberts::init(), EvtFlatQ2::init(), EvtEtaDalitz::init(), EvtEDM::init(), EvtDeBD::init(), EvtDDalitz::init(), EvtD0mixDalitz::init(), EvtChi2BB2::init(), EvtChi2BB1::init(), EvtChi1BB2::init(), EvtChi1BB1::init(), EvtChi0BB2::init(), EvtChi0BB1::init(), EvtCBTo3piP00::init(), EvtCBTo3piMPP::init(), EvtbTosllBall::init(), EvtbTosllAli::init(), EvtBToKpipiCP::init(), EvtBtoKpiCPiso::init(), EvtBtoKD3P::init(), EvtBTo4piCP::init(), EvtBTo3piCP::init(), EvtBto2piCPiso::init(), and EvtAV2GV::init().
00533 { 00534 00535 EvtSpinType::spintype parenttype = EvtPDL::getSpinType(getDaug(d1)); 00536 if ( parenttype != sp ) { 00537 report(ERROR,"EvtGen") << _modelname.c_str() 00538 << " did not get the correct daughter spin d=" 00539 << d1 << endl; 00540 printSummary(); 00541 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl; 00542 ::abort(); 00543 } 00544 00545 }
void EvtDecayBase::checkSpinParent | ( | EvtSpinType::spintype | sp | ) | [inherited] |
Definition at line 520 of file EvtDecayBase.cc.
References EvtDecayBase::_modelname, calibUtil::ERROR, EvtDecayBase::getParentId(), EvtPDL::getSpinType(), EvtDecayBase::printSummary(), and report().
Referenced by EvtVVSPwave::init(), EvtVVPIPI_WEIGHTED::init(), EvtVVpipi::init(), EvtVVP::init(), EvtVSSMix::init(), EvtVSSBMixCPT::init(), EvtVSS::init(), EvtVSPPwave::init(), EvtVPHOtoVISRHi::init(), EvtVPHOtoVISR::init(), EvtVll::init(), EvtVectorIsr::init(), EvtTVSPwave::init(), EvtTSS::init(), EvtTauVectornu::init(), EvtTauScalarnu::init(), EvtTaulnunu::init(), EvtTauHadnu::init(), EvtTauGamMu::init(), EvtSVVHelAmp::init(), EvtSVVCPLH::init(), EvtSVVCP::init(), EvtSVSCPLH::init(), EvtSVSCPiso::init(), EvtSVSCP::init(), EvtSVS::init(), EvtSVPHelAmp::init(), EvtSVPCP::init(), EvtSTSCP::init(), EvtSTS::init(), EvtSSSCPpng::init(), EvtSSSCP::init(), EvtSPL::init(), EvtSLPole::init(), EvtSLN::init(), EvtSll::init(), EvtSLBKPole::init(), EvtS2GV::init(), EvtPi0Dalitz::init(), EvtPhiDalitz::init(), EvtPBB2::init(), EvtPBB1::init(), EvtP2GC2::init(), EvtP2GC1::init(), EvtP2GC0::init(), EvtOmegaDalitz::init(), EvtMelikhov::init(), EvtLNuGamma::init(), EvtLambdaP_BarGamma::init(), EvtKstarstargamma::init(), EvtKstarnunu::init(), EvtKKLambdaC::init(), EvtJTO3P::init(), EvtJpipi::init(), EvtJPE::init(), EvtJ2BB3::init(), EvtJ2BB2::init(), EvtJ2BB1::init(), EvtISGW2::init(), EvtISGW::init(), EvtHypWK::init(), EvtHQET2::init(), EvtHQET::init(), EvtHelPPJ::init(), EvtGoityRoberts::init(), EvtFlatQ2::init(), EvtEtaDalitz::init(), EvtEDM::init(), EvtDeBD::init(), EvtDDalitz::init(), EvtD0mixDalitz::init(), EvtChi2BB2::init(), EvtChi2BB1::init(), EvtChi1BB2::init(), EvtChi1BB1::init(), EvtChi0BB2::init(), EvtChi0BB1::init(), EvtCBTo3piP00::init(), EvtCBTo3piMPP::init(), EvtbTosllBall::init(), EvtbTosllAli::init(), EvtBToKpipiCP::init(), EvtBtoKpiCPiso::init(), EvtBtoKD3P::init(), EvtBTo4piCP::init(), EvtBTo3piCP::init(), EvtBto2piCPiso::init(), and EvtAV2GV::init().
00520 { 00521 00522 EvtSpinType::spintype parenttype = EvtPDL::getSpinType(getParentId()); 00523 if ( parenttype != sp ) { 00524 report(ERROR,"EvtGen") << _modelname.c_str() 00525 << " did not get the correct parent spin\n"; 00526 printSummary(); 00527 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl; 00528 ::abort(); 00529 } 00530 00531 }
EvtDecayBase * EvtVubNLO::clone | ( | ) | [virtual] |
Implements EvtDecayBase.
Definition at line 57 of file EvtVubNLO.cc.
00057 { 00058 00059 return new EvtVubNLO; 00060 00061 }
void EvtDecayBase::command | ( | std::string | cmd | ) | [virtual, inherited] |
Reimplemented in EvtJetSet, EvtLunda, EvtLundCharm, EvtOpenCharm, EvtPhokhara, EvtPhokhara_4pi, EvtPhokhara_K0K0, EvtPhokhara_KK, EvtPhokhara_LLB, EvtPhokhara_nnbar, EvtPhokhara_pi0pi0pipi, EvtPhokhara_pipi, EvtPhokhara_pipipi0, EvtPhokhara_ppbar, EvtPythia, and EvtTauola.
Definition at line 132 of file EvtDecayBase.cc.
References calibUtil::ERROR, and report().
Referenced by EvtModel::storeCommand().
00132 { 00133 report(ERROR,"EvtGen") << "Should never call EvtDecayBase::command"<<endl; 00134 ::abort(); 00135 }
std::string EvtDecayBase::commandName | ( | ) | [virtual, inherited] |
Reimplemented in EvtJetSet, EvtLunda, EvtLundCharm, EvtOpenCharm, EvtPhokhara, EvtPhokhara_4pi, EvtPhokhara_K0K0, EvtPhokhara_KK, EvtPhokhara_LLB, EvtPhokhara_nnbar, EvtPhokhara_pi0pi0pipi, EvtPhokhara_pipi, EvtPhokhara_pipipi0, EvtPhokhara_ppbar, EvtPythia, and EvtTauola.
Definition at line 129 of file EvtDecayBase.cc.
References deljobs::string.
Referenced by EvtModel::Register().
00129 { 00130 return std::string(""); 00131 }
bool EvtDecayBase::daugsDecayedByParentModel | ( | ) | [inline, protected, inherited] |
Definition at line 110 of file EvtDecayBase.hh.
References EvtDecayBase::_daugsDecayedByParentModel.
Referenced by EvtDecayProb::makeDecay(), EvtDecayIncoherent::makeDecay(), and EvtDecayAmp::makeDecay().
00110 {return _daugsDecayedByParentModel;}
void EvtVubNLO::decay | ( | EvtParticle * | p | ) | [virtual] |
Implements EvtDecayBase.
Definition at line 173 of file EvtVubNLO.cc.
References _dGMax, _gmax, _masses, _mB, _nbins, _ngood, _ntot, _weights, cos(), calibUtil::ERROR, EvtRandom::Flat(), EvtDecayBase::getDaug(), EvtParticle::getDaug(), EvtDecayBase::getDaugs(), EvtDecayBase::getNDaug(), EvtParticle::init(), EvtParticle::initializePhaseSpace(), ganga-rec::j, M_PI, EvtParticle::mass(), report(), EvtVector4R::set(), sin(), tripleDiff(), and w.
00173 { 00174 00175 int j; 00176 // B+ -> u-bar specflav l+ nu 00177 00178 EvtParticle *xuhad, *lepton, *neutrino; 00179 EvtVector4R p4; 00180 00181 double pp,pm,pl,ml,El(0.0),Eh(0.0),sh(0.0); 00182 00183 00184 00185 p->initializePhaseSpace(getNDaug(),getDaugs()); 00186 00187 xuhad=p->getDaug(0); 00188 lepton=p->getDaug(1); 00189 neutrino=p->getDaug(2); 00190 00191 _mB = p->mass(); 00192 ml = lepton->mass(); 00193 00194 bool tryit = true; 00195 00196 while (tryit) { 00197 // pm=(E_H+P_H) 00198 pm= EvtRandom::Flat(0.,1); 00199 pm= pow(pm,1./3.)*_mB; 00200 // pl=mB-2*El 00201 pl = EvtRandom::Flat(0.,1); 00202 pl=sqrt(pl)*pm; 00203 // pp=(E_H-P_H) 00204 pp = EvtRandom::Flat(0.,pl); 00205 00206 _ntot++; 00207 00208 El = (_mB-pl)/2.; 00209 Eh = (pp+pm)/2; 00210 sh = pp*pm; 00211 00212 double pdf(0.); 00213 if (pp<pl && El>ml&& sh > _masses[0]*_masses[0]&& _mB*_mB + sh - 2*_mB*Eh > ml*ml) { 00214 double xran = EvtRandom::Flat(0,_dGMax); 00215 pdf = tripleDiff(pp,pl,pm); // triple differential distribution 00216 // cout <<" P+,P-,Pl,Pdf= "<<pp <<" "<<pm<<" "<<pl<<" "<<pdf<<endl; 00217 if(pdf>_dGMax){ 00218 report(ERROR,"EvtGen") << "EvtVubNLO pdf above maximum: " <<pdf 00219 <<" P+,P-,Pl,Pdf= "<<pp <<" "<<pm<<" "<<pl<<" "<<pdf<<endl; 00220 //::abort(); 00221 00222 } 00223 if ( pdf >= xran ) tryit = false; 00224 00225 if(pdf>_gmax)_gmax=pdf; 00226 } else { 00227 // cout <<" EvtVubNLO incorrect kinematics sh= "<<sh<<"EH "<<Eh<<endl; 00228 } 00229 00230 00231 // reweight the Mx distribution 00232 if(!tryit && _nbins>0){ 00233 _ngood++; 00234 double xran1 = EvtRandom::Flat(); 00235 double m = sqrt(sh);j=0; 00236 while ( j < _nbins && m > _masses[j] ) j++; 00237 double w = _weights[j-1]; 00238 if ( w < xran1 ) tryit = true;// through away this candidate 00239 } 00240 } 00241 00242 // cout <<" max prob "<<gmax<<" " << pp<<" "<<y<<" "<<x<<endl; 00243 00244 // o.k. we have the three kineamtic variables 00245 // now calculate a flat cos Theta_H [-1,1] distribution of the 00246 // hadron flight direction w.r.t the B flight direction 00247 // because the B is a scalar and should decay isotropic. 00248 // Then chose a flat Phi_H [0,2Pi] w.r.t the B flight direction 00249 // and and a flat Phi_L [0,2Pi] in the W restframe w.r.t the 00250 // W flight direction. 00251 00252 double ctH = EvtRandom::Flat(-1,1); 00253 double phH = EvtRandom::Flat(0,2*M_PI); 00254 double phL = EvtRandom::Flat(0,2*M_PI); 00255 00256 // now compute the four vectors in the B Meson restframe 00257 00258 double ptmp,sttmp; 00259 // calculate the hadron 4 vector in the B Meson restframe 00260 00261 sttmp = sqrt(1-ctH*ctH); 00262 ptmp = sqrt(Eh*Eh-sh); 00263 double pHB[4] = {Eh,ptmp*sttmp*cos(phH),ptmp*sttmp*sin(phH),ptmp*ctH}; 00264 p4.set(pHB[0],pHB[1],pHB[2],pHB[3]); 00265 xuhad->init( getDaug(0), p4); 00266 00267 00268 // calculate the W 4 vector in the B Meson restrframe 00269 00270 double apWB = ptmp; 00271 double pWB[4] = {_mB-Eh,-pHB[1],-pHB[2],-pHB[3]}; 00272 00273 // first go in the W restframe and calculate the lepton and 00274 // the neutrino in the W frame 00275 00276 double mW2 = _mB*_mB + sh - 2*_mB*Eh; 00277 // if(mW2<0.1){ 00278 // cout <<" low Q2! "<<pp<<" "<<epp<<" "<<x<<" "<<y<<endl; 00279 //} 00280 double beta = ptmp/pWB[0]; 00281 double gamma = pWB[0]/sqrt(mW2); 00282 00283 double pLW[4]; 00284 00285 ptmp = (mW2-ml*ml)/2/sqrt(mW2); 00286 pLW[0] = sqrt(ml*ml + ptmp*ptmp); 00287 00288 double ctL = (El - gamma*pLW[0])/beta/gamma/ptmp; 00289 if ( ctL < -1 ) ctL = -1; 00290 if ( ctL > 1 ) ctL = 1; 00291 sttmp = sqrt(1-ctL*ctL); 00292 00293 // eX' = eZ x eW 00294 double xW[3] = {-pWB[2],pWB[1],0}; 00295 // eZ' = eW 00296 double zW[3] = {pWB[1]/apWB,pWB[2]/apWB,pWB[3]/apWB}; 00297 00298 double lx = sqrt(xW[0]*xW[0]+xW[1]*xW[1]); 00299 for (j=0;j<2;j++) 00300 xW[j] /= lx; 00301 00302 // eY' = eZ' x eX' 00303 double yW[3] = {-pWB[1]*pWB[3],-pWB[2]*pWB[3],pWB[1]*pWB[1]+pWB[2]*pWB[2]}; 00304 double ly = sqrt(yW[0]*yW[0]+yW[1]*yW[1]+yW[2]*yW[2]); 00305 for (j=0;j<3;j++) 00306 yW[j] /= ly; 00307 00308 // p_lep = |p_lep| * ( sin(Theta) * cos(Phi) * eX' 00309 // + sin(Theta) * sin(Phi) * eY' 00310 // + cos(Theta) * eZ') 00311 for (j=0;j<3;j++) 00312 pLW[j+1] = sttmp*cos(phL)*ptmp*xW[j] 00313 + sttmp*sin(phL)*ptmp*yW[j] 00314 + ctL *ptmp*zW[j]; 00315 00316 double apLW = ptmp; 00317 00318 // boost them back in the B Meson restframe 00319 00320 double appLB = beta*gamma*pLW[0] + gamma*ctL*apLW; 00321 00322 ptmp = sqrt(El*El-ml*ml); 00323 double ctLL = appLB/ptmp; 00324 00325 if ( ctLL > 1 ) ctLL = 1; 00326 if ( ctLL < -1 ) ctLL = -1; 00327 00328 double pLB[4] = {El,0,0,0}; 00329 double pNB[8] = {pWB[0]-El,0,0,0}; 00330 00331 for (j=1;j<4;j++) { 00332 pLB[j] = pLW[j] + (ctLL*ptmp - ctL*apLW)/apWB*pWB[j]; 00333 pNB[j] = pWB[j] - pLB[j]; 00334 } 00335 00336 p4.set(pLB[0],pLB[1],pLB[2],pLB[3]); 00337 lepton->init( getDaug(1), p4); 00338 00339 p4.set(pNB[0],pNB[1],pNB[2],pNB[3]); 00340 neutrino->init( getDaug(2), p4); 00341 00342 return ; 00343 }
static double EvtVubNLO::dgamma | ( | double | t, | |
const std::vector< double > & | c | |||
) | [inline, static, private] |
double EvtVubNLO::dGdepsi | ( | double | mu1, | |
double | mu2 | |||
) | [inline, private] |
double EvtVubNLO::dgpdepsi | ( | double | mu1, | |
double | mu2 | |||
) | [inline, private] |
void EvtDecayBase::disableCheckQ | ( | ) | [inline, inherited] |
Definition at line 62 of file EvtDecayBase.hh.
References EvtDecayBase::_chkCharge.
Referenced by EvtSinglePoint::init(), EvtSingleParticle2::init(), and EvtSingleParticle::init().
00062 {_chkCharge=0;};
double EvtVubNLO::dSudakovdepsi | ( | double | mu1, | |
double | mu2 | |||
) | [inline, private] |
Definition at line 147 of file EvtVubNLO.hh.
References alphas(), EvtConst::pi, and S2().
Referenced by Sudakov(), and U1nlo().
00147 {return S2(alphas(mu1)/(4*EvtConst::pi),alphas(mu2)/alphas(mu1));}
double EvtVubNLO::expShapeFunction | ( | double | omega, | |
const std::vector< double > & | coeffs | |||
) | [static, private] |
Definition at line 607 of file EvtVubNLO.cc.
References exp().
Referenced by shapeFunction().
00607 { 00608 double b=sCoeffs[3]; 00609 double l=sCoeffs[7]; 00610 double wL=omega/l; 00611 00612 return pow(wL,b-1)*exp(-b*wL); 00613 }
double EvtVubNLO::F10 | ( | const std::vector< double > & | coeffs | ) | [private] |
Definition at line 395 of file EvtVubNLO.cc.
References anlo(), C_F(), ddilog_(), lambda1(), lambda2(), EvtConst::pi, shapeFunction(), subS(), subT(), subU(), subV(), U1lo(), and U1nlo().
Referenced by tripleDiff().
00395 { 00396 double pp=coeffs[0]; 00397 double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); 00398 double mui=coeffs[9]; 00399 double muh=coeffs[8]; 00400 double z=1-y; 00401 double result= U1nlo(muh,mui)/ U1lo(muh,mui); 00402 00403 result += anlo(muh,mui)*log(y); 00404 00405 result += C_F(muh)*(-4*pow(log(y*coeffs[4]/muh),2)+10*log(y*coeffs[4]/muh)-4*log(y)-2*log(y)/(1-y)-4.0*ddilog_(&z)-pow(EvtConst::pi,2)/6.-12 ); 00406 00407 result += C_F(mui)*(2*pow(log(y*coeffs[4]*pp/pow(mui,2)),2)-3*log(y*coeffs[4]*pp/pow(mui,2))+7-pow(EvtConst::pi,2) ); 00408 result *=shapeFunction(pp,coeffs); 00409 // changes due to SSF 00410 result += (-subS(coeffs)+2*subT(coeffs)+(subU(coeffs)-subV(coeffs))*(1/y-1.))/(coeffs[5]-pp); 00411 result += shapeFunction(pp,coeffs)/pow((coeffs[5]-coeffs[0]),2)*(-5*(lambda1()+3*lambda2())/6+2*(2*lambda1()/3-lambda2())/pow(y,2)); 00412 // result += (subS(coeffs)+subT(coeffs)+(subU(coeffs)-subV(coeffs))/y)/(coeffs[5]-pp); 00413 // this part has been added after Feb '05 00414 00415 //result += shapeFunction(pp,coeffs)/pow((coeffs[5]-coeffs[0]),2)*((lambda1()+3*lambda2())/6+2*(2*lambda1()/3-lambda2())/pow(y,2)); 00416 return result; 00417 }
double EvtVubNLO::F1Int | ( | double | omega, | |
const std::vector< double > & | coeffs | |||
) | [static, private] |
Definition at line 420 of file EvtVubNLO.cc.
References C_F(), g1(), and shapeFunction().
Referenced by integrand().
00420 { 00421 double pp=coeffs[0]; 00422 double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); 00423 // mubar == mui 00424 return C_F(coeffs[9])*( 00425 (shapeFunction(omega,coeffs)-shapeFunction(pp,coeffs))*(4*log(y*coeffs[4]*(pp-omega)/pow(coeffs[9],2))-3)/(pp-omega)+ 00426 (g1(y,(pp-omega)/(coeffs[5]-coeffs[0]))/(coeffs[5]-pp)*shapeFunction(omega,coeffs)) 00427 ); 00428 }
double EvtVubNLO::F20 | ( | const std::vector< double > & | coeffs | ) | [private] |
Definition at line 431 of file EvtVubNLO.cc.
References C_F(), lambda1(), lambda2(), shapeFunction(), subS(), subT(), and subV().
Referenced by tripleDiff().
00431 { 00432 double pp=coeffs[0]; 00433 double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); 00434 double result= C_F(coeffs[8])*log(y)/(1-y)*shapeFunction(pp,coeffs)- 00435 1/y*(subS(coeffs)+2*subT(coeffs)-(subT(coeffs)+subV(coeffs))/y)/(coeffs[5]-pp); 00436 // added after Feb '05 00437 result += shapeFunction(pp,coeffs)/pow((coeffs[5]-coeffs[0])*y,2)*(2*lambda1()/3+4*lambda2()-y*(7/6*lambda1()+3*lambda2())); 00438 return result; 00439 }
double EvtVubNLO::F2Int | ( | double | omega, | |
const std::vector< double > & | coeffs | |||
) | [static, private] |
Definition at line 442 of file EvtVubNLO.cc.
References C_F(), g3(), and shapeFunction().
Referenced by integrand().
00442 { 00443 double pp=coeffs[0]; 00444 double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); 00445 return C_F(coeffs[9])*g3(y,(pp-omega)/(coeffs[5]-coeffs[0]))*shapeFunction(omega,coeffs)/(coeffs[5]-pp); 00446 }
double EvtVubNLO::F30 | ( | const std::vector< double > & | coeffs | ) | [private] |
Definition at line 449 of file EvtVubNLO.cc.
References lambda1(), lambda2(), and shapeFunction().
Referenced by tripleDiff().
00449 { 00450 double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); 00451 return shapeFunction(coeffs[0],coeffs)/pow((coeffs[5]-coeffs[0])*y,2)*(-2*lambda1()/3+lambda2()); 00452 }
double EvtVubNLO::F3Int | ( | double | omega, | |
const std::vector< double > & | coeffs | |||
) | [static, private] |
Definition at line 455 of file EvtVubNLO.cc.
References C_F(), g3(), and shapeFunction().
Referenced by integrand().
00455 { 00456 double pp=coeffs[0]; 00457 double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); 00458 return C_F(coeffs[9])*g3(y,(pp-omega)/(coeffs[5]-coeffs[0]))/2*shapeFunction(omega,coeffs)/(coeffs[2]-coeffs[0]); 00459 }
void EvtDecayBase::findMass | ( | EvtParticle * | p | ) | [static, inherited] |
Definition at line 346 of file EvtDecayBase.cc.
References EvtCyclic3::c_str(), count, EvtDecayBase::findMaxMass(), EvtParticle::getDaug(), EvtParticle::getId(), EvtPDL::getMass(), EvtPDL::getMaxMass(), EvtPDL::getMinMass(), EvtParticle::getNDaug(), EvtParticle::getParent(), genRecEmupikp::i, Bes_Common::INFO, EvtParticle::mass(), mass, EvtPDL::name(), EvtParticle::printTree(), report(), and EvtParticle::setMass().
00346 { 00347 00348 //Need to also check that this mass does not screw 00349 //up the parent 00350 //This code assumes that for the ith daughter, 0..i-1 00351 //already have a mass 00352 double maxOkMass=findMaxMass(p); 00353 00354 int count=0; 00355 double mass; 00356 bool massOk=false; 00357 int i; 00358 while (!massOk) { 00359 count++; 00360 if ( count > 10000 ) { 00361 report(INFO,"EvtGen") << "Can not find a valid mass for: " << EvtPDL::name(p->getId()).c_str() <<endl; 00362 report(INFO,"EvtGen") << "Now printing parent and/or grandparent tree\n"; 00363 if ( p->getParent() ) { 00364 if ( p->getParent()->getParent() ) { 00365 p->getParent()->getParent()->printTree(); 00366 report(INFO,"EvtGen") << p->getParent()->getParent()->mass() <<endl; 00367 report(INFO,"EvtGen") << p->getParent()->mass() <<endl; 00368 } 00369 else{ 00370 p->getParent()->printTree(); 00371 report(INFO,"EvtGen") << p->getParent()->mass() <<endl; 00372 } 00373 } 00374 else p->printTree(); 00375 report(INFO,"EvtGen") << "maxokmass=" << maxOkMass << " " << EvtPDL::getMinMass(p->getId()) << " " << EvtPDL::getMaxMass(p->getId())<<endl; 00376 if ( p->getNDaug() ) { 00377 for (i=0; i<p->getNDaug(); i++) { 00378 report(INFO,"EvtGen") << p->getDaug(i)->mass()<<" "; 00379 } 00380 report(INFO,"EvtGen") << endl; 00381 } 00382 if ( maxOkMass >= EvtPDL::getMinMass(p->getId()) ) { 00383 report(INFO,"EvtGen") << "taking a default value\n"; 00384 p->setMass(maxOkMass); 00385 return; 00386 } 00387 assert(0); 00388 } 00389 mass = EvtPDL::getMass(p->getId()); 00390 //Just need to check that this mass is > than 00391 //the mass of all daughters 00392 double massSum=0.; 00393 if ( p->getNDaug() ) { 00394 for (i=0; i<p->getNDaug(); i++) { 00395 massSum+= p->getDaug(i)->mass(); 00396 } 00397 } 00398 //some special cases are handled with 0 (stable) or 1 (k0->ks/kl) daughters 00399 if (p->getNDaug()<2) massOk=true; 00400 if ( p->getParent() ) { 00401 if ( p->getParent()->getNDaug()==1 ) massOk=true; 00402 } 00403 if ( !massOk ) { 00404 if (massSum < mass) massOk=true; 00405 if ( mass> maxOkMass) massOk=false; 00406 } 00407 } 00408 00409 p->setMass(mass); 00410 00411 }
void EvtDecayBase::findMasses | ( | EvtParticle * | p, | |
int | ndaugs, | |||
EvtId | daugs[10], | |||
double | masses[10] | |||
) | [static, inherited] |
Definition at line 414 of file EvtDecayBase.cc.
References EvtCyclic3::c_str(), count, calibUtil::ERROR, EvtParticle::firstornot(), EvtParticle::getDaug(), EvtParticle::getId(), EvtPDL::getMass(), EvtPDL::getMinMass(), genRecEmupikp::i, EvtParticle::mass(), EvtPDL::name(), report(), EvtParticle::setFirstOrNot(), and EvtStatus::setRejectFlag().
Referenced by EvtBtoXsll::decay().
00415 { 00416 00417 int i; 00418 double mass_sum; 00419 00420 int count=0; 00421 00422 if (!( p->firstornot() )) { 00423 for (i = 0; i < ndaugs; i++ ) { 00424 masses[i] = p->getDaug(i)->mass(); 00425 } //for 00426 } //if 00427 else { 00428 p->setFirstOrNot(); 00429 // if only one daughter do it 00430 00431 if (ndaugs==1) { 00432 masses[0]=p->mass(); 00433 return; 00434 } 00435 00436 //until we get a combo whose masses are less than _parent mass. 00437 do { 00438 mass_sum = 0.0; 00439 00440 for (i = 0; i < ndaugs; i++ ) { 00441 masses[i] = EvtPDL::getMass(daugs[i]); 00442 mass_sum = mass_sum + masses[i]; 00443 } 00444 00445 count++; 00446 00447 00448 if(count==10000) { 00449 report(ERROR,"EvtGen") <<"Decaying particle:"<< 00450 EvtPDL::name(p->getId()).c_str()<<" (m="<<p->mass()<<")"<<endl; 00451 report(ERROR,"EvtGen") <<"To the following daugthers"<<endl; 00452 for (i = 0; i < ndaugs; i++ ) { 00453 report(ERROR,"EvtGen") << 00454 EvtPDL::name(daugs[i]).c_str() << endl; 00455 } 00456 report(ERROR,"EvtGen") << "Has been rejected "<<count 00457 << " times, will now take minimal masses " 00458 << " of daugthers"<<endl; 00459 00460 mass_sum=0.; 00461 for (i = 0; i < ndaugs; i++ ) { 00462 masses[i] = EvtPDL::getMinMass(daugs[i]); 00463 mass_sum = mass_sum + masses[i]; 00464 } 00465 if (mass_sum > p->mass()){ 00466 report(ERROR,"EvtGen") << "Parent mass="<<p->mass() 00467 << "to light for daugthers."<<endl 00468 << "Will throw the event away."<<endl; 00469 //dont terminate - start over on the event. 00470 EvtStatus::setRejectFlag(); 00471 mass_sum=0.; 00472 // ::abort(); 00473 } 00474 00475 } 00476 } while ( mass_sum > p->mass()); 00477 } //else 00478 00479 return; 00480 }
double EvtDecayBase::findMaxMass | ( | EvtParticle * | p | ) | [static, inherited] |
Definition at line 311 of file EvtDecayBase.cc.
References EvtParticle::getDaug(), EvtParticle::getId(), EvtPDL::getMaxMass(), EvtPDL::getMinMass(), EvtParticle::getNDaug(), EvtParticle::getParent(), EvtParticle::hasValidP4(), genRecEmupikp::i, and EvtParticle::mass().
Referenced by EvtDecayBase::findMass().
00311 { 00312 00313 00314 double maxOkMass=EvtPDL::getMaxMass(p->getId()); 00315 00316 //protect against vphotons 00317 if ( maxOkMass < 0.0000000001 ) return 10000000.; 00318 //and against already determined masses 00319 if ( p->hasValidP4() ) maxOkMass=p->mass(); 00320 00321 EvtParticle *par=p->getParent(); 00322 if ( par ) { 00323 double maxParMass=findMaxMass(par); 00324 int i; 00325 double minDaugMass=0.; 00326 for(i=0;i<par->getNDaug();i++){ 00327 EvtParticle *dau=par->getDaug(i); 00328 if ( dau!=p) { 00329 // it might already have a mass 00330 if ( dau->isInitialized() || dau->hasValidP4() ) 00331 minDaugMass+=dau->mass(); 00332 else 00333 //give it a bit of phase space 00334 minDaugMass+=1.000001*EvtPDL::getMinMass(dau->getId()); 00335 } 00336 } 00337 if ( maxOkMass>(maxParMass-minDaugMass)) maxOkMass=maxParMass-minDaugMass; 00338 } 00339 return maxOkMass; 00340 }
double EvtVubNLO::g1 | ( | double | y, | |
double | z | |||
) | [static, private] |
Definition at line 462 of file EvtVubNLO.cc.
Referenced by F1Int().
00462 { 00463 double result=(y*(-9+10*y)+x*x*(-12+13*y)+2*x*(-8+6*y+3*y*y))/y/pow(1+x,2)/(x+y); 00464 result -= 4*log((1+1/x)*y)/x; 00465 result -=2*log(1+y/x)*(3*pow(x,4)*(-2+y)-2*pow(y,3)-4*pow(x,3)*(2+y)-2*x*y*y*(4+y)-x*x*y*(12+4*y+y*y))/x/pow((1+x)*y,2)/(x+y); 00466 return result; 00467 }
double EvtVubNLO::g2 | ( | double | y, | |
double | z | |||
) | [static, private] |
Definition at line 470 of file EvtVubNLO.cc.
00470 { 00471 double result=y*(10*pow(x,4)+y*y+3*x*x*y*(10+y)+pow(x,3)*(12+19*y)+x*y*(8+4*y+y*y)); 00472 result -= 2*x*log(1+y/x)*(5*pow(x,4)+2*y*y+6*pow(x,3)*(1+2*y)+4*y*x*(1+2*y)+x*x*y*(18+5*y)); 00473 result *= 2/(pow(y*(1+x),2)*y*(x+y)); 00474 return result; 00475 }
double EvtVubNLO::g3 | ( | double | y, | |
double | z | |||
) | [static, private] |
Definition at line 478 of file EvtVubNLO.cc.
Referenced by F2Int(), and F3Int().
00478 { 00479 double result=(2*pow(y,3)*(-11+2*y)-10*pow(x,4)*(6-6*y+y*y)+x*y*y*(-94+29*y+2*y*y)+2*x*x*y*(-72+18*y+13*y*y)-pow(x,3)*(72+42*y-70*y*y+3*pow(y,3)))/(pow(y*(1+x),2)*y*(x+y)); 00480 result += 2*log(1+y/x)*(-6*x*pow(y,3)*(-5+y)+4*pow(y,4)+5*pow(x,5)*(6-6*y+y*y)-4*pow(x*y,2)*(-20+6*y+y*y)+pow(x,3)*y*(90-10*y-28*y*y+pow(y,3))+pow(x,4)*(36+36*y-50*y*y+4*pow(y,3)))/(pow((1+x)*y*y,2)*(x+y)); 00481 return result; 00482 }
double EvtVubNLO::Gamma | ( | double | z, | |
double | tmax | |||
) | [static, private] |
Definition at line 649 of file EvtVubNLO.cc.
References dgamma(), and EvtItgAbsIntegrator::evaluate().
00649 { 00650 std::vector<double> c(1); 00651 c[0]=z; 00652 EvtItgPtrFunction *func = new EvtItgPtrFunction(&dgamma, tmin, 100., c); 00653 EvtItgAbsIntegrator *jetSF = new EvtItgSimpsonIntegrator(*func,0.001); 00654 return jetSF->evaluate(tmin,100.); 00655 }
double EvtVubNLO::Gamma | ( | double | z | ) | [static, private] |
Definition at line 616 of file EvtVubNLO.cc.
References exp(), ganga-rec::j, and x.
Referenced by cGaus(), lambda_bar(), mu_pi2(), and SFNorm().
00616 { 00617 00618 std::vector<double> gammaCoeffs(6); 00619 gammaCoeffs[0]=76.18009172947146; 00620 gammaCoeffs[1]=-86.50532032941677; 00621 gammaCoeffs[2]=24.01409824083091; 00622 gammaCoeffs[3]=-1.231739572450155; 00623 gammaCoeffs[4]=0.1208650973866179e-2; 00624 gammaCoeffs[5]=-0.5395239384953e-5; 00625 00626 //Lifted from Numerical Recipies in C 00627 double x, y, tmp, ser; 00628 00629 int j; 00630 y = z; 00631 x = z; 00632 00633 tmp = x + 5.5; 00634 tmp = tmp - (x+0.5)*log(tmp); 00635 ser=1.000000000190015; 00636 00637 for (j=0;j<6;j++) { 00638 y = y +1.0; 00639 ser = ser + gammaCoeffs[j]/y; 00640 } 00641 00642 return exp(-tmp+log(2.5066282746310005*ser/x)); 00643 00644 }
static double EvtVubNLO::gamma0 | ( | ) | [inline, static, private] |
static double EvtVubNLO::gamma1 | ( | int | nf = 4 |
) | [inline, static, private] |
static double EvtVubNLO::gamma2 | ( | int | nf = 4 |
) | [inline, static, private] |
static double EvtVubNLO::gammap0 | ( | ) | [inline, static, private] |
static double EvtVubNLO::gammap1 | ( | int | nf = 4 |
) | [inline, static, private] |
double EvtVubNLO::gausShapeFunction | ( | double | omega, | |
const std::vector< double > & | coeffs | |||
) | [static, private] |
Definition at line 598 of file EvtVubNLO.cc.
References cGaus(), and exp().
Referenced by shapeFunction().
00598 { 00599 double b=sCoeffs[3]; 00600 double l=sCoeffs[7]; 00601 double wL=omega/l; 00602 00603 return pow(wL,b)*exp(-cGaus(b)*wL*wL); 00604 }
double EvtDecayBase::getArg | ( | int | j | ) | [inherited] |
Definition at line 564 of file EvtDecayBase.cc.
References EvtDecayBase::_args, EvtCyclic3::c_str(), genRecEmupikp::i, Bes_Common::INFO, and report().
Referenced by EvtVVSPwave::decay(), EvtVSSMix::decay(), EvtVPHOtoVISRHi::decay(), EvtVPHOtoVISR::decay(), EvtTVSPwave::decay(), EvtTauGamMu::decay(), EvtSVVNONCPEIGEN::decay(), EvtSVVHelAmp::decay(), EvtSVVCPLH::decay(), EvtSVVCP::decay(), EvtSVSCPiso::decay(), EvtSVSCP::decay(), EvtSVPHelAmp::decay(), EvtSVPCP::decay(), EvtSTSCP::decay(), EvtSSSCPT::decay(), EvtSSSCPpng::decay(), EvtSSSCP::decay(), EvtRhoPi::decay(), EvtPhokhara::decay(), EvtPBB2::decay(), EvtPBB1::decay(), EvtOpenCharm::decay(), EvtLunda::decay(), EvtJscont::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtEDM::decay(), EvtDDalitz::decay(), EvtConExc::decay(), EvtChi2BB2::decay(), EvtChi2BB1::decay(), EvtChi1BB2::decay(), EvtChi1BB1::decay(), EvtChi0BB2::decay(), EvtCBTo3piP00::decay(), EvtCBTo3piMPP::decay(), EvtCalHelAmp::decay(), EvtBtoXsgamma::decay(), EvtBToKpipiCP::decay(), EvtBtoKpiCPiso::decay(), EvtBTo4piCP::decay(), EvtBTo3piCP::decay(), EvtBto2piCPiso::decay(), EvtBsquark::decay(), EvtBHadronic::decay(), EvtAngSamX::decay(), EvtAngSamLab::decay(), EvtAngSam3::decay(), EvtAngSam::decay(), EvtCalHelAmp::firstder(), EvtLNuGamma::getFormFactor(), init(), EvtVubHybrid::init(), EvtVub::init(), EvtVSSBMixCPT::init(), EvtVectorIsr::init(), EvtTrackGen::init(), EvtTauHadnu::init(), EvtSVVNONCPEIGEN::init(), EvtSVSNONCPEIGEN::init(), EvtSVSCPLH::init(), EvtSSDCP::init(), EvtSinglePoint::init(), EvtSingleParticle2::init(), EvtSingleParticle::init(), EvtPycont::init(), EvtPartWave::init(), EvtmPhsp::init(), EvtmH2::init(), EvtMelikhov::init(), EvtLNuGamma::init(), EvtHypNonLepton::init(), EvtHQET2::init(), EvtHQET::init(), EvtHelAmp::init(), EvtDMix::init(), EvtD0mixDalitz::init(), EvtConExc::init(), EvtBtoXsll::init(), EvtBtoKD3P::init(), EvtPhokhara::init_evt(), EvtPhokhara::init_mode(), EvtSVVHelAmp::initProbMax(), EvtSVVCPLH::initProbMax(), EvtSVVCP::initProbMax(), EvtSVSCPLH::initProbMax(), EvtSVSCPiso::initProbMax(), EvtSVSCP::initProbMax(), EvtSVPHelAmp::initProbMax(), EvtSVPCP::initProbMax(), EvtSTSCP::initProbMax(), EvtSSSCPpng::initProbMax(), EvtSSSCP::initProbMax(), EvtPBB2::initProbMax(), EvtBtoKpiCPiso::initProbMax(), EvtBto2piCPiso::initProbMax(), and EvtVubHybrid::readWeights().
00564 { 00565 00566 // Verify string 00567 00568 const char* str = _args[j].c_str(); 00569 int i = 0; 00570 while(str[i]!=0){ 00571 if (isalpha(str[i]) && str[i]!='e') { 00572 00573 report(INFO,"EvtGen") << "String " << str << " is not a number" << endl; 00574 assert(0); 00575 } 00576 i++; 00577 } 00578 00579 char** tc=0; 00580 return strtod(_args[j].c_str(),tc); 00581 }
double * EvtDecayBase::getArgs | ( | ) | [inherited] |
Definition at line 547 of file EvtDecayBase.cc.
References EvtDecayBase::_args, EvtDecayBase::_argsD, EvtDecayBase::_narg, EvtCyclic3::c_str(), and genRecEmupikp::i.
Referenced by EvtBtoXsgamma::decay(), EvtSLPole::init(), EvtSLBKPole::init(), and EvtKKLambdaC::init().
00547 { 00548 00549 if ( _argsD ) return _argsD; 00550 //The user has asked for a list of doubles - the arguments 00551 //better all be doubles... 00552 if ( _narg==0 ) return _argsD; 00553 00554 _argsD = new double[_narg]; 00555 00556 int i; 00557 char * tc; 00558 for(i=0;i<_narg;i++) { 00559 _argsD[i] = strtod(_args[i].c_str(),&tc); 00560 } 00561 return _argsD; 00562 }
std::string* EvtDecayBase::getArgsStr | ( | ) | [inline, inherited] |
std::string EvtDecayBase::getArgStr | ( | int | j | ) | [inline, inherited] |
Definition at line 75 of file EvtDecayBase.hh.
References EvtDecayBase::_args.
Referenced by EvtParticleDecay::chargeConj(), EvtParticleDecayList::EvtParticleDecayList(), EvtDecayTable::findChannel(), EvtMultibody::init(), and EvtIntervalDecayAmp< EvtDalitzPoint >::init().
double EvtDecayBase::getBranchingFraction | ( | ) | [inline, inherited] |
Definition at line 61 of file EvtDecayBase.hh.
References EvtDecayBase::_brfr.
Referenced by EvtParticleDecay::chargeConj(), and EvtParticleDecayList::EvtParticleDecayList().
00061 {return _brfr;}
EvtId EvtDecayBase::getDaug | ( | int | i | ) | [inline, inherited] |
Definition at line 66 of file EvtDecayBase.hh.
References EvtDecayBase::_daug.
Referenced by EvtParticleDecayList::addMode(), EvtParticleDecay::chargeConj(), EvtDecayBase::checkSpinDaughter(), decay(), EvtVubHybrid::decay(), EvtVub::decay(), EvtVSSBMixCPT::decay(), EvtVPHOtoVISRHi::decay(), EvtVPHOtoVISR::decay(), EvtVectorIsr::decay(), EvtTauHadnu::decay(), EvtSVVNONCPEIGEN::decay(), EvtSVVHelAmp::decay(), EvtSVVCPLH::decay(), EvtSVVCP::decay(), EvtSVSNONCPEIGEN::decay(), EvtSVSCPiso::decay(), EvtSSDCP::decay(), EvtSLN::decay(), EvtSinglePoint::decay(), EvtSingleParticle2::decay(), EvtSingleParticle::decay(), EvtKstarnunu::decay(), EvtJ2BB3::decay(), EvtJ2BB1::decay(), EvtGoityRoberts::decay(), EvtCBTo3piP00::decay(), EvtCBTo3piMPP::decay(), EvtBtoXsll::decay(), EvtBtoXsgamma::decay(), EvtBtoXsEtap::decay(), EvtBToKpipiCP::decay(), EvtBtoKpiCPiso::decay(), EvtBtoKD3P::decay(), EvtBTo3piCP::decay(), EvtPto3P::dp(), EvtDecayTable::findChannel(), EvtConExc::gamHXSection(), EvtVVPIPI_WEIGHTED::init(), EvtVVpipi::init(), EvtVSSBMixCPT::init(), EvtTrackGen::init(), EvtTauHadnu::init(), EvtSSDCP::init(), EvtSLPole::init(), EvtSLBKPole::init(), EvtS2GV::init(), EvtPartWave::init(), EvtP2GC2::init(), EvtP2GC1::init(), EvtP2GC0::init(), EvtJpipi::init(), EvtJPE::init(), EvtISGW2::init(), EvtISGW::init(), EvtHypNonLepton::init(), EvtHQET2::init(), EvtHQET::init(), EvtHelAmp::init(), EvtDDalitz::init(), EvtD0mixDalitz::init(), EvtBtoXsll::init(), EvtbTosllBall::init(), EvtbTosllAli::init(), EvtAV2GV::init(), EvtSVSCPiso::initProbMax(), EvtSSDCP::initProbMax(), EvtSLPole::initProbMax(), EvtSLN::initProbMax(), EvtSLBKPole::initProbMax(), EvtKKLambdaC::initProbMax(), EvtISGW2::initProbMax(), EvtHypNonLepton::initProbMax(), EvtHQET2::initProbMax(), EvtHQET::initProbMax(), EvtbTosllBall::initProbMax(), EvtbTosllAli::initProbMax(), EvtBtoKpiCPiso::initProbMax(), EvtTauHadnu::pi3G(), and EvtParticleDecayList::removeMode().
EvtId* EvtDecayBase::getDaugs | ( | ) | [inline, inherited] |
Definition at line 65 of file EvtDecayBase.hh.
References EvtDecayBase::_daug.
Referenced by EvtVVSPwave::decay(), EvtVVPIPI_WEIGHTED::decay(), EvtVVpipi::decay(), EvtVVP::decay(), decay(), EvtVubHybrid::decay(), EvtVub::decay(), EvtVSSMix::decay(), EvtVSSBMixCPT::decay(), EvtVSS::decay(), EvtVSPPwave::decay(), EvtVll::decay(), EvtVectorIsr::decay(), EvtTVSPwave::decay(), EvtTSS::decay(), EvtTrackGen::decay(), EvtTauVectornu::decay(), EvtTauScalarnu::decay(), EvtTaulnunu::decay(), EvtTauHadnu::decay(), EvtTauGamMu::decay(), EvtT2GV::decay(), EvtSVSCPLH::decay(), EvtSVSCP::decay(), EvtSVS::decay(), EvtSVPHelAmp::decay(), EvtSVPCP::decay(), EvtSTSCP::decay(), EvtSTS::decay(), EvtSSSCPT::decay(), EvtSSSCPpng::decay(), EvtSSSCP::decay(), EvtSPL::decay(), EvtSLPole::decay(), EvtSLN::decay(), EvtSll::decay(), EvtSLBKPole::decay(), EvtSinglePoint::decay(), EvtSingleParticle2::decay(), EvtSingleParticle::decay(), EvtS2GV::decay(), EvtRhoPi::decay(), EvtPi0Dalitz::decay(), EvtPhsp::decay(), EvtPhiDalitz::decay(), EvtPBB2::decay(), EvtPBB1::decay(), EvtPartWave::decay(), EvtP2GC2::decay(), EvtP2GC1::decay(), EvtP2GC0::decay(), EvtOmegaDalitz::decay(), EvtMultibody::decay(), EvtmPhsp::decay(), EvtmH2::decay(), EvtMelikhov::decay(), EvtMBody3::decay(), EvtMassH2::decay(), EvtMassH1::decay(), EvtLNuGamma::decay(), EvtLambdaP_BarGamma::decay(), EvtLambdac2pKpi::decay(), EvtKstarstargamma::decay(), EvtKstarnunu::decay(), EvtKKLambdaC::decay(), EvtJTO3P::decay(), EvtJpipi::decay(), EvtJPE::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtISGW2::decay(), EvtISGW::decay(), EvtIntervalDecayAmp< EvtDalitzPoint >::decay(), EvtHypWK::decay(), EvtHypNonLepton::decay(), EvtHQET2::decay(), EvtHQET::decay(), EvtHelPPJ::decay(), EvtHelAmp::decay(), EvtHAngSam3::decay(), EvtFlatQ2::decay(), EvtEtaDalitz::decay(), EvtEDM::decay(), EvtDMix::decay(), EvtDIY::decay(), EvtDeBD::decay(), EvtDDalitz::decay(), EvtD0mixDalitz::decay(), EvtChi2BB2::decay(), EvtChi2BB1::decay(), EvtChi1BB2::decay(), EvtChi1BB1::decay(), EvtChi0BB2::decay(), EvtChi0BB1::decay(), EvtCBTo3piP00::decay(), EvtCBTo3piMPP::decay(), EvtCalHelAmp::decay(), EvtBtoXsll::decay(), EvtBtoXsgamma::decay(), EvtBtoXsEtap::decay(), EvtbTosllBall::decay(), EvtbTosllAli::decay(), EvtBToKpipiCP::decay(), EvtBtoKpiCPiso::decay(), EvtBtoKD3P::decay(), EvtBTo4piCP::decay(), EvtBTo3piCP::decay(), EvtBto2piCPiso::decay(), EvtBsquark::decay(), EvtBody3::decay(), EvtBHadronic::decay(), EvtAV2GV::decay(), EvtAngSamX::decay(), EvtAngSamLab::decay(), EvtAngSam3::decay(), EvtAngSam::decay(), EvtAngH2::decay(), EvtGoityRoberts::DecayBDpilnuGR(), EvtGoityRoberts::DecayBDstarpilnuGR(), EvtParticleDecayList::EvtParticleDecayList(), EvtConExc::get_mode(), EvtMultibody::init(), EvtLambdac2pKpi::init(), EvtConExc::init(), EvtConExc::init_mode(), EvtBto2piCPiso::initProbMax(), and EvtDecayAmp::makeDecay().
00065 {return _daug;}
int EvtDecayBase::getDSum | ( | ) | [inline, inherited] |
Definition at line 77 of file EvtDecayBase.hh.
References EvtDecayBase::_dsum.
00077 {return _dsum; }
std::string EvtDecayBase::getModelName | ( | ) | [inline, inherited] |
Definition at line 76 of file EvtDecayBase.hh.
References EvtDecayBase::_modelname.
Referenced by EvtParticleDecayList::addMode(), EvtParticleDecayList::EvtParticleDecayList(), EvtDecayTable::findChannel(), and EvtDecay::getModel().
00076 {return _modelname; }
void EvtVubNLO::getName | ( | std::string & | name | ) | [virtual] |
int EvtDecayBase::getNArg | ( | ) | [inline, inherited] |
Definition at line 67 of file EvtDecayBase.hh.
References EvtDecayBase::_narg.
Referenced by EvtParticleDecay::chargeConj(), EvtVPHOtoVISRHi::decay(), EvtVPHOtoVISR::decay(), EvtRhoPi::decay(), EvtOpenCharm::decay(), EvtmPhsp::decay(), EvtLunda::decay(), EvtJscont::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtConExc::decay(), EvtCalHelAmp::decay(), EvtBtoXsgamma::decay(), EvtAngSamX::decay(), EvtAngSamLab::decay(), EvtAngSam3::decay(), EvtAngSam::decay(), EvtPto3P::dp(), EvtParticleDecayList::EvtParticleDecayList(), EvtDecayTable::findChannel(), init(), EvtVubHybrid::init(), EvtVub::init(), EvtVSSBMixCPT::init(), EvtSVVNONCPEIGEN::init(), EvtSVSNONCPEIGEN::init(), EvtSSDCP::init(), EvtSLPole::init(), EvtSLBKPole::init(), EvtSinglePoint::init(), EvtSingleParticle2::init(), EvtSingleParticle::init(), EvtPycont::init(), EvtMultibody::init(), EvtmPhsp::init(), EvtLunda::init(), EvtLNuGamma::init(), EvtKKLambdaC::init(), EvtIntervalDecayAmp< EvtDalitzPoint >::init(), EvtHypNonLepton::init(), EvtHQET2::init(), EvtHQET::init(), EvtD0mixDalitz::init(), EvtConExc::init(), EvtCalHelAmp::init(), EvtBtoXsll::init(), EvtBtoXsgamma::init(), EvtAngSamX::init(), EvtAngSamLab::init(), EvtAngSam3::init(), and EvtAngSam::init().
00067 {return _narg;}
int EvtDecayBase::getNDaug | ( | ) | [inline, inherited] |
Definition at line 64 of file EvtDecayBase.hh.
References EvtDecayBase::_ndaug.
Referenced by EvtParticleDecayList::addMode(), EvtParticleDecay::chargeConj(), EvtVVSPwave::decay(), EvtVVPIPI_WEIGHTED::decay(), EvtVVpipi::decay(), EvtVVP::decay(), decay(), EvtVubHybrid::decay(), EvtVub::decay(), EvtVSSMix::decay(), EvtVSSBMixCPT::decay(), EvtVSS::decay(), EvtVSPPwave::decay(), EvtVll::decay(), EvtVectorIsr::decay(), EvtTVSPwave::decay(), EvtTSS::decay(), EvtTrackGen::decay(), EvtTauVectornu::decay(), EvtTauScalarnu::decay(), EvtTaulnunu::decay(), EvtTauHadnu::decay(), EvtTauGamMu::decay(), EvtT2GV::decay(), EvtSVSCPLH::decay(), EvtSVSCPiso::decay(), EvtSVSCP::decay(), EvtSVS::decay(), EvtSVPHelAmp::decay(), EvtSVPCP::decay(), EvtSTSCP::decay(), EvtSTS::decay(), EvtSSSCPT::decay(), EvtSSSCPpng::decay(), EvtSSSCP::decay(), EvtSPL::decay(), EvtSLPole::decay(), EvtSLN::decay(), EvtSll::decay(), EvtSLBKPole::decay(), EvtSinglePoint::decay(), EvtSingleParticle2::decay(), EvtSingleParticle::decay(), EvtS2GV::decay(), EvtRhoPi::decay(), EvtPi0Dalitz::decay(), EvtPhsp::decay(), EvtPhiDalitz::decay(), EvtPBB2::decay(), EvtPBB1::decay(), EvtPartWave::decay(), EvtP2GC2::decay(), EvtP2GC1::decay(), EvtP2GC0::decay(), EvtOmegaDalitz::decay(), EvtMultibody::decay(), EvtmPhsp::decay(), EvtmH2::decay(), EvtMelikhov::decay(), EvtMBody3::decay(), EvtMassH2::decay(), EvtMassH1::decay(), EvtLNuGamma::decay(), EvtLambdaP_BarGamma::decay(), EvtLambdac2pKpi::decay(), EvtKstarstargamma::decay(), EvtKstarnunu::decay(), EvtKKLambdaC::decay(), EvtJTO3P::decay(), EvtJpipi::decay(), EvtJPE::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtISGW2::decay(), EvtISGW::decay(), EvtHypWK::decay(), EvtHypNonLepton::decay(), EvtHQET2::decay(), EvtHQET::decay(), EvtHelPPJ::decay(), EvtHelAmp::decay(), EvtHAngSam3::decay(), EvtFlatQ2::decay(), EvtEtaDalitz::decay(), EvtEDM::decay(), EvtDMix::decay(), EvtDIY::decay(), EvtDeBD::decay(), EvtDDalitz::decay(), EvtD0mixDalitz::decay(), EvtChi2BB2::decay(), EvtChi2BB1::decay(), EvtChi1BB2::decay(), EvtChi1BB1::decay(), EvtChi0BB2::decay(), EvtChi0BB1::decay(), EvtCBTo3piP00::decay(), EvtCBTo3piMPP::decay(), EvtCalHelAmp::decay(), EvtBtoXsll::decay(), EvtBtoXsgamma::decay(), EvtBtoXsEtap::decay(), EvtbTosllBall::decay(), EvtbTosllAli::decay(), EvtBToKpipiCP::decay(), EvtBtoKpiCPiso::decay(), EvtBtoKD3P::decay(), EvtBTo4piCP::decay(), EvtBTo3piCP::decay(), EvtBto2piCPiso::decay(), EvtBsquark::decay(), EvtBody3::decay(), EvtBHadronic::decay(), EvtAV2GV::decay(), EvtAngSamX::decay(), EvtAngSamLab::decay(), EvtAngSam3::decay(), EvtAngSam::decay(), EvtAngH2::decay(), EvtGoityRoberts::DecayBDpilnuGR(), EvtGoityRoberts::DecayBDstarpilnuGR(), EvtPto3P::dp(), EvtParticleDecayList::EvtParticleDecayList(), EvtDecayTable::findChannel(), EvtDecayTable::inChannelList(), EvtVSSBMixCPT::init(), EvtTrackGen::init(), EvtTauHadnu::init(), EvtMultibody::init(), EvtHypNonLepton::init(), EvtConExc::init(), EvtTauHadnu::initProbMax(), EvtDecayAmp::makeDecay(), and EvtParticleDecayList::removeMode().
00064 {return _ndaug;}
EvtId EvtDecayBase::getParentId | ( | ) | [inline, inherited] |
Definition at line 60 of file EvtDecayBase.hh.
References EvtDecayBase::_parent.
Referenced by EvtParticleDecayList::addMode(), EvtParticleDecay::chargeConj(), EvtDecayBase::checkSpinParent(), EvtTauola::decay(), EvtPythia::decay(), EvtOpenCharm::decay(), EvtMultibody::decay(), EvtLundCharm::decay(), EvtLunda::decay(), EvtJPE::decay(), EvtJetSet::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtPto3P::dp(), EvtParticleDecayList::EvtParticleDecayList(), EvtTauola::fixPolarizations(), EvtVSSBMixCPT::init(), EvtTauola::init(), EvtSSDCP::init(), EvtRhoPi::init(), EvtPythia::init(), EvtPhokhara_ppbar::init(), EvtPhokhara_pipipi0::init(), EvtPhokhara_pipi::init(), EvtPhokhara_pi0pi0pipi::init(), EvtPhokhara_nnbar::init(), EvtPhokhara_LLB::init(), EvtPhokhara_KK::init(), EvtPhokhara_K0K0::init(), EvtPhokhara_4pi::init(), EvtPhokhara::init(), EvtPartWave::init(), EvtOpenCharm::init(), EvtmH2::init(), EvtMassH2::init(), EvtMassH1::init(), EvtLundCharm::init(), EvtLunda::init(), EvtJetSet::init(), EvtHypNonLepton::init(), EvtHelAmp::init(), EvtHAngSam3::init(), EvtDIY::init(), EvtDDalitz::init(), EvtD0mixDalitz::init(), EvtBody3::init(), EvtAngSamX::init(), EvtAngSamLab::init(), EvtAngSam3::init(), EvtAngSam::init(), EvtAngH2::init(), EvtSLPole::initProbMax(), EvtSLN::initProbMax(), EvtSLBKPole::initProbMax(), EvtKKLambdaC::initProbMax(), EvtISGW2::initProbMax(), EvtHypNonLepton::initProbMax(), EvtHQET2::initProbMax(), EvtHQET::initProbMax(), EvtbTosllBall::initProbMax(), EvtbTosllAli::initProbMax(), and EvtParticleDecayList::removeMode().
00060 {return _parent;}
int EvtDecayBase::getPHOTOS | ( | ) | [inline, inherited] |
Definition at line 68 of file EvtDecayBase.hh.
References EvtDecayBase::_photos.
Referenced by EvtParticleDecay::chargeConj(), EvtParticleDecayList::EvtParticleDecayList(), EvtDecayProb::makeDecay(), EvtDecayIncoherent::makeDecay(), and EvtDecayAmp::makeDecay().
00068 {return _photos;}
double EvtDecayBase::getProbMax | ( | double | prob | ) | [inherited] |
Definition at line 67 of file EvtDecayBase.cc.
References EvtDecayBase::_daug, EvtDecayBase::_modelname, EvtDecayBase::_ndaug, EvtDecayBase::_parent, EvtCyclic3::c_str(), EvtDecayBase::defaultprobmax, genRecEmupikp::i, Bes_Common::INFO, EvtDecayBase::max_prob, EvtPDL::name(), EvtDecayBase::ntimes_prob, EvtDecayBase::probmax, report(), and EvtDecayBase::sum_prob.
Referenced by EvtBtoKD3P::decay(), EvtDecayProb::makeDecay(), and EvtDecayAmp::makeDecay().
00067 { 00068 00069 int i; 00070 00071 //diagnostics 00072 sum_prob+=prob; 00073 if (prob>max_prob) max_prob=prob; 00074 00075 00076 if ( defaultprobmax && ntimes_prob<=500 ) { 00077 //We are building up probmax with this iteration 00078 ntimes_prob += 1; 00079 if ( prob > probmax ) { probmax = prob;} 00080 if (ntimes_prob==500) { 00081 probmax*=1.2; 00082 } 00083 return 1000000.0*prob; 00084 } 00085 00086 if ( prob> probmax*1.0001) { 00087 00088 report(INFO,"EvtGen") << "prob > probmax:("<<prob<<">"<<probmax<<")"; 00089 report(INFO,"") << "("<<_modelname.c_str()<<") "; 00090 report(INFO,"") << EvtPDL::name(_parent).c_str()<<" -> "; 00091 for(i=0;i<_ndaug;i++){ 00092 report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " "; 00093 } 00094 report(INFO,"") << endl; 00095 00096 if (defaultprobmax) probmax = prob; 00097 00098 } 00099 00100 ntimes_prob += 1; 00101 00102 00103 return probmax; 00104 00105 } //getProbMax
void EvtVubNLO::init | ( | ) | [virtual] |
Reimplemented from EvtDecayBase.
Definition at line 64 of file EvtVubNLO.cc.
References _b, _dGMax, _gmax, _idSF, _kpar, _lambdaSF, _lbar, _masses, _mB, _mb, _mui, _mupi2, _nbins, _ngood, _ntot, _SFNorm, _weights, abs, EvtDecayBase::checkNDaug(), calibUtil::ERROR, EvtDecayBase::getArg(), EvtDecayBase::getNArg(), genRecEmupikp::i, ganga-rec::j, lambda_SF(), mu_h(), mu_i(), report(), SFNorm(), and tripleDiff().
00064 { 00065 00066 // max pdf 00067 _gmax=0; 00068 _ntot=0; 00069 _ngood=0; 00070 _lbar=-1000; 00071 _mupi2=-1000; 00072 00073 // check that there are at least 6 arguments 00074 int npar = 8; 00075 if (getNArg()<npar) { 00076 00077 report(ERROR,"EvtGen") << "EvtVubNLO generator expected " 00078 << " at least npar arguments but found: " 00079 <<getNArg()<<endl; 00080 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl; 00081 ::abort(); 00082 00083 } 00084 // this is the shape function parameter 00085 _mb = getArg(0); 00086 _b = getArg(1); 00087 _lambdaSF = getArg(2);// shape function lambda is different from lambda 00088 _mui = 1.5;// GeV (scale) 00089 _kpar = getArg(3);// 0 00090 _idSF = abs((int)getArg(4));// type of shape function 1: exponential (from Neubert) 00091 _nbins = abs((int)getArg(5)); 00092 _masses = new double[_nbins]; 00093 _weights = new double[_nbins]; 00094 00095 // Shape function normalization 00096 _mB=5.28;// temporary B meson mass for normalization 00097 00098 std::vector<double> sCoeffs(11); 00099 sCoeffs[3] = _b; 00100 sCoeffs[4] = _mb; 00101 sCoeffs[5] = _mB; 00102 sCoeffs[6] = _idSF; 00103 sCoeffs[7] = lambda_SF(); 00104 sCoeffs[8] = mu_h(); 00105 sCoeffs[9] = mu_i(); 00106 sCoeffs[10] = 1.; 00107 _SFNorm = SFNorm(sCoeffs) ; // SF normalization; 00108 00109 00110 cout << " pdf 0.66, 1.32 , 4.32 "<<tripleDiff(0.66, 1.32 , 4.32)<<endl; 00111 cout << " pdf 0.23,0.37,3.76 "<<tripleDiff(0.23,0.37,3.76)<<endl; 00112 cout << " pdf 0.97,4.32,4.42 "<<tripleDiff(0.97,4.32,4.42)<<endl; 00113 cout << " pdf 0.52,1.02,2.01 "<<tripleDiff(0.52,1.02,2.01)<<endl; 00114 cout << " pdf 1.35,1.39,2.73 "<<tripleDiff(1.35,1.39,2.73)<<endl; 00115 00116 00117 if (getNArg()-npar+2 != 2*_nbins) { 00118 report(ERROR,"EvtGen") << "EvtVubNLO generator expected " 00119 << _nbins << " masses and weights but found: " 00120 <<(getNArg()-npar)/2 <<endl; 00121 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl; 00122 ::abort(); 00123 } 00124 int i,j = npar-2; 00125 double maxw = 0.; 00126 for (i=0;i<_nbins;i++) { 00127 _masses[i] = getArg(j++); 00128 if (i>0 && _masses[i] <= _masses[i-1]) { 00129 report(ERROR,"EvtGen") << "EvtVubNLO generator expected " 00130 << " mass bins in ascending order!" 00131 << "Will terminate execution!"<<endl; 00132 ::abort(); 00133 } 00134 _weights[i] = getArg(j++); 00135 if (_weights[i] < 0) { 00136 report(ERROR,"EvtGen") << "EvtVubNLO generator expected " 00137 << " weights >= 0, but found: " 00138 <<_weights[i] <<endl; 00139 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl; 00140 ::abort(); 00141 } 00142 if ( _weights[i] > maxw ) maxw = _weights[i]; 00143 } 00144 if (maxw == 0) { 00145 report(ERROR,"EvtGen") << "EvtVubNLO generator expected at least one " 00146 << " weight > 0, but found none! " 00147 << "Will terminate execution!"<<endl; 00148 ::abort(); 00149 } 00150 for (i=0;i<_nbins;i++) _weights[i]/=maxw; 00151 00152 // the maximum dGamma*p2 value depends on alpha_s only: 00153 00154 00155 // _dGMax = 0.05; 00156 _dGMax = 150.; 00157 00158 // for the Fermi Motion we need a B-Meso\n mass - but it's not critical 00159 // to get an exact value; in order to stay in the phase space for 00160 // B+- and B0 use the smaller mass 00161 00162 00163 // check that there are 3 daughters 00164 checkNDaug(3); 00165 }
void EvtVubNLO::initProbMax | ( | ) | [virtual] |
Reimplemented from EvtDecayBase.
Definition at line 167 of file EvtVubNLO.cc.
References EvtDecayBase::noProbMax().
00167 { 00168 00169 noProbMax(); 00170 00171 }
double EvtVubNLO::integrand | ( | double | omega, | |
const std::vector< double > & | coeffs | |||
) | [static, private] |
Definition at line 385 of file EvtVubNLO.cc.
References F1Int(), F2Int(), and F3Int().
Referenced by tripleDiff().
00385 { 00386 //double pp=coeffs[0]; 00387 double c1=(coeffs[5]+coeffs[1]-coeffs[0]-coeffs[2])*(coeffs[2]-coeffs[1]); 00388 double c2=2*(coeffs[1]-coeffs[0])*(coeffs[2]-coeffs[1]); 00389 double c3=(coeffs[5]-coeffs[2])*(coeffs[2]-coeffs[0]); 00390 00391 return c1*F1Int(omega,coeffs)+c2*F2Int(omega,coeffs)+c3*F3Int(omega,coeffs); 00392 }
int EvtDecayIncoherent::isDaughterSpinDensitySet | ( | int | daughter | ) | [inline, inherited] |
Definition at line 39 of file EvtDecayIncoherent.hh.
References EvtDecayIncoherent::spinDensitySet.
Referenced by EvtDecayIncoherent::makeDecay().
00040 {return spinDensitySet[daughter];}
double EvtVubNLO::lambda | ( | double | mu = 0 |
) | [inline, private] |
double EvtVubNLO::lambda1 | ( | ) | [inline, private] |
double EvtVubNLO::lambda2 | ( | ) | [inline, private] |
double EvtVubNLO::lambda_bar | ( | double | omega0 | ) | [private] |
Definition at line 553 of file EvtVubNLO.cc.
References _b, _idSF, _lbar, cGaus(), Gamma(), and lambda_SF().
Referenced by M0(), mu_pi2(), and subS().
00553 { 00554 if(_lbar<0){ 00555 if(_idSF==1){ // exponential SF 00556 double rat=omega0*_b/lambda_SF(); 00557 _lbar=lambda_SF()/_b*(Gamma(1+_b)-Gamma(1+_b,rat))/(Gamma(_b)-Gamma(_b,rat)); 00558 } else if(_idSF==2){ // Gaussian SF 00559 double c=cGaus(_b); 00560 _lbar=lambda_SF()*(Gamma(1+_b/2)-Gamma(1+_b/2,pow(omega0/lambda_SF(),2)*c))/(Gamma((1+_b)/2)-Gamma((1+_b)/2,pow(omega0/lambda_SF(),2)*c))/sqrt(c); 00561 } 00562 } 00563 return _lbar; 00564 }
double EvtVubNLO::lambda_SF | ( | ) | [inline, private] |
Definition at line 114 of file EvtVubNLO.hh.
References _lambdaSF.
Referenced by init(), lambda_bar(), mu_pi2(), SFNorm(), and tripleDiff().
00114 { return _lambdaSF;}
double EvtVubNLO::M0 | ( | double | mui, | |
double | omega0 | |||
) | [private] |
Definition at line 585 of file EvtVubNLO.cc.
References C_F(), lambda_bar(), mu_pi2(), and EvtConst::pi.
Referenced by SFNorm().
00585 { 00586 double mf=omega0-lambda_bar(omega0); 00587 return 1+4*C_F(mui)*(-pow(log(mf/mui),2)-log(mf/mui)-pow(EvtConst::pi/2,2)/6.+mu_pi2(omega0)/3/pow(mf,2)*(log(mf/mui)-0.5)); 00588 }
void EvtDecayIncoherent::makeDecay | ( | EvtParticle * | p | ) | [virtual, inherited] |
Implements EvtDecayBase.
Definition at line 29 of file EvtDecayIncoherent.cc.
References EvtDecayBase::_daugsDecayedByParentModel, EvtRadCorr::alwaysRadCorr(), EvtDecayBase::daugsDecayedByParentModel(), EvtParticle::decay(), EvtDecayBase::decay(), EvtRadCorr::doRadCorr(), EvtParticle::getDaug(), EvtParticle::getNDaug(), EvtDecayBase::getPHOTOS(), EvtParticle::getSpinDensityForward(), EvtParticle::getSpinStates(), genRecEmupikp::i, EvtDecayIncoherent::isDaughterSpinDensitySet(), MAX_DAUG, EvtParticle::setDecayProb(), EvtSpinDensity::SetDiag(), EvtParticle::setSpinDensityBackward(), EvtParticle::setSpinDensityForward(), EvtDecayIncoherent::spinDensitySet, and subSeperate::temp.
00029 { 00030 00031 int i; 00032 //initialize this the hard way.. 00033 //Lange June 26, 2000 00034 for (i=0; i<MAX_DAUG; i++ ) { spinDensitySet[i]=0;} 00035 _daugsDecayedByParentModel=false; 00036 00037 decay(p); 00038 p->setDecayProb(1.); 00039 00040 EvtSpinDensity rho; 00041 00042 rho.SetDiag(p->getSpinStates()); 00043 00044 p->setSpinDensityBackward(rho); 00045 00046 if (getPHOTOS() || EvtRadCorr::alwaysRadCorr()) { 00047 EvtRadCorr::doRadCorr(p); 00048 } 00049 00050 //Now decay the daughters. 00051 00052 if ( !daugsDecayedByParentModel()) { 00053 00054 for(i=0;i<p->getNDaug();i++){ 00055 //Need to set the spin density of the daughters to be 00056 //diagonal. 00057 rho.SetDiag(p->getDaug(i)->getSpinStates()); 00058 //if (p->getDaug(i)->getNDaug()==0){ 00059 //only do this if the user has not already set the 00060 //spin density matrix herself. 00061 //Lange June 26, 2000 00062 if ( isDaughterSpinDensitySet(i)==0 ) { 00063 p->getDaug(i)->setSpinDensityForward(rho); 00064 } 00065 else{ 00066 //report(INFO,"EvtGen") << "spinDensitymatrix already set!!!\n"; 00067 EvtSpinDensity temp=p->getDaug(i)->getSpinDensityForward(); 00068 // report(INFO,"EvtGen") <<temp<<endl; 00069 } 00070 //Now decay the daughter. Really! 00071 p->getDaug(i)->decay(); 00072 } 00073 00074 } 00075 }
bool EvtDecayBase::matchingDecay | ( | const EvtDecayBase & | other | ) | const [virtual, inherited] |
Definition at line 587 of file EvtDecayBase.cc.
References EvtDecayBase::_daug, EvtDecayBase::_ndaug, EvtDecayBase::_parent, genRecEmupikp::i, ganga-rec::j, and EvtCyclic3::other().
Referenced by EvtParticleDecayList::addMode(), and EvtParticleDecayList::removeMode().
00587 { 00588 00589 if ( _ndaug != other._ndaug) return false; 00590 if ( _parent != other._parent) return false; 00591 00592 std::vector<int> useDs; 00593 for ( unsigned int i=0; i<_ndaug; i++) useDs.push_back(0); 00594 00595 for ( unsigned int i=0; i<_ndaug; i++) { 00596 bool foundIt=false; 00597 for ( unsigned int j=0; j<_ndaug; j++) { 00598 if ( useDs[j] == 1 ) continue; 00599 if ( _daug[i] == other._daug[j] && _daug[i].getAlias() == other._daug[j].getAlias()) { 00600 foundIt=true; 00601 useDs[j]=1; 00602 break; 00603 } 00604 } 00605 if ( foundIt==false) return false; 00606 } 00607 for ( unsigned int i=0; i<_ndaug; i++) if ( useDs[i]==0) return false; 00608 00609 return true; 00610 00611 }
double EvtVubNLO::mu_bar | ( | ) | [inline, private] |
double EvtVubNLO::mu_h | ( | ) | [inline, private] |
Definition at line 93 of file EvtVubNLO.hh.
References _mb.
Referenced by init(), and tripleDiff().
00093 {return _mb/sqrt(2.0);} // high scale
double EvtVubNLO::mu_i | ( | ) | [inline, private] |
Definition at line 91 of file EvtVubNLO.hh.
References _mui.
Referenced by init(), SFNorm(), and tripleDiff().
00091 {return _mui;} // intermediate scale
double EvtVubNLO::mu_pi2 | ( | double | omega0 | ) | [private] |
Definition at line 568 of file EvtVubNLO.cc.
References _b, _idSF, _mupi2, cGaus(), Gamma(), lambda_bar(), and lambda_SF().
Referenced by M0(), and subT().
00568 { 00569 if(_mupi2<0){ 00570 if(_idSF==1){ // exponential SF 00571 double rat=omega0*_b/lambda_SF(); 00572 _mupi2= 3*(pow(lambda_SF()/_b,2)*(Gamma(2+_b)-Gamma(2+_b,rat))/(Gamma(_b)-Gamma(_b,rat))-pow(lambda_bar(omega0),2)); 00573 } else if(_idSF==2){ // Gaussian SF 00574 double c=cGaus(_b); 00575 double m1=Gamma((3+_b)/2)-Gamma((3+_b)/2,pow(omega0/lambda_SF(),2)*c); 00576 double m2=Gamma(1+_b/2)-Gamma(1+_b/2,pow(omega0/lambda_SF(),2)*c); 00577 double m3=Gamma((1+_b)/2)-Gamma((1+_b)/2,pow(omega0/lambda_SF(),2)*c); 00578 _mupi2= 3*pow(lambda_SF(),2)*(m1/m3-pow(m2/m3,2))/c; 00579 } 00580 } 00581 return _mupi2; 00582 }
void EvtDecayBase::noProbMax | ( | ) | [inherited] |
Definition at line 304 of file EvtDecayBase.cc.
References EvtDecayBase::defaultprobmax.
Referenced by initProbMax(), EvtVubHybrid::initProbMax(), EvtVub::initProbMax(), EvtVectorIsr::initProbMax(), EvtTrackGen::initProbMax(), EvtTauola::initProbMax(), EvtRhoPi::initProbMax(), EvtRexc::initProbMax(), EvtPythia::initProbMax(), EvtPyGaGa::initProbMax(), EvtPycont::initProbMax(), EvtPhsp::initProbMax(), EvtPhokhara_ppbar::initProbMax(), EvtPhokhara_pipipi0::initProbMax(), EvtPhokhara_pipi::initProbMax(), EvtPhokhara_pi0pi0pipi::initProbMax(), EvtPhokhara_nnbar::initProbMax(), EvtPhokhara_LLB::initProbMax(), EvtPhokhara_KK::initProbMax(), EvtPhokhara_K0K0::initProbMax(), EvtPhokhara_4pi::initProbMax(), EvtPhokhara::initProbMax(), EvtOpenCharm::initProbMax(), EvtmPhsp::initProbMax(), EvtmH2::initProbMax(), EvtMBody3::initProbMax(), EvtMassH2::initProbMax(), EvtMassH1::initProbMax(), EvtLundCharm::initProbMax(), EvtLunda::initProbMax(), EvtLambdac2pKpi::initProbMax(), EvtJscont::initProbMax(), EvtJetSet::initProbMax(), EvtHAngSam3::initProbMax(), EvtDMix::initProbMax(), EvtDIY::initProbMax(), EvtConExc::initProbMax(), EvtCalHelAmp::initProbMax(), EvtBtoXsll::initProbMax(), EvtBtoXsgamma::initProbMax(), EvtBtoXsEtap::initProbMax(), EvtBody3::initProbMax(), EvtAngSamX::initProbMax(), EvtAngSamLab::initProbMax(), EvtAngSam3::initProbMax(), EvtAngSam::initProbMax(), and EvtAngH2::initProbMax().
00304 { 00305 00306 defaultprobmax=0; 00307 00308 }
virtual int EvtDecayBase::nRealDaughters | ( | ) | [inline, virtual, inherited] |
Reimplemented in EvtBtoKD3P, and EvtVSSBMixCPT.
Definition at line 105 of file EvtDecayBase.hh.
References EvtDecayBase::_ndaug.
Referenced by EvtDecayTable::readDecayFile().
00105 { return _ndaug;}
void EvtDecayBase::printSummary | ( | ) | [inherited] |
Definition at line 259 of file EvtDecayBase.cc.
References EvtDecayBase::_daug, EvtDecayBase::_modelname, EvtDecayBase::_ndaug, EvtDecayBase::_parent, EvtCyclic3::c_str(), genRecEmupikp::i, Bes_Common::INFO, EvtDecayBase::max_prob, EvtPDL::name(), EvtDecayBase::ntimes_prob, EvtDecayBase::probmax, report(), and EvtDecayBase::sum_prob.
Referenced by EvtDecayBase::checkNArg(), EvtDecayBase::checkNDaug(), EvtDecayBase::checkSpinDaughter(), EvtDecayBase::checkSpinParent(), and EvtParticleDecay::printSummary().
00259 { 00260 00261 int i; 00262 00263 if (ntimes_prob>0) { 00264 00265 report(INFO,"EvtGen") << "Calls="<<ntimes_prob<<" eff:"<< 00266 sum_prob/(probmax*ntimes_prob)<<" frac. max:"<<max_prob/probmax; 00267 report(INFO,"") <<" probmax:"<<probmax<<" max:"<<max_prob<<" : "; 00268 } 00269 00270 report(INFO,"") << EvtPDL::name(_parent).c_str()<<" -> "; 00271 for(i=0;i<_ndaug;i++){ 00272 report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " "; 00273 } 00274 report(INFO,"") << " ("<<_modelname.c_str()<<"):"<< endl; 00275 00276 00277 00278 }
double EvtDecayBase::resetProbMax | ( | double | prob | ) | [inherited] |
Definition at line 108 of file EvtDecayBase.cc.
References EvtDecayBase::_daug, EvtDecayBase::_modelname, EvtDecayBase::_ndaug, EvtDecayBase::_parent, EvtDecayBase::defaultprobmax, EvtPDL::getStdHep(), genRecEmupikp::i, Bes_Common::INFO, EvtDecayBase::ntimes_prob, EvtDecayBase::probmax, and report().
00108 { 00109 00110 report(INFO,"EvtGen") << "Reseting prob max\n"; 00111 report(INFO,"EvtGen") << "prob > probmax:("<<prob<<">"<<probmax<<")"; 00112 report(INFO,"") << "("<<_modelname.c_str()<<")"; 00113 report(INFO,"") << EvtPDL::getStdHep(_parent)<<"->"; 00114 00115 for( int i=0;i<_ndaug;i++){ 00116 report(INFO,"") << EvtPDL::getStdHep(_daug[i]) << " "; 00117 } 00118 report(INFO,"") << endl; 00119 00120 probmax = 0.0; 00121 defaultprobmax = 0; 00122 ntimes_prob = 0; 00123 00124 return prob; 00125 00126 }
double EvtVubNLO::S0 | ( | double | a, | |
double | r | |||
) | [inline, private] |
double EvtVubNLO::S1 | ( | double | a, | |
double | r | |||
) | [inline, private] |
double EvtVubNLO::S2 | ( | double | a, | |
double | r | |||
) | [inline, private] |
Definition at line 140 of file EvtVubNLO.hh.
References beta0(), beta1(), beta2(), gamma0(), gamma1(), and gamma2().
Referenced by dSudakovdepsi().
00140 {return gamma0()*a/4./pow(beta0(),2)*( 00141 -0.5*pow((1-r),2)*( 00142 pow(beta1()/beta0(),2)-beta2()/beta0()-beta1()/beta0()*gamma1()/gamma0()+gamma2()/gamma0() 00143 ) 00144 +(pow(beta1()/beta0(),2)-beta2()/beta0())*(1-r)*log(r) 00145 +(beta1()/beta0()*gamma1()/gamma0()-beta2()/beta0())*(1-r+r*log(r)) 00146 );}
void EvtDecayBase::saveDecayInfo | ( | EvtId | ipar, | |
int | ndaug, | |||
EvtId * | daug, | |||
int | narg, | |||
std::vector< std::string > & | args, | |||
std::string | name, | |||
double | brfr | |||
) | [inherited] |
Definition at line 167 of file EvtDecayBase.cc.
References EvtDecayBase::_args, EvtDecayBase::_brfr, EvtDecayBase::_chkCharge, EvtDecayBase::_daug, EvtDecayBase::_dsum, EvtDecayBase::_modelname, EvtDecayBase::_narg, EvtDecayBase::_ndaug, EvtDecayBase::_parent, EvtCyclic3::c_str(), EvtDecayBase::checkQ(), EvtDecayBase::defaultprobmax, EvtId::getAlias(), genRecEmupikp::i, Bes_Common::INFO, EvtDecayBase::init(), EvtDecayBase::initProbMax(), EvtPDL::name(), report(), and deljobs::string.
Referenced by EvtParticleDecay::chargeConj(), EvtParticleDecayList::EvtParticleDecayList(), and EvtDecayTable::readDecayFile().
00170 { 00171 00172 int i; 00173 00174 _brfr=brfr; 00175 _ndaug=ndaug; 00176 _narg=narg; 00177 _parent=ipar; 00178 00179 _dsum=0; 00180 00181 if (_ndaug>0) { 00182 _daug=new EvtId [_ndaug]; 00183 for(i=0;i<_ndaug;i++){ 00184 _daug[i]=daug[i]; 00185 _dsum+=daug[i].getAlias(); 00186 } 00187 } 00188 else{ 00189 _daug=0; 00190 } 00191 00192 if (_narg>0) { 00193 _args=new std::string[_narg+1]; 00194 for(i=0;i<_narg;i++){ 00195 _args[i]=args[i]; 00196 } 00197 } 00198 else{ 00199 _args = 0; 00200 } 00201 00202 _modelname=name; 00203 00204 this->init(); 00205 this->initProbMax(); 00206 00207 if (_chkCharge){ 00208 this->checkQ(); 00209 } 00210 00211 00212 if (defaultprobmax){ 00213 report(INFO,"EvtGen") << "No default probmax for "; 00214 report(INFO,"") << "("<<_modelname.c_str()<<") "; 00215 report(INFO,"") << EvtPDL::name(_parent).c_str()<<" -> "; 00216 for(i=0;i<_ndaug;i++){ 00217 report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " "; 00218 } 00219 report(INFO,"") << endl; 00220 report(INFO,"") << "This is fine for development, but must be provided for production."<<endl; 00221 report(INFO,"EvtGen") << "Never fear though - the decay will use the \n"; 00222 report(INFO,"EvtGen") << "500 iterations to build up a good probmax \n"; 00223 report(INFO,"EvtGen") << "before accepting a decay. "<<endl; 00224 } 00225 00226 }
void EvtDecayIncoherent::setDaughterSpinDensity | ( | int | daughter | ) | [inline, inherited] |
Definition at line 36 of file EvtDecayIncoherent.hh.
References EvtDecayIncoherent::spinDensitySet.
Referenced by EvtVectorIsr::decay(), EvtTauola::fixPolarizations(), EvtPythia::fixPolarizations(), EvtOpenCharm::fixPolarizations(), EvtLundCharm::fixPolarizations(), EvtLunda::fixPolarizations(), and EvtJetSet::fixPolarizations().
00037 { spinDensitySet[daughter]=1; return;}
void EvtDecayBase::setPHOTOS | ( | ) | [inline, inherited] |
Definition at line 69 of file EvtDecayBase.hh.
References EvtDecayBase::_photos.
Referenced by EvtParticleDecay::chargeConj(), EvtParticleDecayList::EvtParticleDecayList(), and EvtDecayTable::readDecayFile().
00069 {_photos=1;}
void EvtDecayBase::setProbMax | ( | double | prbmx | ) | [inherited] |
Definition at line 297 of file EvtDecayBase.cc.
References EvtDecayBase::defaultprobmax, and EvtDecayBase::probmax.
Referenced by EvtBtoKD3P::decay(), EvtVVSPwave::initProbMax(), EvtVVPIPI_WEIGHTED::initProbMax(), EvtVVpipi::initProbMax(), EvtVVP::initProbMax(), EvtVSSMix::initProbMax(), EvtVSSBMixCPT::initProbMax(), EvtVSS::initProbMax(), EvtVSPPwave::initProbMax(), EvtVPHOtoVISRHi::initProbMax(), EvtVll::initProbMax(), EvtTVSPwave::initProbMax(), EvtTSS::initProbMax(), EvtTauVectornu::initProbMax(), EvtTauScalarnu::initProbMax(), EvtTaulnunu::initProbMax(), EvtTauHadnu::initProbMax(), EvtT2GV::initProbMax(), EvtSVVNONCPEIGEN::initProbMax(), EvtSVVHelAmp::initProbMax(), EvtSVVCPLH::initProbMax(), EvtSVVCP::initProbMax(), EvtSVSNONCPEIGEN::initProbMax(), EvtSVSCPLH::initProbMax(), EvtSVSCPiso::initProbMax(), EvtSVSCP::initProbMax(), EvtSVS::initProbMax(), EvtSVPHelAmp::initProbMax(), EvtSVPCP::initProbMax(), EvtSTSCP::initProbMax(), EvtSTS::initProbMax(), EvtSSSCPpng::initProbMax(), EvtSSSCP::initProbMax(), EvtSSDCP::initProbMax(), EvtSPL::initProbMax(), EvtSLPole::initProbMax(), EvtSLN::initProbMax(), EvtSLBKPole::initProbMax(), EvtS2GV::initProbMax(), EvtPi0Dalitz::initProbMax(), EvtPBB2::initProbMax(), EvtPBB1::initProbMax(), EvtPartWave::initProbMax(), EvtP2GC2::initProbMax(), EvtP2GC1::initProbMax(), EvtP2GC0::initProbMax(), EvtOmegaDalitz::initProbMax(), EvtLNuGamma::initProbMax(), EvtLambdaP_BarGamma::initProbMax(), EvtKKLambdaC::initProbMax(), EvtJpipi::initProbMax(), EvtISGW2::initProbMax(), EvtIntervalDecayAmp< EvtDalitzPoint >::initProbMax(), EvtHypNonLepton::initProbMax(), EvtHQET2::initProbMax(), EvtHQET::initProbMax(), EvtHelAmp::initProbMax(), EvtGoityRoberts::initProbMax(), EvtFlatQ2::initProbMax(), EvtEtaDalitz::initProbMax(), EvtEDM::initProbMax(), EvtDDalitz::initProbMax(), EvtD0mixDalitz::initProbMax(), EvtCBTo3piP00::initProbMax(), EvtCBTo3piMPP::initProbMax(), EvtbTosllBall::initProbMax(), EvtbTosllAli::initProbMax(), EvtBtoKpiCPiso::initProbMax(), EvtBtoKD3P::initProbMax(), EvtBTo3piCP::initProbMax(), EvtBto2piCPiso::initProbMax(), and EvtAV2GV::initProbMax().
00297 { 00298 00299 defaultprobmax=0; 00300 probmax=prbmx; 00301 00302 }
void EvtDecayBase::setSummary | ( | ) | [inline, inherited] |
Definition at line 71 of file EvtDecayBase.hh.
References EvtDecayBase::_summary.
Referenced by EvtParticleDecayList::EvtParticleDecayList(), and EvtDecayTable::readDecayFile().
00071 {_summary=1;}
void EvtDecayBase::setVerbose | ( | ) | [inline, inherited] |
Definition at line 70 of file EvtDecayBase.hh.
References EvtDecayBase::_verbose.
Referenced by EvtParticleDecayList::EvtParticleDecayList(), and EvtDecayTable::readDecayFile().
00070 {_verbose=1;}
double EvtVubNLO::SFNorm | ( | const std::vector< double > & | coeffs | ) | [private] |
Definition at line 511 of file EvtVubNLO.cc.
References _b, _idSF, cGaus(), calibUtil::ERROR, Gamma(), lambda_SF(), M0(), mu_i(), and report().
Referenced by init().
00511 { 00512 00513 double omega0=1.68;//normalization scale (mB-2*1.8) 00514 if(_idSF==1){ // exponential SF 00515 double omega0=1.68;//normalization scale (mB-2*1.8) 00516 return M0(mu_i(),omega0)*pow(_b,_b)/lambda_SF()/ (Gamma(_b)-Gamma(_b,_b*omega0/lambda_SF())); 00517 } else if(_idSF==2){ // Gaussian SF 00518 double c=cGaus(_b); 00519 return M0(mu_i(),omega0)*2/lambda_SF()/pow(c,-(1+_b)/2.)/ 00520 (Gamma((1+_b)/2)-Gamma((1+_b)/2,pow(omega0/lambda_SF(),2)*c)); 00521 } else { 00522 report(ERROR,"EvtGen") << "unknown SF "<<_idSF<<endl; 00523 return -1; 00524 } 00525 }
double EvtVubNLO::shapeFunction | ( | double | omega, | |
const std::vector< double > & | coeffs | |||
) | [static, private] |
Definition at line 528 of file EvtVubNLO.cc.
References calibUtil::ERROR, expShapeFunction(), gausShapeFunction(), and report().
Referenced by F10(), F1Int(), F20(), F2Int(), F30(), F3Int(), and subS().
00528 { 00529 if( sCoeffs[6]==1){ 00530 return sCoeffs[10]*expShapeFunction(omega, sCoeffs); 00531 } else if( sCoeffs[6]==2) { 00532 return sCoeffs[10]*gausShapeFunction(omega, sCoeffs); 00533 } else { 00534 report(ERROR,"EvtGen") << "EvtVubNLO : unknown shape function # " 00535 <<sCoeffs[6]<<endl; 00536 } 00537 return -1.; 00538 }
double EvtVubNLO::subS | ( | const std::vector< double > & | coeffs | ) | [private] |
Definition at line 543 of file EvtVubNLO.cc.
References lambda_bar(), and shapeFunction().
Referenced by F10(), F20(), subT(), and subU().
00543 { return (lambda_bar(1.68)-c[0])*shapeFunction(c[0],c);}
double EvtVubNLO::subT | ( | const std::vector< double > & | coeffs | ) | [private] |
double EvtVubNLO::subU | ( | const std::vector< double > & | coeffs | ) | [private] |
Definition at line 547 of file EvtVubNLO.cc.
References subS().
Referenced by F10().
00547 { return -2*subS(c);}
double EvtVubNLO::subV | ( | const std::vector< double > & | coeffs | ) | [private] |
double EvtVubNLO::Sudakov | ( | double | mu1, | |
double | mu2, | |||
double | epsi = 0 | |||
) | [inline, private] |
Definition at line 148 of file EvtVubNLO.hh.
References alphas(), dSudakovdepsi(), EvtConst::pi, S0(), and S1().
Referenced by U1().
00148 {double fp(4*EvtConst::pi);return S0(alphas(mu1)/fp,alphas(mu2)/alphas(mu1))+S1(alphas(mu1)/fp,alphas(mu2)/alphas(mu1))+epsi*dSudakovdepsi(mu1,mu2);}
int EvtDecayBase::summary | ( | ) | [inline, inherited] |
Definition at line 78 of file EvtDecayBase.hh.
References EvtDecayBase::_summary.
Referenced by EvtParticleDecayList::EvtParticleDecayList().
00078 {return _summary; }
double EvtVubNLO::tripleDiff | ( | double | pp, | |
double | pl, | |||
double | pm | |||
) | [private] |
Definition at line 346 of file EvtVubNLO.cc.
References _b, _idSF, _mB, _mb, _SFNorm, alo(), EvtItgAbsIntegrator::evaluate(), F10(), F20(), F30(), integrand(), lambda_SF(), mu_h(), mu_i(), and U1lo().
Referenced by decay(), and init().
00346 { 00347 00348 std::vector<double> sCoeffs(11); 00349 sCoeffs[0] = pp; 00350 sCoeffs[1] = pl; 00351 sCoeffs[2] = pm; 00352 sCoeffs[3] = _b; 00353 sCoeffs[4] = _mb; 00354 sCoeffs[5] = _mB; 00355 sCoeffs[6] = _idSF; 00356 sCoeffs[7] = lambda_SF(); 00357 sCoeffs[8] = mu_h(); 00358 sCoeffs[9] = mu_i(); 00359 sCoeffs[10] = _SFNorm; // SF normalization; 00360 00361 00362 double c1=(_mB+pl-pp-pm)*(pm-pl); 00363 double c2=2*(pl-pp)*(pm-pl); 00364 double c3=(_mB-pm)*(pm-pp); 00365 double aF1=F10(sCoeffs); 00366 double aF2=F20(sCoeffs); 00367 double aF3=F30(sCoeffs); 00368 double td0=c1*aF1+c2*aF2+c3*aF3; 00369 00370 00371 EvtItgPtrFunction *func = new EvtItgPtrFunction(&integrand, 0., _mB, sCoeffs); 00372 EvtItgAbsIntegrator *jetSF = new EvtItgSimpsonIntegrator(*func,0.01,25); 00373 double smallfrac=0.000001;// stop a bit before the end to avoid problems with numerical integration 00374 double tdInt = jetSF->evaluate(0,pp*(1-smallfrac)); 00375 delete jetSF; 00376 00377 double SU=U1lo(mu_h(),mu_i())*pow((pm-pp)/(_mB-pp),alo(mu_h(),mu_i())); 00378 double TD=(_mB-pp)*SU*(td0+tdInt); 00379 00380 return TD; 00381 00382 }
double EvtVubNLO::U1 | ( | double | mu1, | |
double | mu2, | |||
double | epsi = 0 | |||
) | [inline, private] |
double EvtVubNLO::U1lo | ( | double | mu1, | |
double | mu2 | |||
) | [inline, private] |
Definition at line 156 of file EvtVubNLO.hh.
References U1().
Referenced by F10(), and tripleDiff().
00156 {return U1(mu1,mu2);}
double EvtVubNLO::U1nlo | ( | double | mu1, | |
double | mu2 | |||
) | [inline, private] |
Definition at line 157 of file EvtVubNLO.hh.
References _mb, dGdepsi(), dgpdepsi(), dSudakovdepsi(), and U1().
Referenced by F10().
00157 {return U1(mu1,mu2)*(1+2*(dSudakovdepsi(mu1,mu2)-dgpdepsi( mu1, mu2)-log(_mb/mu1)*dGdepsi( mu1, mu2)));}
int EvtDecayBase::verbose | ( | ) | [inline, inherited] |
Definition at line 79 of file EvtDecayBase.hh.
References EvtDecayBase::_verbose.
Referenced by EvtParticleDecayList::EvtParticleDecayList(), EvtSVSCPLH::init(), EvtSSDCP::init(), EvtPartWave::init(), EvtHelAmp::init(), EvtBtoXsll::init(), EvtPartWave::initProbMax(), and EvtHelAmp::initProbMax().
00079 {return _verbose; }
double EvtVubNLO::_b [private] |
Definition at line 59 of file EvtVubNLO.hh.
Referenced by init(), lambda_bar(), mu_pi2(), SFNorm(), and tripleDiff().
bool EvtDecayBase::_daugsDecayedByParentModel [protected, inherited] |
Definition at line 109 of file EvtDecayBase.hh.
Referenced by EvtDecayBase::daugsDecayedByParentModel(), EvtBtoKD3P::decay(), EvtDecayProb::makeDecay(), EvtDecayIncoherent::makeDecay(), and EvtDecayAmp::makeDecay().
double EvtVubNLO::_dGMax [private] |
double EvtVubNLO::_gmax [private] |
int EvtVubNLO::_idSF [private] |
Definition at line 65 of file EvtVubNLO.hh.
Referenced by init(), lambda_bar(), mu_pi2(), SFNorm(), and tripleDiff().
double EvtVubNLO::_kpar [private] |
double EvtVubNLO::_lambdaSF [private] |
double EvtVubNLO::_lbar [private] |
double* EvtVubNLO::_masses [private] |
double EvtVubNLO::_mB [private] |
Definition at line 57 of file EvtVubNLO.hh.
Referenced by decay(), init(), lambda(), and tripleDiff().
double EvtVubNLO::_mb [private] |
Definition at line 56 of file EvtVubNLO.hh.
Referenced by init(), lambda(), mu_h(), tripleDiff(), U1(), and U1nlo().
double EvtVubNLO::_mui [private] |
double EvtVubNLO::_mupi2 [private] |
int EvtVubNLO::_nbins [private] |
int EvtVubNLO::_ngood [private] |
int EvtVubNLO::_ntot [private] |
double EvtVubNLO::_SFNorm [private] |
double* EvtVubNLO::_weights [private] |