BOSS 7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
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>
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
61void EvtJTO3P::init(){
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
const double alpha
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)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)