1 //--------------------------------------------------------------------------
4 // This software is part of the EvtGen package developed jointly
5 // for the BaBar and CLEO collaborations. If you use all or part
6 // of it, please give an appropriate acknowledgement.
8 // Copyright Information: See EvtGen/COPYRIGHT
9 // Copyright (C) 1998 Caltech, UCSB
11 // Module: EvtGenModels/EvtBToPlnuBK.cc
13 // Description: B->Xu l nu with BK (Becirevic-Kaidalov) parametrization
14 // Xu is a pseudoscalar (pi_plus,pi0,eta or eta_prime)
16 // Modification history:
18 // Martin Simard, U. de Montreal, 08/01/2007 Module created
20 //------------------------------------------------------------------------
22 #include "EvtGenBase/EvtPatches.hh"
25 #include "EvtGenBase/EvtParticle.hh"
26 #include "EvtGenBase/EvtGenKine.hh"
27 #include "EvtGenBase/EvtPDL.hh"
28 #include "EvtGenBase/EvtReport.hh"
29 #include "EvtGenModels/EvtBToPlnuBK.hh"
30 #include "EvtGenModels/EvtBToPlnuBKFF.hh"
31 #include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
38 EvtBToPlnuBK::EvtBToPlnuBK():
43 EvtBToPlnuBK::~EvtBToPlnuBK(){
50 std::string EvtBToPlnuBK::getName(){
56 EvtDecayBase* EvtBToPlnuBK::clone(){
58 return new EvtBToPlnuBK;
63 void EvtBToPlnuBK::initProbMax(){
65 EvtId parnum,mesnum,lnum,nunum;
67 parnum = getParentId();
72 double mymaxprob = calcamp->CalcMaxProb(parnum,mesnum,
75 setProbMax(mymaxprob);
79 void EvtBToPlnuBK::init(){
83 //We expect the parent to be a scalar
84 //and the daughters to be X lepton neutrino
85 checkSpinParent(EvtSpinType::SCALAR);
87 checkSpinDaughter(1,EvtSpinType::DIRAC);
88 checkSpinDaughter(2,EvtSpinType::NEUTRINO);
90 EvtSpinType::spintype d1type = EvtPDL::getSpinType(getDaug(0));
91 if ( d1type==EvtSpinType::SCALAR) {
93 BKmodel = new EvtBToPlnuBKFF(getArg(0),getArg(1));
94 calcamp = new EvtSemiLeptonicScalarAmp;
97 report(ERROR,"EvtGen") << "BK model handles only scalar meson daughters. Sorry."<<endl;
103 void EvtBToPlnuBK::decay( EvtParticle *p ){
105 p->initializePhaseSpace(getNDaug(),getDaugs());
106 calcamp->CalcAmp(p,_amp2,BKmodel);