BOSS 7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtT2GV.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: EvtT2GV.cc
12//
13// Description: Routine to decay chi_c2-> gamma J/psi
14//
15// Modification history:
16//
17// Ping R.-G. December, 2006 Module created
18//
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/EvtReport.hh"
31#include "EvtGenBase/EvtHelSys.hh"
32#include "EvtGenModels/EvtT2GV.hh"
33#include "EvtGenBase/EvtRandom.hh"
34
35#include <string>
36
38
39void EvtT2GV::getName(std::string& model_name){
40
41 model_name="T2GV";
42
43}
44
46
47 return new EvtT2GV;
48
49}
50
51
53
54 // check that there are 0 arguments
55 checkNArg(0);
56
57}
58
60
61 // noProbMax();
62setProbMax(30.00001);
63}
64
66
67loop:
69 EvtParticle *v,*s1;
70 EvtVector4R pv,ps,ppr;
71
72 v =p->getDaug(0); //gamma
73 s1=p->getDaug(1); //J/psi
74 pv=v->getP4();
75 ps=s1->getP4();
76 ppr=p->getP4();
77
78 double alpha=21./73.;
79// Put phase space results into the daughters.
80// EvtHelSys angles(ppr,pv); //using helicity sys. angles
81 EvtHelSys angles(ps,pv);
82 double theta =angles.getHelAng(1);
83 double phi =angles.getHelAng(2);
84 double gamma=0;
85 double F0=1.;
86 double F1=sqrt(3.)*F0; //pure M1 transition assumed,see PRD13,p1203
87 double F2=sqrt(6.)*F0; //helicity amplitude is labeled with lambda_chi and photon
88
89
90 int j1,j2,j3;
91 for(j1=0;j1<=4;){
92 for(j2=0;j2<=1;){
93 for(j3=0;j3<=2;){
94 vertex(j1,j2,j3,0.0);j3++;}
95j2++;}
96j1++;}
97
98
99 vertex(0,0,0, Djmn(1, 1, 1,phi,theta,gamma)*F0);
100 vertex(0,0,1, Djmn(1,-1, 1,phi,theta,gamma)*F0);
101 vertex(0,0,2, Djmn(1, 0, 1,phi,theta,gamma)*F0);
102 vertex(0,1,0, Djmn(1, 1,-1,phi,theta,gamma)*F0);
103 vertex(0,1,1, Djmn(1,-1,-1,phi,theta,gamma)*F0);
104 vertex(0,1,2, Djmn(1, 0,-1,phi,theta,gamma)*F0);
105
106 vertex(1,0,0, Djmn(1, 1,-1,phi,theta,gamma)*F2);
107 vertex(1,0,1, Djmn(1,-1,-1,phi,theta,gamma)*F2);
108 vertex(1,0,2, Djmn(1, 0,-1,phi,theta,gamma)*F2);
109
110 vertex(2,1,0, Djmn(1, 1, 1,phi,theta,gamma)*F2);
111 vertex(2,1,1, Djmn(1,-1, 1,phi,theta,gamma)*F2);
112 vertex(2,1,2, Djmn(1, 0, 1,phi,theta,gamma)*F2);
113
114 vertex(3,0,0, Djmn(1, 1, 0,phi,theta,gamma)*F1);
115 vertex(3,0,1, Djmn(1,-1, 0,phi,theta,gamma)*F1);
116 vertex(3,0,2, Djmn(1, 0, 0,phi,theta,gamma)*F1);
117
118 vertex(4,1,0, Djmn(1, 1, 0,phi,theta,gamma)*F1);
119 vertex(4,1,1, Djmn(1,-1, 0,phi,theta,gamma)*F1);
120 vertex(4,1,2, Djmn(1, 0, 0,phi,theta,gamma)*F1);
121
122
123 return ;
124}
125
126
const double alpha
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition: KarLud.h:35
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)