BOSS 6.6.4.p03
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//
21#include <stdlib.h>
22#include <iostream>
23#include <string>
25#include "EvtGenBase/EvtPDL.hh"
31#include "EvtGenBase/EvtId.hh"
34
35using std::cout;
36using std::endl;
37
39
40void EvtHelPPJ::getName(std::string& model_name){
41
42 model_name="HelPPJ";
43
44}
45
46
47
49
50 return new EvtHelPPJ;
51
52}
53
55
56 // check that there are 0 arguments
57 checkNArg(0);
58 checkNDaug(3);
59
61
65
66}
67
68
70
72
73 EvtParticle *l1, *l2,*l3;
74 l1 = p->getDaug(0);
75 l2 = p->getDaug(1);
76 l3 = p->getDaug(2);
77 EvtVector4R VP4 =l1->getP4(); //Vector Daughter
78 EvtVector4R S1P4=l2->getP4(); //Scalar Daughter
79 EvtVector4R S2P4=l3->getP4(); //Scalar Daughter
80 EvtVector4R PRP4=p->getP4(); //Parent Momentum
81 PRP4.set(1,0);
82 PRP4.set(2,0);
83 PRP4.set(3,0);
84
85
86 double mpipi2=(S1P4+S2P4).mass2();
87 double e1pi =S1P4.get(0);
88 double e2pi =S2P4.get(0);
89 double g0 =0.3;
90 double g1 =-0.11;
91 double mpi =0.1396;
92 double mpsi =3.097;
93 double epsi =VP4.get(0);
94 double amp1 =(mpipi2-2*mpi*mpi)*g0/2+g1*e1pi*e2pi;
95 double amp0 =amp1*epsi/mpsi;
96
97
98 EvtHelSys angles(PRP4,VP4); //using helicity sys.angles
99 double tht=angles.getHelAng(1);
100 double phi=angles.getHelAng(2);
101 double gamma=0;
102
103 vertex(0,0,Djmn(1, 1, 1,phi,tht,gamma)*amp1);
104 vertex(0,1,Djmn(1, 1,-1,phi,tht,gamma)*amp1);
105 vertex(0,2,Djmn(1, 1, 0,phi,tht,gamma)*amp0);
106 vertex(1,0,Djmn(1,-1, 1,phi,tht,gamma)*amp1);
107 vertex(1,1,Djmn(1,-1,-1,phi,tht,gamma)*amp1);
108 vertex(1,2,Djmn(1,-1, 0,phi,tht,gamma)*amp0);
109 vertex(2,0,Djmn(1, 0, 1,phi,tht,gamma)*amp1);
110 vertex(2,1,Djmn(1, 0,-1,phi,tht,gamma)*amp1);
111 vertex(2,2,Djmn(1, 0, 0,phi,tht,gamma)*amp0);
112
113 return;
114
115}
116
TF1 * g1
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition: EvtHelSys.cc:151
const double mpi
Definition: Gam4pikp.cxx:47
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
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:69
void init()
Definition: EvtHelPPJ.cc:54
virtual ~EvtHelPPJ()
Definition: EvtHelPPJ.cc:38
EvtDecayBase * clone()
Definition: EvtHelPPJ.cc:48
double getHelAng(int i)
Definition: EvtHelSys.cc:54
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
void set(int i, double d)
Definition: EvtVector4R.hh:183