BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtAV2GV.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: EvtAV2GV.cc
12//
13// Description: Routine to decay chi_c1-> gamma J/psi using
14// helicity amplitude, assuming E1 dominance. see prd13,1203
15// Modification history:
16//
17// Ping R.-G. December, 2006 Module created
18//
19//------------------------------------------------------------------------
20//
22#include <stdlib.h>
25#include "EvtGenBase/EvtPDL.hh"
33#include <string>
35
36using std::endl;
37
39
40void EvtAV2GV::getName(std::string& model_name){
41
42 model_name="AV2GV";
43
44}
45
46
48
49 return new EvtAV2GV;
50
51}
52
54static EvtId GAM=EvtPDL::getId("gamma");
55// check that there are 0 arguments
56 checkNArg(0);
57 checkNDaug(2);
61 if (!(getDaug(0)==GAM)) {
62 report(ERROR,"EvtGen") << "EvtAV2GV generator radiative decays expected "<<endl;
63 ::abort();
64}
65 }
66
67
69
70//Hard coded... should not be hard to calculate...
71setProbMax(12.00001);
72}
73
76
77 EvtParticle *v,*s1;
78 EvtVector4R pv,ps,ppr;
79
80 v =p->getDaug(0); //gamma
81 s1=p->getDaug(1); //J/psi
82 pv=v->getP4();
83 ps=s1->getP4();
84 ppr=p->getP4();
85// Put phase space results into the daughters.
86 EvtHelSys angles(ps,pv); //using helicity sys. angles
87
88
89 double theta =angles.getHelAng(1);
90 double phi =angles.getHelAng(2);
91 double gamma=0;
92
93 int j1,j2,j3;
94 for(j1=0;j1<=2;){
95 for(j2=0;j2<=1;){
96 for(j3=0;j3<=2;){
97 vertex(j1,j2,j3,0.0);j3++;}
98j2++;}
99j1++;}
100
101 vertex(0,0,0, Djmn(1, 1, 0,phi,theta,gamma)); //0 for chi_c1 helicity= 1
102 vertex(0,0,1, Djmn(1,-1, 0,phi,theta,gamma)); //1 for chi_c1 helicity=-1
103 vertex(0,0,2, Djmn(1, 0, 0,phi,theta,gamma)); //2 for chi_c1 helicity= 0
104
105 vertex(1,1,0, Djmn(1, 1, 0,phi,theta,gamma));
106 vertex(1,1,1, Djmn(1,-1, 0,phi,theta,gamma));
107 vertex(1,1,2, Djmn(1, 0, 0,phi,theta,gamma));
108
109 vertex(2,0,0, Djmn(1, 1, 1,phi,theta,gamma));
110 vertex(2,0,1, Djmn(1,-1, 1,phi,theta,gamma));
111 vertex(2,0,2, Djmn(1, 0, 1,phi,theta,gamma));
112
113 vertex(2,1,0, Djmn(1, 1,-1,phi,theta,gamma));
114 vertex(2,1,1, Djmn(1,-1,-1,phi,theta,gamma));
115 vertex(2,1,2, Djmn(1, 0,-1,phi,theta,gamma));
116
117 return ;
118
119}
120
121
122
123
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition: EvtHelSys.cc:151
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ ERROR
Definition: EvtReport.hh:49
**********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
EvtDecayBase * clone()
Definition: EvtAV2GV.cc:47
virtual ~EvtAV2GV()
Definition: EvtAV2GV.cc:38
void decay(EvtParticle *p)
Definition: EvtAV2GV.cc:74
EvtAV2GV()
Definition: EvtAV2GV.hh:32
void init()
Definition: EvtAV2GV.cc:53
void getName(std::string &name)
Definition: EvtAV2GV.cc:40
void initProbMax()
Definition: EvtAV2GV.cc:68
void vertex(const EvtComplex &amp)
Definition: EvtDecayAmp.hh:37
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
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)
EvtId getDaug(int i)
Definition: EvtDecayBase.hh:66
double getHelAng(int i)
Definition: EvtHelSys.cc:54
Definition: EvtId.hh:27
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
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)