BOSS 6.6.4.p03
BESIII Offline Software System
Loading...
Searching...
No Matches
UserDIY.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: EvtDIY.cc
12//
13// Description: Routine for users to create model to use the model DIY
14//
15// Modification history:
16//
17// Ping R.-G. December, 2006 Module created
18//
19//------------------------------------------------------------------------
20//
22#include <math.h>
23#include <stdlib.h>
25#include "EvtGenBase/EvtKine.hh"
26
32#include <string>
33using namespace std;
34
35
36// **** angular sample test
37
39
40 public:
42 _a=alpha;
43 pd1=p1;
44 }
45// virtual ~AngularSam();
46 double amps();
47
48 private:
49 EvtVector4R pd1;
50 double _a;
51};
52
54double costheta=pd1.get(3)/pd1.d3mag();
55return 1+_a*pow(costheta,2.);
56}
57//--------------------
58
59// ******** rhopi decays without interference
60class rhopi{
61 public:
63 _pd[0]=pd1;
64 _pd[1]=pd2;
65 _pd[2]=pd3;
66 }
67 double F00(double s);
68 double F10(double s);
69 double amps1(double s,int i, int j);
70 double amps( );
71
72 private:
73 EvtVector4R _pd[3];
74};
75
76 double rhopi::F00(double s){
77 double mpi=0.1395;
78 return sqrt(s-4*mpi*mpi)/sqrt(s);
79 }
80
81 double rhopi::F10(double s){
82 double mpi=0.1395,mpsi=3.096916;
83 double tep=sqrt((mpsi*mpsi-pow(mpi+sqrt(s),2.))*(mpsi*mpsi-pow(mpi-sqrt(s),2.)));
84 return tep;
85 }
86
87 double rhopi::amps1(double s, int i, int j){
88 double mrho=0.771,wrho=0.1492,dpro;
89 EvtComplex img(0.0,1.0);
90 dpro=pow(abs(s-mrho*mrho+img*sqrt(s)*wrho),2.);
91 EvtVector4R prho;
92 prho=_pd[i]+_pd[j];
93 EvtHelSys angles(prho,_pd[i]),labAngles;
94 double theta,phi,ct1,st1,phi1,st,ct,temp;
95 theta=angles.getHelAng(1);
96 phi =angles.getHelAng(2);
97 ct1 =labAngles.Angles(prho,1);
98 phi1=labAngles.Angles(prho,2);
99 st=sin(theta);ct=cos(theta);
100 temp=pow(F00(s),2.)*pow(F10(s),2.)*pow(st,2.)/dpro; // *(1+pow(ct1,2.)+pow(st1,2.)*cos(2*(phi1+phi)));
101 return temp;
102 }
103
104 double rhopi::amps(){
105 double temp,s12,s13,s23;
106 s12=(_pd[0]+_pd[1]).mass2();
107 s13=(_pd[0]+_pd[2]).mass2();
108 s23=(_pd[1]+_pd[2]).mass2();
109 temp=amps1(s12,0,1)+amps1(s13,0,2)+amps1(s23,1,2);
110 return temp;
111 }
112// ************** end class rhopi
113
114
115// ******** rhopi decays with interference
117 public:
119 _pd[0]=pd1;
120 _pd[1]=pd2;
121 _pd[2]=pd3;
122 }
123 double Fij(int i, int j, double r);
124 double R00(double r);
125 EvtComplex amps1(int m, int i, int j);
126 double amps( );
127
128 private:
129 EvtVector4R _pd[3];
130};
131
132 double rhopifull::R00(double r){
133 double mpi=0.1395;
134 return r;
135 }
136
137 double rhopifull::Fij(int i, int j, double r){
138 double mpi=0.1395,mpsi=3.096916;
139 double temp=mpsi*r;
140 if(i==0&& j==0) return 0;
141 if(i==1&& j==0) return temp;
142 if(i==-1&& j==0) return -temp;
143
144 }
145
146 EvtComplex rhopifull::amps1(int m, int i, int j){
147 double mrho=0.771,wrho=0.1492,s;
148 EvtComplex img(0.0,1.0),dpro;
149 EvtVector4R prho;
150 prho=_pd[i]+_pd[j];
151 s=prho.mass2();
152 dpro=s-mrho*mrho+img*sqrt(s)*wrho;
153 EvtHelSys angles(prho,_pd[i]),labAngles;
154 double theta,phi,ct1,st1,phi1,st,ct;
155 double rpp=angles.getHelAng(0);
156 theta=angles.getHelAng(1);
157 phi =angles.getHelAng(2);
158 ct1 =labAngles.Angles(prho,1);
159 phi1=labAngles.Angles(prho,2);
160 int lamb;
161 EvtComplex temp(0.0,0.0);
162 for(lamb=-1;lamb<=1;lamb++) temp=temp+Fij(lamb,0,prho.d3mag())*Djmn(1,m,lamb,phi1,ct1,0.0)/dpro*R00(rpp)*Djmn(1,lamb,0,phi,theta,0.0);
163 return temp;
164 }
165
167 double temp=0.0;
168 int m;
169 for(m=-1;m<=1;m+=2) temp=temp+pow(abs(amps1(m,0,1)+amps1(m,0,2)+amps1(m,1,2)),2.);
170 return temp;
171 }
172// ************** end class rhopifull
173
174
175//////////////////***** DIY Model
179
180// AngularSam ppbar(0.7,dp1);
181// return ppbar.amps();
182
183// rhopi Jpsi2rhopi(dp1,dp2,dp3);
184// return Jpsi2rhopi.amps();
185
186 rhopifull Jpsi2rhopi(dp1,dp2,dp3);
187 return Jpsi2rhopi.amps();
188 }
189
double sin(const BesAngle a)
Definition: BesAngle.h:210
double cos(const BesAngle a)
Definition: BesAngle.h:213
Double_t phi1
double abs(const EvtComplex &c)
Definition: EvtComplex.hh:212
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition: EvtHelSys.cc:151
const double alpha
const double mpi
Definition: Gam4pikp.cxx:47
XmlRpcServer s
Definition: HelloServer.cpp:11
AngularSam(double alpha, EvtVector4R p1)
Definition: UserDIY.cc:41
double amps()
Definition: UserDIY.cc:53
double AmplitudeSquare()
Definition: UserDIY.cc:176
EvtVector4R GetDaugMomLab(int i)
Definition: EvtDIY.hh:48
double Angles(EvtVector4R, int)
Definition: EvtHelSys.cc:108
double get(int i) const
Definition: EvtVector4R.hh:179
double d3mag() const
Definition: EvtVector4R.cc:186
double mass2() const
Definition: EvtVector4R.hh:116
Definition: UserDIY.cc:60
double amps()
Definition: UserDIY.cc:104
double F10(double s)
Definition: UserDIY.cc:81
double amps1(double s, int i, int j)
Definition: UserDIY.cc:87
double F00(double s)
Definition: UserDIY.cc:76
rhopi(EvtVector4R pd1, EvtVector4R pd2, EvtVector4R pd3)
Definition: UserDIY.cc:62
double R00(double r)
Definition: UserDIY.cc:132
rhopifull(EvtVector4R pd1, EvtVector4R pd2, EvtVector4R pd3)
Definition: UserDIY.cc:118
EvtComplex amps1(int m, int i, int j)
Definition: UserDIY.cc:146
double amps()
Definition: UserDIY.cc:166
double Fij(int i, int j, double r)
Definition: UserDIY.cc:137