BOSS 8.0.0
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
22#include "EvtJTO3P.hh"
42#include <stdlib.h>
43#include <string>
44using namespace std; //::endl;
45
47
48void EvtJTO3P::getName( std::string& model_name ) { model_name = "JTO3P"; }
49
51
53
54 // check that there are 1 arguments:angular distribution parameter
55 // checkNArg(0);
56 checkNDaug( 3 );
61}
62
63// void EvtJTO3P::initProbMax(){
64// setProbMax(1.0);
65// }
66
68
70
71 EvtVector4R mompi1 = p->getDaug( 0 )->getP4();
72 EvtVector4R mompi2 = p->getDaug( 1 )->getP4();
73 EvtVector4R mompi3 = p->getDaug( 2 )->getP4();
74 EvtVector4R Zaxis = mompi2.cross( mompi3 );
75
76 EvtEulerAngles EA( mompi1, Zaxis );
77 double alpha = EA.getAlpha();
78 double beta = EA.getBeta();
79 double gamma = EA.getGamma();
80
81 EvtVector4R h1, h2; // rotate pi1 and pi2 momentum to helicity system
82 h1 = rotateEuler( mompi1, -gamma, -beta, -alpha );
83 h2 = rotateEuler( mompi2, -gamma, -beta, -alpha );
84 // cout<<h1<<h2<<endl;
85 double F0 = h1.get( 1 ) * h2.get( 2 ) - h1.get( 2 ) * h2.get( 1 );
86 // cout<<"F0 = "<<F0<<endl;
87
88 vertex( 0, Djmn( 1, 1, 0, alpha, beta, gamma ) * F0 );
89 vertex( 1, Djmn( 1, -1, 0, alpha, beta, gamma ) * F0 );
90 vertex( 2, Djmn( 1, 0, 0, alpha, beta, gamma ) * F0 );
91}
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:165
double alpha
void vertex(const EvtComplex &amp)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void checkNDaug(int d1, int d2=-1)
EvtId * getDaugs()
void getName(std::string &name)
Definition EvtJTO3P.cc:48
virtual ~EvtJTO3P()
Definition EvtJTO3P.cc:46
void init()
Definition EvtJTO3P.cc:52
EvtDecayBase * clone()
Definition EvtJTO3P.cc:50
void decay(EvtParticle *p)
Definition EvtJTO3P.cc:67
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double get(int i) const
EvtVector4R cross(const EvtVector4R &v2)