BOSS 8.0.0
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 "EvtSLBKPole.hh" //modified
30#include "EvtSLBKPoleFF.hh" //modified
31#include <stdlib.h>
32#include <string>
33
35
36void EvtSLBKPole::getName( std::string& model_name ) {
37
38 model_name = "SLBKPOLE"; // modified
39}
40
42
43 return new EvtSLBKPole;
44}
45
46void EvtSLBKPole::decay( EvtParticle* p ) { // modified
47
49
50 calcamp->CalcAmp( p, _amp2, SLBKPoleffmodel ); // modified
51 return;
52}
53
55
56 EvtId parnum, mesnum, lnum, nunum;
57
58 parnum = getParentId();
59 mesnum = getDaug( 0 );
60 lnum = getDaug( 1 );
61 nunum = getDaug( 2 );
62
63 double mymaxprob =
64 calcamp->CalcMaxProb( parnum, mesnum, lnum, nunum, SLBKPoleffmodel ); // modified
65
66 setProbMax( mymaxprob );
67}
68
69void EvtSLBKPole::init() { // modified
70
71 checkNDaug( 3 );
72
73 // We expect the parent to be a scalar
74 // and the daughters to be X lepton neutrino
75
79
81
82 SLBKPoleffmodel = new EvtSLBKPoleFF( getNArg(), getArgs() ); // modified
83
84 if ( mesontype == EvtSpinType::SCALAR ) { calcamp = new EvtSemiLeptonicScalarAmp; }
85 if ( mesontype == EvtSpinType::VECTOR ) { calcamp = new EvtSemiLeptonicVectorAmp; }
86 if ( mesontype == EvtSpinType::TENSOR ) { calcamp = new EvtSemiLeptonicTensorAmp; }
87}
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:66
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()