BOSS
7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtTauGamMu.cc
Go to the documentation of this file.
1
//--------------------------------------------------------------------------
2
//
3
// Environment:
4
// This software is part of models developed at BES collaboration
5
// based on the EvtGen framework. If you use all or part
6
// of it, please give an appropriate acknowledgement.
7
//
8
// Copyright Information: See EvtGen/BesCopyright
9
// Copyright (A) 2014 Ping Rong-Gang
10
//
11
// Module: EvtHypWK.hh
12
//
13
// Description: To generate decay tau->gamma mu with uses' helicity amplitudes, it can be used
14
// for the decay Fermion -> photon Fermion .
15
//
16
// Modification history:
17
//
18
// Pang C.-Y., Ping R.-G. Mar, 2007 Module created
19
// Ping R.G. Apr. 2007 change to helicity amplitude method
20
//------------------------------------------------------------------------
21
//
22
#include "EvtGenBase/EvtPatches.hh"
23
#include <stdlib.h>
24
#include <iostream>
25
#include <string>
26
#include "EvtGenBase/EvtParticle.hh"
27
#include "EvtGenBase/EvtPDL.hh"
28
#include "EvtGenBase/EvtGenKine.hh"
29
#include "EvtGenModels/EvtTauGamMu.hh"
30
#include "EvtGenBase/EvtDiracSpinor.hh"
31
#include "EvtGenBase/EvtReport.hh"
32
#include "EvtGenBase/EvtVector4C.hh"
33
#include "EvtGenBase/EvtId.hh"
34
#include "EvtGenBase/EvtHelSys.hh"
35
#include "EvtGenBase/EvtdFunction.hh"
36
37
using
std::cout;
38
using
std::endl;
39
40
EvtTauGamMu::~EvtTauGamMu
() {}
41
42
void
EvtTauGamMu::getName
(std::string& model_name){
43
44
model_name=
"TauGamMu"
;
45
46
}
47
48
49
50
EvtDecayBase
*
EvtTauGamMu::clone
(){
51
52
return
new
EvtTauGamMu
;
53
54
}
55
56
void
EvtTauGamMu::init
(){
57
58
// check that there are 0 arguments
59
checkNArg
(4);
60
checkNDaug
(2);
61
62
63
checkSpinParent
(
EvtSpinType::DIRAC
);
64
65
checkSpinDaughter
(0,
EvtSpinType::PHOTON
);
66
checkSpinDaughter
(1,
EvtSpinType::DIRAC
);
67
68
69
for
(
int
i=0;i<=1;i++){
70
for
(
int
j=0;j<=2;j++){
71
for
(
int
k=0;k<=1;k++){
72
vertex
(i,j,k,0);
73
}
74
}
75
}
76
77
//---
78
}
79
80
81
void
EvtTauGamMu::decay
(
EvtParticle
*p){
82
83
84
p->
initializePhaseSpace
(
getNDaug
(),
getDaugs
());
85
86
EvtParticle
*l1, *l2;
87
l1 = p->
getDaug
(0);
88
l2 = p->
getDaug
(1);
89
EvtVector4R
DRP4=l1->
getP4
();
//photon
90
EvtVector4R
MEP4=l2->
getP4
();
//Mu
91
EvtVector4R
PRP4=p->
getP4
();
//Parent Momentum
92
EvtHelSys
angles(PRP4,DRP4);
//using helicity sys.angles
93
double
tht=angles.
getHelAng
(1);
94
double
ph =angles.
getHelAng
(2);
95
double
gmm=0;
96
97
double
H00=
getArg
(0);
//H(1,1/2) for photon , mu
98
double
A00=
getArg
(1);
//phase angle for H00
99
double
H11=
getArg
(2);
//H(-1,-1/2)
100
double
A11=
getArg
(3);
//phase angle H11
101
102
EvtComplex
A000 =
Djmn
(0.5, 0.5, 0.5,ph,tht,gmm)*H00*
exp
(A00);
//for 1/2 -> 1 1/2
103
EvtComplex
A100 =
Djmn
(0.5,-0.5, 0.5,ph,tht,gmm)*H00*
exp
(A00);
//for -1/2 -> 1 1/2
104
EvtComplex
A021 =
Djmn
(0.5, 0.5,-0.5,ph,tht,gmm)*H11*
exp
(A11);
// 1/2->-1,-1/2
105
EvtComplex
A121 =
Djmn
(0.5,-0.5,-0.5,ph,tht,gmm)*H11*
exp
(A11);
// -1/2->-1,-1/2
106
107
108
vertex
(0,0,0,A000);
109
vertex
(0,1,1,A021);
110
vertex
(1,0,0,A100);
111
vertex
(1,1,1,A121);
112
113
return
;
114
115
}
116
117
118
exp
EvtComplex exp(const EvtComplex &c)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtComplex.hh:252
Djmn
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtHelSys.cc:151
EvtComplex
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtComplex.hh:28
EvtDecayAmp::vertex
void vertex(const EvtComplex &)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayAmp.hh:37
EvtDecayBase
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.hh:33
EvtDecayBase::checkSpinDaughter
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.cc:533
EvtDecayBase::checkSpinParent
void checkSpinParent(EvtSpinType::spintype sp)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.cc:520
EvtDecayBase::getArg
double getArg(int j)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.cc:564
EvtDecayBase::getNDaug
int getNDaug()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.hh:64
EvtDecayBase::checkNDaug
void checkNDaug(int d1, int d2=-1)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.cc:504
EvtDecayBase::getDaugs
EvtId * getDaugs()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.hh:65
EvtDecayBase::checkNArg
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.cc:482
EvtHelSys
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtHelSys.hh:44
EvtHelSys::getHelAng
double getHelAng(int i)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtHelSys.cc:54
EvtParticle
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtParticle.hh:42
EvtParticle::getP4
const EvtVector4R & getP4() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtParticle.cc:121
EvtParticle::getDaug
EvtParticle * getDaug(int i)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtParticle.cc:85
EvtParticle::initializePhaseSpace
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtParticle.cc:1071
EvtSpinType::PHOTON
@ PHOTON
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtSpinType.hh:31
EvtSpinType::DIRAC
@ DIRAC
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtSpinType.hh:31
EvtTauGamMu::~EvtTauGamMu
virtual ~EvtTauGamMu()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtTauGamMu.cc:40
EvtTauGamMu::clone
EvtDecayBase * clone()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtTauGamMu.cc:50
EvtTauGamMu::init
void init()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtTauGamMu.cc:56
EvtTauGamMu::getName
void getName(std::string &name)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtTauGamMu.cc:42
EvtTauGamMu::decay
void decay(EvtParticle *p)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtTauGamMu.cc:81
EvtTauGamMu::EvtTauGamMu
EvtTauGamMu()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtTauGamMu.hh:33
EvtVector4R
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtVector4R.hh:29
source
Generator
BesEvtGen
bak-BesEvtGen-00-04-08
src
EvtGen
EvtGenModels
EvtTauGamMu.cc
Generated by
1.9.6