]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGenModels/EvtSLBKPole.cxx
If default parameters are allowed and runNumber is provided, search first for the...
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtSLBKPole.cxx
CommitLineData
da0e9ce3 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>
23#include "EvtGenBase/EvtParticle.hh"
24#include "EvtGenBase/EvtGenKine.hh"
25#include "EvtGenBase/EvtPDL.hh"
26#include "EvtGenBase/EvtReport.hh"
27#include "EvtGenModels/EvtSLBKPole.hh"//modified
28#include "EvtGenModels/EvtSLBKPoleFF.hh"//modified
29#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
30#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh"
31#include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh"
32#include <string>
33
34EvtSLBKPole::~EvtSLBKPole() {}
35
36std::string EvtSLBKPole::getName(){
37
38 return "SLBKPOLE";//modified
39
40}
41
42
43EvtDecayBase* EvtSLBKPole::clone(){//modified
44
45 return new EvtSLBKPole;
46
47}
48
49void EvtSLBKPole::decay( EvtParticle *p ){//modified
50
51 p->initializePhaseSpace(getNDaug(),getDaugs());
52
53 calcamp->CalcAmp(p,_amp2,SLBKPoleffmodel);//modified
54 return;
55}
56
57void EvtSLBKPole::initProbMax(){
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
81 checkSpinParent(EvtSpinType::SCALAR);
82 checkSpinDaughter(1,EvtSpinType::DIRAC);
83 checkSpinDaughter(2,EvtSpinType::NEUTRINO);
84
85 EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0));
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