Line data Source code
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: EvtISGW.cc
12 : //
13 : // Description: Routine to implement semileptonic decays according
14 : // to the model ISGW
15 : //
16 : // Modification history:
17 : //
18 : // DJL/RYD September 25, 1996 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/EvtISGW.hh"
29 : #include <string>
30 : #include "EvtGenModels/EvtISGWFF.hh"
31 : #include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
32 : #include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh"
33 : #include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh"
34 :
35 0 : EvtISGW::~EvtISGW() {}
36 :
37 : std::string EvtISGW::getName(){
38 :
39 0 : return "ISGW";
40 :
41 : }
42 :
43 :
44 : EvtDecayBase* EvtISGW::clone(){
45 :
46 0 : return new EvtISGW;
47 :
48 0 : }
49 :
50 : void EvtISGW::decay( EvtParticle *p ){
51 :
52 :
53 0 : p->initializePhaseSpace(getNDaug(),getDaugs());
54 :
55 0 : calcamp->CalcAmp(p,_amp2,isgwffmodel);
56 0 : return;
57 :
58 : }
59 :
60 :
61 : void EvtISGW::init(){
62 :
63 0 : checkNArg(0);
64 0 : checkNDaug(3);
65 :
66 :
67 : //We expect the parent to be a scalar
68 : //and the daughters to be X lepton neutrino
69 :
70 0 : EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0));
71 :
72 0 : checkSpinParent(EvtSpinType::SCALAR);
73 0 : checkSpinDaughter(1,EvtSpinType::DIRAC);
74 0 : checkSpinDaughter(2,EvtSpinType::NEUTRINO);
75 :
76 :
77 0 : isgwffmodel = new EvtISGWFF;
78 :
79 0 : if ( mesontype==EvtSpinType::SCALAR ) {
80 0 : calcamp = new EvtSemiLeptonicScalarAmp;
81 0 : }
82 0 : if ( mesontype==EvtSpinType::VECTOR ) {
83 0 : calcamp = new EvtSemiLeptonicVectorAmp;
84 0 : }
85 0 : if ( mesontype==EvtSpinType::TENSOR ) {
86 0 : calcamp = new EvtSemiLeptonicTensorAmp;
87 0 : }
88 :
89 0 : }
90 :
|