]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGenModels/EvtBToPlnuBK.cpp
Updates EvtGen Code
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtBToPlnuBK.cpp
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: EvtGenModels/EvtBToPlnuBK.cc
12//
13// Description: B->Xu l nu with BK (Becirevic-Kaidalov) parametrization
14// Xu is a pseudoscalar (pi_plus,pi0,eta or eta_prime)
15//
16// Modification history:
17//
18// Martin Simard, U. de Montreal, 08/01/2007 Module created
19//
20//------------------------------------------------------------------------
21//
22#include "EvtGenBase/EvtPatches.hh"
23#include <stdlib.h>
24#include <assert.h>
25#include "EvtGenBase/EvtParticle.hh"
26#include "EvtGenBase/EvtGenKine.hh"
27#include "EvtGenBase/EvtPDL.hh"
28#include "EvtGenBase/EvtReport.hh"
29#include "EvtGenModels/EvtBToPlnuBK.hh"
30#include "EvtGenModels/EvtBToPlnuBKFF.hh"
31#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
32
33using std::fstream;
34using std::cout;
35using std::endl;
36
37
38EvtBToPlnuBK::EvtBToPlnuBK():
39 BKmodel(0)
40 ,calcamp(0)
41{}
42
43EvtBToPlnuBK::~EvtBToPlnuBK(){
44 delete BKmodel;
45 BKmodel=0;
46 delete calcamp;
47 calcamp=0;
48}
49
50std::string EvtBToPlnuBK::getName(){
51
52 return "BTOPLNUBK";
53
54}
55
56EvtDecayBase* EvtBToPlnuBK::clone(){
57
58 return new EvtBToPlnuBK;
59
60}
61
62
63void EvtBToPlnuBK::initProbMax(){
64
65 EvtId parnum,mesnum,lnum,nunum;
66
67 parnum = getParentId();
68 mesnum = getDaug(0);
69 lnum = getDaug(1);
70 nunum = getDaug(2);
71
72 double mymaxprob = calcamp->CalcMaxProb(parnum,mesnum,
73 lnum,nunum,BKmodel);
74
75 setProbMax(mymaxprob);
76
77}
78
79void EvtBToPlnuBK::init(){
80
81 checkNDaug(3);
82
83 //We expect the parent to be a scalar
84 //and the daughters to be X lepton neutrino
85 checkSpinParent(EvtSpinType::SCALAR);
86
87 checkSpinDaughter(1,EvtSpinType::DIRAC);
88 checkSpinDaughter(2,EvtSpinType::NEUTRINO);
89
90 EvtSpinType::spintype d1type = EvtPDL::getSpinType(getDaug(0));
91 if ( d1type==EvtSpinType::SCALAR) {
92 checkNArg(2);
93 BKmodel = new EvtBToPlnuBKFF(getArg(0),getArg(1));
94 calcamp = new EvtSemiLeptonicScalarAmp;
95 }
96 else{
97 report(ERROR,"EvtGen") << "BK model handles only scalar meson daughters. Sorry."<<endl;
98 ::abort();
99 }
100
101}
102
103void EvtBToPlnuBK::decay( EvtParticle *p ){
104
105 p->initializePhaseSpace(getNDaug(),getDaugs());
106 calcamp->CalcAmp(p,_amp2,BKmodel);
107
108}
109
110
111