BOSS 7.0.7
BESIII Offline Software System
Loading...
Searching...
No Matches
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
23#include <stdlib.h>
26#include "EvtGenBase/EvtPDL.hh"
43#include <string>
44using namespace std; //::endl;
45
47
48void EvtJTO3P::getName(std::string& model_name){
49
50 model_name="JTO3P";
51
52}
53
55
56 return new EvtJTO3P;
57
58}
59
60
62
63// check that there are 1 arguments:angular distribution parameter
64// checkNArg(0);
65 checkNDaug(3);
70}
71
72//void EvtJTO3P::initProbMax(){
73// setProbMax(1.0);
74//}
75
76
78
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
EvtDiracSpinor rotateEuler(const EvtDiracSpinor &sp, double alpha, double beta, double gamma)
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition: EvtHelSys.cc:151
const double alpha
void vertex(const EvtComplex &amp)
Definition: EvtDecayAmp.hh:37
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void checkNDaug(int d1, int d2=-1)
EvtId * getDaugs()
Definition: EvtDecayBase.hh:65
EvtJTO3P()
Definition: EvtJTO3P.hh:31
void getName(std::string &name)
Definition: EvtJTO3P.cc:48
virtual ~EvtJTO3P()
Definition: EvtJTO3P.cc:46
void init()
Definition: EvtJTO3P.cc:61
EvtDecayBase * clone()
Definition: EvtJTO3P.cc:54
void decay(EvtParticle *p)
Definition: EvtJTO3P.cc:77
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double get(int i) const
Definition: EvtVector4R.hh:179
EvtVector4R cross(const EvtVector4R &v2)
Definition: EvtVector4R.cc:171