X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TEvtGen%2FEvtGenModels%2FEvtSLBKPole.cpp;fp=TEvtGen%2FEvtGenModels%2FEvtSLBKPole.cpp;h=7a2b5cac784f9b93eb9bcb6e959b395680370af4;hb=0ca57c2f019e3764c982f29478c26c1a10b5b0f7;hp=0000000000000000000000000000000000000000;hpb=86a150aa6372a7dd3fbbe018e221b890cd59ae62;p=u%2Fmrichter%2FAliRoot.git diff --git a/TEvtGen/EvtGenModels/EvtSLBKPole.cpp b/TEvtGen/EvtGenModels/EvtSLBKPole.cpp new file mode 100644 index 00000000000..7a2b5cac784 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSLBKPole.cpp @@ -0,0 +1,100 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSLBKPole.cc +// +// Description: Routine to implement semileptonic decays according +// to light cone sum rules +// +// Modification history: +// +// liheng October 20, 2005 Module created +// +//------------------------------------------------------------------------ +// +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSLBKPole.hh"//modified +#include "EvtGenModels/EvtSLBKPoleFF.hh"//modified +#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh" +#include + +EvtSLBKPole::~EvtSLBKPole() {} + +std::string EvtSLBKPole::getName(){ + + return "SLBKPOLE";//modified + +} + + +EvtDecayBase* EvtSLBKPole::clone(){//modified + + return new EvtSLBKPole; + +} + +void EvtSLBKPole::decay( EvtParticle *p ){//modified + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + calcamp->CalcAmp(p,_amp2,SLBKPoleffmodel);//modified + return; +} + +void EvtSLBKPole::initProbMax(){ + +EvtId parnum,mesnum,lnum,nunum; + +parnum = getParentId(); +mesnum = getDaug(0); +lnum = getDaug(1); +nunum = getDaug(2); + +double mymaxprob = calcamp->CalcMaxProb(parnum,mesnum, + lnum,nunum,SLBKPoleffmodel);//modified + +setProbMax(mymaxprob); + +} + + +void EvtSLBKPole::init(){//modified + + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton neutrino + + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0)); + + SLBKPoleffmodel = new EvtSLBKPoleFF(getNArg(),getArgs());//modified + + if ( mesontype==EvtSpinType::SCALAR ) { + calcamp = new EvtSemiLeptonicScalarAmp; + } + if ( mesontype==EvtSpinType::VECTOR ) { + calcamp = new EvtSemiLeptonicVectorAmp; + } + if ( mesontype==EvtSpinType::TENSOR ) { + calcamp = new EvtSemiLeptonicTensorAmp; + } + +} +