BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
eemmg-lib-new/ff/ff.h
Go to the documentation of this file.
1* $Id: ff.h,v 1.1 2022/04/02 02:42:49 pingrg Exp $
2* -------------------------------------------------------------
3* INCLUDE FILE FOR THE FF ROUTINES.
4* Geert Jan van Oldenborgh.
5* -------------------------------------------------------------
6* please do not change, and recompile _everything_ when you do.
7* -------------------------------------------------------------
8*
9* this parameter determines how far the scalar npoint functions
10* will look back to find the same parameters (when lmem is true)
11*
12 integer memory
13 parameter(memory=12)
14*
15* if .TRUE. then default (ffinit)
16* lwrite: give debug output .FALSE.
17* ltest: test consistency internally (slow) .TRUE.
18* l4also: in C0 (and higher), also consider the algorithm with 16
19* dilogs .TRUE.
20* ldc3c4: in D0 (and higher), also consider possible cancellations
21* between the C0's .TRUE.
22* lmem: before computing the C0 and higher, first check whether
23* it has already been done recently .FALSE.
24* lwarn: give warning messages (concerning numerical stability)
25* .TRUE.
26* ldot: leave the dotproducts and some determinants in common
27* .FALSE.
28* onshel: (in ffz?0 only): use onshell momenta .TRUE.
29* lsmug: internal use
30* lnasty: internal use
31*
32 logical lwrite,ltest,l4also,ldc3c4,lmem,lwarn,ldot,onshel,lsmug,
33 + lnasty
34*
35* nwidth: number of widths within which the complex mass is used
36* nschem: scheme to handle the complex mass (see ffinit.f)
37* idot: internal flags to signal that some of the dotproducts
38* are input: 0: none; 1: external pi.pj, 2: external +
39* kinematical determinant, 3: all dotproducts + kindet.
40*
41 integer nwidth,nschem,idot
42*
43* xloss: factor that the final result of a subtraction can be
44* smaller than the terms without warning (default 1/8)
45* precx: precision of real numbers, determined at runtime by
46* ffinit (IEEE: 4.e-16)
47* precc: same for complex numbers
48* xalogm: smallest real number of which a log can be taken,
49* determined at runtime by ffinit (IEEE: 2.e-308)
50* xclogm: same for complex.
51* xalog2: xalogm**2
52* xclog2: xclogm**2
53* reqprc: not used
54* x[0124]:0,1,2,4
55* x05: 1/2
56* pi: pi
57* pi6: pi**2/6
58* pi12: pi**2/12
59* xlg2: log(2)
60* bf: factors in the expansion of dilog (~Bernouilli numbers)
61* xninv: 1/n
62* xn2inv: 1/n**2
63* xinfac: 1/n!
64* fpij2: vi.vj for 2point function 1-2: si, 3-3: pi
65* fpij3: vi.vj for 3point function 1-3: si, 4-6: pi
66* fpij4: vi.vj for 4point function 1-4: si, 5-10: pi
67* fpij5: vi.vj for 5point function 1-5: si, 6-15: pi
68* fpij6: vi.vj for 6point function 1-6: si, 7-21: pi
69* fdel2: del2 = delta_(p1,p2)^(p1,p2) = p1^2.p2^2 - p1.p2^2 in C0
70* fdel3: del3 = delta_(p1,p2,p3)^(p1,p2,p3) in D0
71* fdel4s: del4s = delta_(s1,s2,s3,s4)^(s1,s2,s3,s4) in D0
72* fdel4: del4 = delta_(p1,p2,p3,p4)^(p1,p2,p3,p4) in E0
73* fdl3i: del3i = delta_(pj,pk,pl)^(pj,pk,pl) in E0, D0 without si
74* fdl4si: dl4si = del4s in E0, D0 without si
75* fdl3ij: same in F0 without si and sj.
76* fd4sij: dl4si = del4s in E0, D0 without si
77* fdl4i: delta4 in F0 without si.
78* fodel2: same offshell (in case of complex or z-functions)
79* fodel3: -"-
80* cfdl4s: -"-
81* fodel4: -"-
82* fodl3i: -"-
83* fod3ij: -"-
84* fodl4i: -"-
85* fidel3: ier of del3 (is not included in D0)
86* fidel4: ier of del4 (is not included in E0)
87* fidl3i: ier of dl3i (is not included in E0)
88* fid3ij: ier of dl3ij (is not included in F0)
89* fidl4i: ier of dl4i (is not included in F0)
90*
91 DOUBLE PRECISION xloss,precx,precc,xalogm,xclogm,xalog2,xclog2,
92 + reqprc,x0,x05,x1,x2,x4,pi,pi6,pi12,xlg2,bf(20),
93 + xninv(30),xn2inv(30),xinfac(30),
94 + fpij2(3,3),fpij3(6,6),fpij4(10,10),fpij5(15,15),
95 + fpij6(21,21),fdel2,fdel3,fdel4s,fdel4,fdl3i(5),
96 + fdl4si(5),fdl3ij(6,6),fd4sij(6,6),fdl4i(6),fodel2,
97 + fodel3,fodel4,fodl3i(5),fod3ij(6,6),fodl4i(6)
98 integer fidel3,fidel4,fidl3i(5),fid3ij(6,6),fidl4i(6)
99*
100* c[0124]:0,1,2,4 complex
101* c05: 1/2 complex
102* c2ipi: 2*i*pi
103* cipi2: i*pi**2
104* cfp..: complex version of fp..., only defined in ff[cz]*
105* cmipj: (internal only) mi^2 - pj^2 in C0
106* c2sisj: (internal only) 2*si.sj in D0
107* cfdl4s: del4s in complex case (D0)
108* ca1: (internal only) complex A1
109* csdl2p: (internal only) complex transformed sqrt(del2)
110*
111 DOUBLE COMPLEX c0,c05,c1,c2,c4,c2ipi,cipi2,
112 + cfpij2(3,3),cfpij3(6,6),cfpij4(10,10),cfpij5(15,15),
113 + cfpij6(21,21),cmipj(3,3),c2sisj(4,4),cfdl4s,ca1
114*
115* nevent: number in integration loop (to be updated by user)
116* ner: can be used to signal numerical problems (see ffrcvr)
117* id: identifier of scalar function (to be set by user)
118* idsub: internal identifier to pinpoint errors
119* inx: in D0: p(inx(i,j)) = isgn(i,j)*(s(i)-s(j))
120* inx5: in E0: p(inx5(i,j)) = isgn5(i,j)*(s(i)-s(j))
121* inx6: in F0: p(inx6(i,j)) = isgn6(i,j)*(s(i)-s(j))
122* isgn: see inx
123* isgn5: see inx5
124* isgn6: see inx6
125* iold: rotation matrix for 4point function
126* isgrot: signs to iold
127* isgn34: +1 or -1: which root to choose in the transformation (D0)
128* isgnal: +1 or -1: which root to choose in the alpha-trick (C0)
129* irota3: save the number of positions the C0 configuration has been
130* rotated over
131* irota4: same for the D0
132* irota5: same for the E0
133* irota6: same for the F0
134*
135 integer nevent,ner,id,idsub,inx(4,4),isgn(4,4),inx5(5,5),
136 + isgn5(5,5),inx6(6,6),isgn6(6,6),isgn34,isgnal,iold(13,
137 + 12),isgrot(10,12),irota3,irota4,irota5,irota6
138 integer idum93(2)
139*
140* parameters
141*
142 parameter(x0 = 0.d0,x1 = 1.d0,x05 = .5d0,x2 = 2.d0,x4 = 4.d0,
143 + c0 = (0.D0,0.D0),c05 = (.5D0,0.D0),c1 = (1.D0,0.D0),
144 + c2 = (2.D0,0.D0),c4 = (4.D0,0.D0))
145 parameter(
146 + c2ipi = (0.D+0,6.28318530717958647692528676655896D+0),
147 + cipi2 = (0.D+0,9.869604401089358618834490999876D+0),
148 + pi = 3.14159265358979323846264338327948D+0,
149 + pi6 = 1.644934066848226436472415166646D+0,
150 + pi12 = .822467033424113218236207583323D+0,
151 + xlg2 = .6931471805599453094172321214581D+0)
152*
153* common
154*
155 common /ffsign/isgn34,isgnal
156 common /ffprec/ xloss,precx,precc,xalogm,xclogm,xalog2,xclog2,
157 + reqprc
158 common /ffflag/ lwrite,ltest,l4also,ldc3c4,lmem,lwarn,ldot,
159 + nevent,ner,id,idsub,nwidth,nschem,onshel,idot
160 common /ffcnst/ bf,xninv,xn2inv,xinfac,inx,isgn,iold,isgrot,
161 + inx5,isgn5,inx6,isgn6
162 common /ffrota/ irota3,irota4,irota5,irota6
163 common /ffdot/ fpij2,fpij3,fpij4,fpij5,fpij6
164 common /ffdel/ fdel2,fdel3,fdel4s,fdel4,fdl3i,fdl4si,fdl3ij,
165 + fd4sij,fdl4i
166 common /ffidel/ fidel3,fidel4,fidl3i,fid3ij,fidl4i
167 common /ffcdot/ cfpij2,cfpij3,cfpij4,cfpij5,cfpij6
168 common /ffcdel/ fodel2,fodel3,cfdl4s,fodel4,fodl3i,fod3ij,fodl4i
169 common /ffsmug/ lsmug,lnasty,idum93,cmipj,c2sisj,ca1
std::string test
Definition: CalibModel.cxx:43
*******INTEGER m_nBinMax INTEGER m_NdiMax !No of bins in histogram for cell exploration division $ !Last vertex $ !Last active cell $ !Last cell in buffer $ !No of sampling when dividing cell $ !No of function total $ !Flag for random ceel for $ !Flag for type of for WtMax $ !Flag which decides whether vertices are included in the sampling $ entire domain is hyp !Maximum effective eevents per saves r n generator level $ !Flag for chat level in output
Definition: FoamA.h:89
************Class m_ypar INTEGER m_KeyWgt INTEGER m_KeyIHVP INTEGER m_KeyGPS INTEGER m_IsBeamPolarized INTEGER m_EvtGenInterface DOUBLE PRECISION m_Emin DOUBLE PRECISION m_sphot DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_q2 DOUBLE PRECISION m_PolBeam2 DOUBLE PRECISION m_xErrPb *COMMON c_KK2f $ !CMS energy average $ !Spin Polarization vector first beam $ !Spin Polarization vector second beam $ !Beam energy spread[GeV] $ !minimum hadronization energy[GeV] $ !input parameters
Definition: KK2f.h:46
**********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
double precision pisqo6 parameter(pi=3.14159265358979d0, pisq=pi *pi, pisqo6=pisq/6d0) double precision zip