BOSS
7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtJTO3P.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) 2006 Ping Rong-Gang @IHEP
10
//
11
// Module: EvtJTO3P.cc
12
//
13
// Description: Routine to a vector decays into 3 pseudoscalar with only contact term
14
15
//
16
// Modification history:
17
//
18
// Ping R.-G. December, 2007 Module created
19
//
20
//------------------------------------------------------------------------
21
22
#include "EvtGenBase/EvtPatches.hh"
23
#include <stdlib.h>
24
#include "EvtGenBase/EvtParticle.hh"
25
#include "EvtGenBase/EvtGenKine.hh"
26
#include "EvtGenBase/EvtPDL.hh"
27
#include "EvtGenBase/EvtVector4C.hh"
28
#include "EvtGenBase/EvtVector4R.hh"
29
#include "EvtGenBase/EvtTensor4C.hh"
30
#include "EvtGenBase/EvtDiracParticle.hh"
31
#include "EvtGenBase/EvtScalarParticle.hh"
32
#include "EvtGenBase/EvtVectorParticle.hh"
33
#include "EvtGenBase/EvtTensorParticle.hh"
34
#include "EvtGenBase/EvtPhotonParticle.hh"
35
#include "EvtGenBase/EvtNeutrinoParticle.hh"
36
#include "EvtGenBase/EvtStringParticle.hh"
37
#include "EvtGenBase/EvtRaritaSchwingerParticle.hh"
38
#include "EvtGenBase/EvtHighSpinParticle.hh"
39
#include "EvtGenBase/EvtReport.hh"
40
#include "EvtGenModels/EvtJTO3P.hh"
41
#include "EvtGenBase/EvtRandom.hh"
42
#include "EvtGenBase/EvtEulerAngles.hh"
43
#include <string>
44
using namespace
std
;
//::endl;
45
46
EvtJTO3P::~EvtJTO3P
() {}
47
48
void
EvtJTO3P::getName
(std::string& model_name){
49
50
model_name=
"JTO3P"
;
51
52
}
53
54
EvtDecayBase
*
EvtJTO3P::clone
(){
55
56
return
new
EvtJTO3P
;
57
58
}
59
60
61
void
EvtJTO3P::init
(){
62
63
// check that there are 1 arguments:angular distribution parameter
64
// checkNArg(0);
65
checkNDaug
(3);
66
checkSpinParent
(
EvtSpinType::VECTOR
);
67
checkSpinDaughter
(0,
EvtSpinType::SCALAR
);
68
checkSpinDaughter
(1,
EvtSpinType::SCALAR
);
69
checkSpinDaughter
(2,
EvtSpinType::SCALAR
);
70
}
71
72
//void EvtJTO3P::initProbMax(){
73
// setProbMax(1.0);
74
//}
75
76
77
void
EvtJTO3P::decay
(
EvtParticle
*p ){
78
79
p->
initializePhaseSpace
(
getNDaug
(),
getDaugs
());
80
81
EvtVector4R
mompi1 = p->
getDaug
(0)->
getP4
();
82
EvtVector4R
mompi2 = p->
getDaug
(1)->
getP4
();
83
EvtVector4R
mompi3 = p->
getDaug
(2)->
getP4
();
84
EvtVector4R
Zaxis = mompi2.
cross
(mompi3);
85
86
EvtEulerAngles
EA(mompi1,Zaxis);
87
double
alpha
=EA.
getAlpha
();
88
double
beta =EA.
getBeta
();
89
double
gamma=EA.
getGamma
();
90
91
EvtVector4R
h1,h2;
//rotate pi1 and pi2 momentum to helicity system
92
h1 =
rotateEuler
(mompi1,-gamma,-beta,-
alpha
);
93
h2 =
rotateEuler
(mompi2,-gamma,-beta,-
alpha
);
94
// cout<<h1<<h2<<endl;
95
double
F0 = h1.
get
(1)*h2.
get
(2)-h1.
get
(2)*h2.
get
(1);
96
// cout<<"F0 = "<<F0<<endl;
97
98
vertex
(0,
Djmn
(1, 1,0,
alpha
,beta,gamma)*F0);
99
vertex
(1,
Djmn
(1,-1,0,
alpha
,beta,gamma)*F0);
100
vertex
(2,
Djmn
(1, 0,0,
alpha
,beta,gamma)*F0);
101
102
}
103
104
alpha
const double alpha
Definition:
FastVertexFit.cxx:4
rotateEuler
EvtDiracSpinor rotateEuler(const EvtDiracSpinor &sp, double alpha, double beta, double gamma)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDiracSpinor.cc:66
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
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::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
EvtEulerAngles
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtEulerAngles.hh:33
EvtEulerAngles::getGamma
double getGamma()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtEulerAngles.cc:57
EvtEulerAngles::getBeta
double getBeta()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtEulerAngles.cc:53
EvtEulerAngles::getAlpha
double getAlpha()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtEulerAngles.cc:49
EvtJTO3P::EvtJTO3P
EvtJTO3P()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtJTO3P.hh:31
EvtJTO3P::getName
void getName(std::string &name)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtJTO3P.cc:48
EvtJTO3P::~EvtJTO3P
virtual ~EvtJTO3P()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtJTO3P.cc:46
EvtJTO3P::init
void init()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtJTO3P.cc:61
EvtJTO3P::clone
EvtDecayBase * clone()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtJTO3P.cc:54
EvtJTO3P::decay
void decay(EvtParticle *p)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtJTO3P.cc:77
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::SCALAR
@ SCALAR
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtSpinType.hh:31
EvtSpinType::VECTOR
@ VECTOR
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtSpinType.hh:31
EvtVector4R
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtVector4R.hh:29
EvtVector4R::get
double get(int i) const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtVector4R.hh:179
EvtVector4R::cross
EvtVector4R cross(const EvtVector4R &v2)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtVector4R.cc:171
std
Definition:
RootEventData_rootcint.cxx:16
source
Generator
BesEvtGen
bak-BesEvtGen-00-04-08
src
EvtGen
EvtGenModels
EvtJTO3P.cc
Generated by
1.9.6