BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtSLN.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: EvtSLN.cc
12//
13// Description: B ==> tau + nu
14//
15// Modification history:
16//
17// RYD/SHY April 23, 1997 Module created
18//
19//------------------------------------------------------------------------
20//
21#include "EvtSLN.hh"
29#include <iostream>
30#include <stdlib.h>
31#include <string>
32
34
35void EvtSLN::getName( std::string& model_name ) { model_name = "SLN"; }
36
38
40
41 // check that there are 0 arguments
42 checkNArg( 0 );
43 checkNDaug( 2 );
44
46
49}
50
52
53 double M = EvtPDL::getMeanMass( getParentId() );
54 double m = EvtPDL::getMeanMass( getDaug( 0 ) );
55
56 double probMax = 8.0 * ( M * M - m * m ) * m * m;
57
58 setProbMax( probMax );
59}
60
62
63 static EvtId EM = EvtPDL::getId( "e-" );
64 static EvtId MUM = EvtPDL::getId( "mu-" );
65 static EvtId TAUM = EvtPDL::getId( "tau-" );
66
68
69 EvtParticle *l, *nul;
70 l = p->getDaug( 0 );
71 nul = p->getDaug( 1 );
72
73 EvtVector4R p4_p;
74 p4_p.set( p->mass(), 0.0, 0.0, 0.0 );
75
76 EvtVector4C l1, l2;
77
78 if ( getDaug( 0 ) == TAUM || getDaug( 0 ) == MUM || getDaug( 0 ) == EM )
79 {
80 l1 = EvtLeptonVACurrent( l->spParent( 0 ), nul->spParentNeutrino() );
81 l2 = EvtLeptonVACurrent( l->spParent( 1 ), nul->spParentNeutrino() );
82 }
83 else
84 {
85 l1 = EvtLeptonVACurrent( nul->spParentNeutrino(), l->spParent( 0 ) );
86 l2 = EvtLeptonVACurrent( nul->spParentNeutrino(), l->spParent( 1 ) );
87 }
88
89 vertex( 0, p4_p * l1 );
90 vertex( 1, p4_p * l2 );
91
92 return;
93}
EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
void vertex(const EvtComplex &amp)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
EvtId getParentId()
void checkNDaug(int d1, int d2=-1)
EvtId * getDaugs()
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
EvtId getDaug(int i)
Definition EvtId.hh:27
static double getMeanMass(EvtId i)
Definition EvtPDL.hh:43
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272
virtual EvtDiracSpinor spParentNeutrino() const
virtual EvtDiracSpinor spParent(int) const
EvtParticle * getDaug(int i)
double mass() const
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void initProbMax()
Definition EvtSLN.cc:51
virtual ~EvtSLN()
Definition EvtSLN.cc:33
EvtDecayBase * clone()
Definition EvtSLN.cc:37
void getName(std::string &name)
Definition EvtSLN.cc:35
void decay(EvtParticle *p)
Definition EvtSLN.cc:61
EvtSLN()
Definition EvtSLN.hh:33
void init()
Definition EvtSLN.cc:39
void set(int i, double d)