18template <
typename TK,
typename TV>
60 ee00,
ee11,
ee12,
ee13,
ee14,
ee22,
ee23,
ee24,
ee33,
ee34,
ee44,
62 ee111,
ee112,
ee113,
ee114,
ee122,
ee123,
ee124,
ee133,
ee134,
ee144,
63 ee222,
ee223,
ee224,
ee233,
ee234,
ee244,
ee333,
ee334,
ee344,
ee444,
64 ee0000,
ee0011,
ee0012,
ee0013,
ee0014,
ee0022,
ee0023,
ee0024,
ee0033,
ee0034,
ee0044,
65 ee1111,
ee1112,
ee1113,
ee1114,
ee1122,
ee1123,
ee1124,
ee1133,
ee1134,
ee1144,
66 ee1222,
ee1223,
ee1224,
ee1233,
ee1234,
ee1244,
ee1333,
ee1334,
ee1344,
ee1444,
67 ee2222,
ee2223,
ee2224,
ee2233,
ee2234,
ee2244,
ee2333,
ee2334,
ee2344,
ee2444,
72 ee11111,
ee11112,
ee11113,
ee11114,
ee11122,
ee11123,
ee11124,
ee11133,
ee11134,
ee11144,
73 ee11222,
ee11223,
ee11224,
ee11233,
ee11234,
ee11244,
ee11333,
ee11334,
ee11344,
ee11444,
74 ee12222,
ee12223,
ee12224,
ee12233,
ee12234,
ee12244,
ee12333,
ee12334,
ee12344,
ee12444,
76 ee22222,
ee22223,
ee22224,
ee22233,
ee22234,
ee22244,
ee22333,
ee22334,
ee22344,
ee22444,
77 ee23333,
ee23334,
ee23344,
ee23444,
ee24444,
ee33333,
ee33334,
ee33344,
ee33444,
ee34444,
84 dd111,
dd112,
dd113,
dd122,
dd123,
dd133,
dd222,
dd223,
dd233,
dd333,
144 static double setMu2(
const double newmu2);
148 typedef union { int64_t i64;
double d64; } ID64;
149 typedef union {
double d64; int64_t i64; } DI64;
150 static const ID64 sNAN;
151 friend bool operator==(
const double &x,
const ICache::ID64 &
y);
160 static Array5 ic5[3];
161 static Save5* getS5(
int ep,
const Kinem5 &kin,
int coefn);
166 static Array4 ic4[3];
167 static Save4* getS4(
int ep,
const Kinem4 &kin,
int coefn);
172 static Array3 ic3[3];
173 static Save3* getS3(
int ep,
const Kinem3 &kin,
int coefn);
178 static Array2 ic2[3];
179 static Save2* getS2(
int ep,
const Kinem2 &kin,
int coefn);
204 const ICache::DI64
ix={
x};
205 return ix.i64 ==
y.i64;
226#ifdef USE_SMART_INSERT
227# define INSERTMINOR3 smartinsertMinor3
228# define INSERTMINOR2 smartinsertMinor2
232# define INSERTMINOR3 insertMinor3
233# define INSERTMINOR2 insertMinor2
265#define insertMinorN(n) \
267void MCache::insertMinor##n(const Kinem##n &k, Minor##n::Ptr &m) \
269 cm##n.insert(Entry##n(k,m)); \
**********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
bool operator==(const double &x, const ICache::ID64 &y)
static double setMu2(const double newmu2)
static ncomplex getI2(int ep, const Kinem2 &k)
static ncomplex getI4(int ep, const Kinem4 &k)
static ncomplex getD(int ep, const Kinem4 &kin)
static ncomplex getI3(int ep, const Kinem3 &k)
static ncomplex getA(int ep, const Kinem1 &kin)
static ncomplex getB(int ep, const Kinem2 &kin)
friend bool operator==(const double &x, const ICache::ID64 &y)
static ncomplex getC(int ep, const Kinem3 &kin)
static ncomplex getE(int ep, const Kinem5 &kin)
static ncomplex getI1(int ep, const Kinem1 &k)
static void insertMinor5(const Kinem5 &k, Minor5::Ptr &m)
static void insertMinor4(const Kinem4 &k, Minor4::Ptr &m)
static Minor5::Ptr getMinor5(const Kinem5 &k)
static Minor2::Ptr getMinor2(const Kinem2 &k)
static Minor3::Ptr getMinor3(const Kinem3 &k)
static void smartinsertMinor2(const Kinem2 &k, Minor2::Ptr &m)
static void insertMinor2(const Kinem2 &k, Minor2::Ptr &m)
static void insertMinor3(const Kinem3 &k, Minor3::Ptr &m)
static Minor4::Ptr getMinor4(const Kinem4 &k)
static void smartinsertMinor3(const Kinem3 &k, Minor3::Ptr &m)
MEntry(const MEntry &entry)
MEntry(const TK &k, TV &v)
MEntry & operator=(const MEntry &entry)
std::complex< double > ncomplex