BOSS 7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtSLPole.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: EvtSLPole.cc
12//
13// Description: Routine to implement semileptonic decays according
14// to light cone sum rules
15//
16// Modification history:
17//
18// DJL April 23, 1998 Module created
19//
20//------------------------------------------------------------------------
21//
22#include "EvtGenBase/EvtPatches.hh"
23#include <stdlib.h>
24#include "EvtGenBase/EvtParticle.hh"
25#include "EvtGenBase/EvtGenKine.hh"
26#include "EvtGenBase/EvtPDL.hh"
27#include "EvtGenBase/EvtReport.hh"
28#include "EvtGenModels/EvtSLPole.hh"
29#include "EvtGenModels/EvtSLPoleFF.hh"
30#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
31#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh"
32#include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh"
33#include <string>
34
36
37void EvtSLPole::getName(std::string& model_name){
38
39 model_name="SLPOLE";
40
41}
42
43
45
46 return new EvtSLPole;
47
48}
49
51
53
54 calcamp->CalcAmp(p,_amp2,SLPoleffmodel);
55 return;
56}
57
59
60EvtId parnum,mesnum,lnum,nunum;
61
62parnum = getParentId();
63mesnum = getDaug(0);
64lnum = getDaug(1);
65nunum = getDaug(2);
66
67double mymaxprob = calcamp->CalcMaxProb(parnum,mesnum,
68 lnum,nunum,SLPoleffmodel);
69
70setProbMax(mymaxprob);
71
72}
73
74
75void EvtSLPole::init(){
76
77 checkNDaug(3);
78
79 //We expect the parent to be a scalar
80 //and the daughters to be X lepton neutrino
81
85
87
88 SLPoleffmodel = new EvtSLPoleFF(getNArg(),getArgs());
89
90 if ( mesontype==EvtSpinType::SCALAR ) {
91 calcamp = new EvtSemiLeptonicScalarAmp;
92 }
93 if ( mesontype==EvtSpinType::VECTOR ) {
94 calcamp = new EvtSemiLeptonicVectorAmp;
95 }
96 if ( mesontype==EvtSpinType::TENSOR ) {
97 calcamp = new EvtSemiLeptonicTensorAmp;
98 }
99
100}
101
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
static EvtSpinType::spintype getSpinType(EvtId i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
virtual void CalcAmp(EvtParticle *parent, EvtAmp &amp, EvtSemiLeptonicFF *FormFactors)
double CalcMaxProb(EvtId parent, EvtId meson, EvtId lepton, EvtId nudaug, EvtSemiLeptonicFF *FormFactors)