]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGenModels/EvtbTosllAli.cpp
Fix bug in building local list of valid files.
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtbTosllAli.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) 2003 Caltech, UCSB
10//
11// Module: EvtbTosllAli.cc
12//
13// Description: Routine to implement b->sll decays according to Ali '02 et al.
14//
15// Modification history:
16//
17// Ryd March 30, 2003 Module created
18//
19//------------------------------------------------------------------------
20//
21#include "EvtGenBase/EvtPatches.hh"
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/EvtbTosllAli.hh"
28#include "EvtGenModels/EvtbTosllAliFF.hh"
29#include "EvtGenModels/EvtbTosllAmp.hh"
30#include "EvtGenModels/EvtbTosllScalarAmp.hh"
31#include "EvtGenModels/EvtbTosllVectorAmp.hh"
32
33#include <string>
34using std::endl;
35
36EvtbTosllAli::~EvtbTosllAli() {}
37
38std::string EvtbTosllAli::getName(){
39
40 return "BTOSLLALI";
41}
42
43
44EvtDecayBase* EvtbTosllAli::clone(){
45
46 return new EvtbTosllAli;
47
48}
49
50void EvtbTosllAli::decay( EvtParticle *p ){
51
0ca57c2f 52 setWeight(p->initializePhaseSpace(getNDaug(),getDaugs(),false,
53 _poleSize,1,2));
da0e9ce3 54
55 _calcamp->CalcAmp(p,_amp2,_aliffmodel);
56
57}
58
59
60void EvtbTosllAli::initProbMax(){
61
62 EvtId parnum,mesnum,l1num,l2num;
63
64 parnum = getParentId();
65 mesnum = getDaug(0);
66 l1num = getDaug(1);
67 l2num = getDaug(2);
68
69 //This routine sets the _poleSize.
70 double mymaxprob = _calcamp->CalcMaxProb(parnum,mesnum,
71 l1num,l2num,
72 _aliffmodel,_poleSize);
73
74 setProbMax(mymaxprob);
75
76}
77
78
79void EvtbTosllAli::init(){
80
81 checkNArg(0);
82 checkNDaug(3);
83
84 //We expect the parent to be a scalar
85 //and the daughters to be X lepton+ lepton-
86
87 checkSpinParent(EvtSpinType::SCALAR);
88
89 EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0));
90
91 if ( !(mesontype == EvtSpinType::VECTOR||
92 mesontype == EvtSpinType::SCALAR)) {
93 report(ERROR,"EvtGen") << "EvtbTosllAli generator expected "
94 << " a SCALAR or VECTOR 1st daughter, found:"<<
95 EvtPDL::name(getDaug(0)).c_str()<<endl;
96 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
97 ::abort();
98 }
99
100 checkSpinDaughter(1,EvtSpinType::DIRAC);
101 checkSpinDaughter(2,EvtSpinType::DIRAC);
102
103 _aliffmodel = new EvtbTosllAliFF();
104 if (mesontype == EvtSpinType::SCALAR){
105 _calcamp = new EvtbTosllScalarAmp(-0.313,4.344,-4.669);
106 }
107 if (mesontype == EvtSpinType::VECTOR){
108 _calcamp = new EvtbTosllVectorAmp(-0.313,4.344,-4.669);
109 }
110
111}
112
113
114
115
116