CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtSLBKPole.cc
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
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.
7//
8// Copyright Information: See EvtGen/COPYRIGHT
9// Copyright (C) 1998 Caltech, UCSB
10//
11// Module: EvtSLBKPole.cc
12//
13// Description: Routine to implement semileptonic decays according
14// to light cone sum rules
15//
16// Modification history:
17//
18// liheng October 20, 2005 Module created
19//
20//------------------------------------------------------------------------
21//
22#include <stdlib.h>
25#include "EvtGenBase/EvtPDL.hh"
27#include "EvtGenModels/EvtSLBKPole.hh"//modified
28#include "EvtGenModels/EvtSLBKPoleFF.hh"//modified
32#include <string>
33
35
36void EvtSLBKPole::getName(std::string& model_name ){
37
38 model_name= "SLBKPOLE";//modified
39
40}
41
42
44
45 return new EvtSLBKPole;
46
47}
48
49void EvtSLBKPole::decay( EvtParticle *p ){//modified
50
52
53 calcamp->CalcAmp(p,_amp2,SLBKPoleffmodel);//modified
54 return;
55}
56
58
59EvtId parnum,mesnum,lnum,nunum;
60
61parnum = getParentId();
62mesnum = getDaug(0);
63lnum = getDaug(1);
64nunum = getDaug(2);
65
66double mymaxprob = calcamp->CalcMaxProb(parnum,mesnum,
67 lnum,nunum,SLBKPoleffmodel);//modified
68
69setProbMax(mymaxprob);
70
71}
72
73
74void EvtSLBKPole::init(){//modified
75
76 checkNDaug(3);
77
78 //We expect the parent to be a scalar
79 //and the daughters to be X lepton neutrino
80
84
86
87 SLBKPoleffmodel = new EvtSLBKPoleFF(getNArg(),getArgs());//modified
88
89 if ( mesontype==EvtSpinType::SCALAR ) {
90 calcamp = new EvtSemiLeptonicScalarAmp;
91 }
92 if ( mesontype==EvtSpinType::VECTOR ) {
93 calcamp = new EvtSemiLeptonicVectorAmp;
94 }
95 if ( mesontype==EvtSpinType::TENSOR ) {
96 calcamp = new EvtSemiLeptonicTensorAmp;
97 }
98
99}
100
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
EvtId getParentId()
double * getArgs()
void checkNDaug(int d1, int d2=-1)
EvtId * getDaugs()
EvtId getDaug(int i)
Definition EvtId.hh:27
static EvtSpinType::spintype getSpinType(EvtId i)
Definition EvtPDL.hh:61
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void decay(EvtParticle *p)
virtual ~EvtSLBKPole()
void initProbMax()
void getName(std::string &model_name)
EvtDecayBase * clone()
virtual void CalcAmp(EvtParticle *parent, EvtAmp &amp, EvtSemiLeptonicFF *FormFactors)
double CalcMaxProb(EvtId parent, EvtId meson, EvtId lepton, EvtId nudaug, EvtSemiLeptonicFF *FormFactors)