BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtChi1BB2.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: EvtChi1BB2.cc
12//
13// Description: Routine to decay Chi1 to B10 B10bar.
14//
15// Modification history:
16//
17// Pang C.Y. and Ping R.-G. April, 2007 Module created
18//
19//------------------------------------------------------------------------
20//
21#include "EvtChi1BB2.hh"
32#include <stdlib.h>
33#include <string>
34using std::cout;
35using std::endl;
37
38void EvtChi1BB2::getName( std::string& model_name ) { model_name = "Chi1BB2"; }
39
41
50
51/*
52void EvtChi1BB2::initProbMax() {
53
54 //Hard coded... should not be hard to calculate...
55 setProbMax(50.0);
56
57}
58*/
59
61
63
64 EvtParticle *v, *s1;
65 EvtVector4R pv, ps, ppr;
66
67 v = p->getDaug( 0 );
68 s1 = p->getDaug( 1 );
69 pv = v->getP4();
70 ps = s1->getP4();
71 ppr = p->getP4();
72
73 // Put phase space results into the daughters.
74 EvtHelSys angles( ppr, pv ); // using helicity sys. angles
75 double theta = angles.getHelAng( 1 );
76 double phi = angles.getHelAng( 2 );
77 double gamma = 0;
78
79 /* double alpha=getArg(0);
80 double F01=sqrt((1+alpha)/2);
81 double F00=sqrt((1-alpha)/4);
82 */
83 double F00 = getArg( 0 );
84 double F01 = getArg( 1 );
85 double F03 = getArg( 2 );
86 double F11 = getArg( 3 );
87 double F33 = -F00;
88 double F32 = -F01;
89 double F30 = -F03;
90 double F10 = F01;
91 double F23 = -F10;
92 double F22 = -F11;
93 // cout<<"********F00,F01,F03,F10,F11,F22,F23,F30,F32,F33="<<F00<<F01<<F03<<F10<<F11<<F22<<F23<<F30<<F32<<F33<<endl;
94 /*cout<<"********Djmn(1, 1, 0,phi,theta,gamma)="<<Djmn(1, 1, 0,phi,theta,gamma);
95 cout<<"********Djmn(1, 1,-1,phi,theta,gamma)="<<Djmn(1, 1,-1,phi,theta,gamma);
96 cout<<"********Djmn(1, 1, 1,phi,theta,gamma)="<<Djmn(1, 1, 1,phi,theta,gamma);
97 */
98 int j1, j2, j3;
99 for ( j1 = 0; j1 <= 2; )
100 {
101 for ( j2 = 0; j2 <= 3; )
102 {
103 for ( j3 = 0; j3 <= 3; )
104 {
105 vertex( j1, j2, j3, 0.0 );
106 j3++;
107 }
108 j2++;
109 }
110 j1++;
111 }
112
113 vertex( 0, 0, 0, Djmn( 1, 1, 0, phi, theta, gamma ) * F00 ); // Chi1 helicity =1
114 // corresponding index=0
115 vertex( 0, 0, 1, Djmn( 1, 1, -1, phi, theta, gamma ) * F01 );
116 vertex( 0, 0, 3, Djmn( 1, 1, 1, phi, theta, gamma ) * F03 );
117 vertex( 0, 1, 0, Djmn( 1, 1, 1, phi, theta, gamma ) * F10 );
118 vertex( 0, 1, 1, Djmn( 1, 1, 0, phi, theta, gamma ) * F11 );
119 vertex( 0, 2, 2, Djmn( 1, 1, 0, phi, theta, gamma ) * F22 );
120 vertex( 0, 2, 3, Djmn( 1, 1, -1, phi, theta, gamma ) * F23 );
121 vertex( 0, 3, 0, Djmn( 1, 1, -1, phi, theta, gamma ) * F30 );
122 vertex( 0, 3, 2, Djmn( 1, 1, 1, phi, theta, gamma ) * F32 );
123 vertex( 0, 3, 3, Djmn( 1, 1, 0, phi, theta, gamma ) * F33 );
124
125 vertex( 1, 0, 0, Djmn( 1, -1, 0, phi, theta, gamma ) * F00 ); // Chi1 helicity =-1
126 // corresponding index=1
127 vertex( 1, 0, 1, Djmn( 1, -1, -1, phi, theta, gamma ) * F01 );
128 vertex( 1, 0, 3, Djmn( 1, -1, 1, phi, theta, gamma ) * F03 );
129 vertex( 1, 1, 0, Djmn( 1, -1, 1, phi, theta, gamma ) * F10 );
130 vertex( 1, 1, 1, Djmn( 1, -1, 0, phi, theta, gamma ) * F11 );
131 vertex( 1, 2, 2, Djmn( 1, -1, 0, phi, theta, gamma ) * F22 );
132 vertex( 1, 2, 3, Djmn( 1, -1, -1, phi, theta, gamma ) * F23 );
133 vertex( 1, 3, 0, Djmn( 1, -1, -1, phi, theta, gamma ) * F30 );
134 vertex( 1, 3, 2, Djmn( 1, -1, 1, phi, theta, gamma ) * F32 );
135 vertex( 1, 3, 3, Djmn( 1, -1, 0, phi, theta, gamma ) * F33 );
136
137 vertex( 2, 0, 0, Djmn( 1, 0, 0, phi, theta, gamma ) * F00 ); // Chi1 helicity =0
138 // corresponding index=2
139 vertex( 2, 0, 1, Djmn( 1, 0, -1, phi, theta, gamma ) * F01 );
140 vertex( 2, 0, 3, Djmn( 1, 0, 1, phi, theta, gamma ) * F03 );
141 vertex( 2, 1, 0, Djmn( 1, 0, 1, phi, theta, gamma ) * F10 );
142 vertex( 2, 1, 1, Djmn( 1, 0, 0, phi, theta, gamma ) * F11 );
143 vertex( 2, 2, 2, Djmn( 1, 0, 0, phi, theta, gamma ) * F22 );
144 vertex( 2, 2, 3, Djmn( 1, 0, -1, phi, theta, gamma ) * F23 );
145 vertex( 2, 3, 0, Djmn( 1, 0, -1, phi, theta, gamma ) * F30 );
146 vertex( 2, 3, 2, Djmn( 1, 0, 1, phi, theta, gamma ) * F32 );
147 vertex( 2, 3, 3, Djmn( 1, 0, 0, phi, theta, gamma ) * F33 );
148
149 return;
150}
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition EvtHelSys.cc:165
**********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
void init()
Definition EvtChi1BB2.cc:42
void decay(EvtParticle *p)
Definition EvtChi1BB2.cc:60
void getName(std::string &name)
Definition EvtChi1BB2.cc:38
virtual ~EvtChi1BB2()
Definition EvtChi1BB2.cc:36
EvtDecayBase * clone()
Definition EvtChi1BB2.cc:40
void vertex(const EvtComplex &amp)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
double getArg(int j)
void checkNDaug(int d1, int d2=-1)
EvtId * getDaugs()
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
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)