BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtHelPPJ.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, Pang Cai-Ying@IHEP
10//
11// Module: EvtHelPPJ.hh
12//
13// Description: To generate psi(2S)->J/psi sigma0->J/psi pi pi.
14// using the chiral effective formula: Z.Phys.C73,541 by Mannel
15// Modification history:
16//
17// Ping R.G. Apr. 2007 created
18//------------------------------------------------------------------------
19//
20#include "EvtHelPPJ.hh"
31#include <iostream>
32#include <stdlib.h>
33#include <string>
34
35using std::cout;
36using std::endl;
37
39
40void EvtHelPPJ::getName( std::string& model_name ) { model_name = "HelPPJ"; }
41
43
45
46 // check that there are 0 arguments
47 checkNArg( 0 );
48 checkNDaug( 3 );
49
51
55}
56
58
60
61 EvtParticle *l1, *l2, *l3;
62 l1 = p->getDaug( 0 );
63 l2 = p->getDaug( 1 );
64 l3 = p->getDaug( 2 );
65 EvtVector4R VP4 = l1->getP4(); // Vector Daughter
66 EvtVector4R S1P4 = l2->getP4(); // Scalar Daughter
67 EvtVector4R S2P4 = l3->getP4(); // Scalar Daughter
68 EvtVector4R PRP4 = p->getP4(); // Parent Momentum
69 PRP4.set( 1, 0 );
70 PRP4.set( 2, 0 );
71 PRP4.set( 3, 0 );
72
73 double mpipi2 = ( S1P4 + S2P4 ).mass2();
74 double e1pi = S1P4.get( 0 );
75 double e2pi = S2P4.get( 0 );
76 double g0 = 0.3;
77 double g1 = -0.11;
78 double mpi = 0.1396;
79 double mpsi = 3.097;
80 double epsi = VP4.get( 0 );
81 double amp1 = ( mpipi2 - 2 * mpi * mpi ) * g0 / 2 + g1 * e1pi * e2pi;
82 double amp0 = amp1 * epsi / mpsi;
83
84 EvtHelSys angles( PRP4, VP4 ); // using helicity sys.angles
85 double tht = angles.getHelAng( 1 );
86 double phi = angles.getHelAng( 2 );
87 double gamma = 0;
88
89 vertex( 0, 0, Djmn( 1, 1, 1, phi, tht, gamma ) * amp1 );
90 vertex( 0, 1, Djmn( 1, 1, -1, phi, tht, gamma ) * amp1 );
91 vertex( 0, 2, Djmn( 1, 1, 0, phi, tht, gamma ) * amp0 );
92 vertex( 1, 0, Djmn( 1, -1, 1, phi, tht, gamma ) * amp1 );
93 vertex( 1, 1, Djmn( 1, -1, -1, phi, tht, gamma ) * amp1 );
94 vertex( 1, 2, Djmn( 1, -1, 0, phi, tht, gamma ) * amp0 );
95 vertex( 2, 0, Djmn( 1, 0, 1, phi, tht, gamma ) * amp1 );
96 vertex( 2, 1, Djmn( 1, 0, -1, phi, tht, gamma ) * amp1 );
97 vertex( 2, 2, Djmn( 1, 0, 0, phi, tht, gamma ) * amp0 );
98
99 return;
100}
TF1 * g1
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition EvtHelSys.cc:165
double mpi
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 checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
void getName(std::string &name)
Definition EvtHelPPJ.cc:40
void decay(EvtParticle *p)
Definition EvtHelPPJ.cc:57
void init()
Definition EvtHelPPJ.cc:44
virtual ~EvtHelPPJ()
Definition EvtHelPPJ.cc:38
EvtDecayBase * clone()
Definition EvtHelPPJ.cc:42
double getHelAng(int i)
Definition EvtHelSys.cc:52
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
void set(int i, double d)