00001 *
00002 *
00003 *
00004 *
00005 *
00006 *
00007 *
00008 * Version 2-nd August 1997, by S. Jadach.
00009 * Matrix element for fermion pair production,
00010 * ISR O(alf3) + FSR O(alf2).
00011 * New features:
00012 * 1. Kinematical reduction procedure kicked out.
00013 * 2. Numerical stability for collinear photons improved up to BHLUMI level.
00014 * 3. O(alf3)LL for ISR
00015 *****
00016 * To be done:
00017 * All that should be organized as separate Class
00018 * 1. wtset should be accessible through getter
00019 * 2. ISR+FSR and ISR parts beter separated, if possible.
00020 *
00021 * The auxiliary weights for variable-weight runs are:
00022 * wt=wtcru1*wtcru2*wtset(i) where
00023 * wtset(i) = ypar(500+i) are auxiliary weights
00024 *
00025 * wtset(71) = zero-th order initial+final
00026 * wtset(72) = first order initial+final
00027 * wtset(73) = second order initial+final
00028 * wtset(74) = third order initial+final
00029 * and the following provide the corresponding components of x-section.
00030 * wtset(80-84) = first order beta's
00031 * wtset(90-97) = second order beta's
00032 * wtset(100-111) = third order beta's
00033 * furthermore, for the initial state alone we provide:
00034 * wtset( 1) = zero-th order initial
00035 * wtset( 2) = first order initial
00036 * wtset( 3) = second order initial
00037 * wtset( 4) = third order initial
00038 * and the corresponding components
00039 * wtset(10-11) = first order beta's
00040 * wtset(20-22) = second order beta's
00041 * wtset(30-33) = third order beta's
00042 *
00043 DOUBLE PRECISION pi
00044 PARAMETER( pi=3.1415926535897932d0 )
00045 * Below limits m_vlim1/2 the contribution from beta1/2 is not calculated,
00046 DOUBLE PRECISION m_vlim1,m_vlim2
00047 PARAMETER(m_vlim1= 1.d-9, m_vlim2= 1.d-9)
00048 INTEGER npmx ! maximum number of photons
00049 PARAMETER( npmx=100)
00050 INTEGER m_lenwt ! max. no. of aux weights
00051 PARAMETER (m_lenwt=200)
00052 *
00053 * amplitude components
00054 DOUBLE PRECISION
00055 $ m_xSfac,m_ySfac ! Soft factors
00056 * ISR+FSR
00057 DOUBLE PRECISION m_Beta00 ! O(alf0)
00058 DOUBLE PRECISION m_Beta01 ! O(alf1)
00059 DOUBLE PRECISION m_xBet10, m_yBet10 ! O(alf1)
00060 DOUBLE PRECISION m_Beta02, m_xBet11, m_yBet11 ! O(alf2)
00061 DOUBLE PRECISION m_xxBet20, m_xyBet20, m_yyBet20 ! O(alf2)
00062 DOUBLE PRECISION m_Beta03, m_xBet12, m_yBet12 ! O(alf3)
00063 DOUBLE PRECISION m_xxBet21, m_xyBet21, m_yyBet21 ! O(alf3)
00064 DOUBLE PRECISION m_xxxBet30,m_xxyBet30,m_xyyBet30 ! O(alf3)
00065 * pure ISR
00066 DOUBLE PRECISION m_beti00 ! O(alf0)
00067 DOUBLE PRECISION m_beti01,m_sbti10 ! O(alf1)
00068 DOUBLE PRECISION m_beti02,m_sbti11,m_sbti20 ! O(alf2)
00069 DOUBLE PRECISION m_beti03,m_sbti12,m_sbti21,m_sbti30 ! O(alf2)
00070 * UNEXP
00071 DOUBLE PRECISION m_dis0,m_dis1,m_dis2
00072 DOUBLE PRECISION m_dig1
00073 *
00074 DOUBLE PRECISION m_WtSet,m_WtBest,m_alfinv,m_vvmin
00075 INTEGER m_IdeWgt,m_KeyISR
00076 *
00077 COMMON /c_QED3/
00078 $ m_WtSet(m_lenwt),
00079 $ m_WtBest,
00080 $ m_xSfac(npmx), ! ISR soft factors
00081 $ m_ySfac(npmx), ! FSR soft factors
00082 $ m_Beta00, ! beta0 O(alf0) ISR+FSR
00083 $ m_Beta01, m_xBet10, m_yBet10, ! beta1 O(alf1) ISR+FSR
00084 $ m_Beta02, ! beta0 O(alf2) ISR+FSR
00085 $ m_xBet11, m_yBet11, ! beta1 O(alf2) ISR+FSR
00086 $ m_xxBet20, m_xyBet20, m_yyBet20, ! beta2 O(alf2) ISR+FSR
00087 $ m_Beta03, ! beta0 O(alf3) ISR+FSR
00088 $ m_xBet12, m_yBet12, ! beta1 O(alf3) ISR+FSR
00089 $ m_xxBet21, m_xyBet21, m_yyBet21, ! beta2 O(alf3) ISR+FSR
00090 $ m_xxxBet30,m_xxyBet30,m_xyyBet30, ! beta3 O(alf3) ISR+FSR
00091 $ m_beti00, ! O(alf0) pure ISR
00092 $ m_beti01,m_sbti10, ! O(alf1) pure ISR
00093 $ m_beti02,m_sbti11,m_sbti20, ! O(alf2) pure ISR
00094 $ m_beti03,m_sbti12,m_sbti21,m_sbti30, ! O(alf2) pure ISR
00095 $ m_dis0,m_dis1,m_dis2, ! UNEXP O(alf2) ISR
00096 $ m_dig1, ! UNEXP auxiliary
00097 $ m_alfinv,
00098 $ m_vvmin,
00099 $ m_IdeWgt,
00100 $ m_KeyISR
00101 *
00102 SAVE /c_QED3/
00103 *
00104 *
00105 *
00106 *
00107 *
00108 *