BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MinorBase Class Reference

#include <minor.h>

Inheritance diagram for MinorBase:

Public Member Functions

 MinorBase ()
Public Member Functions inherited from SRefCnt
 SRefCnt ()

Static Public Member Functions

static int ns (int i, int j) CONST
static int nss (int i, int j) CONST
static int is (int i, int j) CONST
static int is (int i, int j, int k) CONST
static int is (int i, int j, int k, int l) CONST
static int iss (int i, int j) CONST
static int iss (int i, int j, int k) CONST
static int iss (int i, int j, int k, int l) CONST
static int iss (int i, int j, int k, int l, int m) CONST
static double getmeps ()
static int im3 (int i, int j, int k) CONST
static int im2 (int i, int j) CONST
static int signM3ud (int i, int j, int k, int l, int m, int n) CONST
static int signM2ud (int i, int j, int l, int m) CONST
static void freeidxM3 (int set[], int free[])
static void Rescale (double factor)

Static Protected Attributes

static const unsigned char idxtbl [64]
static const double teps = 1e-14
static const double heps = 1e-15
static const double ceps = 5e-2
static const double deps1 = 5e-2
static const double deps2 = 5e-2
static const double deps3 = 5e-2
static const double seps1 = 1e-8
static const double seps2 = 1e-5
static const double epsir1 = 5e-6
static const double epsir2 = 5e-6
static double deps = 1e-14
static double meps = 1e-10
static double m3eps = 1

Additional Inherited Members

Protected Attributes inherited from SRefCnt
int count

Detailed Description

Definition at line 51 of file minor.h.

Constructor & Destructor Documentation

◆ MinorBase()

MinorBase::MinorBase ( )
inline

Definition at line 53 of file minor.h.

53{}

Member Function Documentation

◆ freeidxM3()

void MinorBase::freeidxM3 ( int set[],
int free[] )
static

Definition at line 108 of file minor.cpp.

108 {
109 free[0] = 0;
110 free[1] = 1;
111 free[2] = 2;
112
113 int ic = 0;
114 int nc = 0;
115 while ( ic < 3 && nc < 3 )
116 {
117 if ( free[nc] == set[ic] )
118 {
119 for ( int cc = nc; cc < 3; cc++ ) { free[cc]++; }
120 ic++;
121 }
122 else { nc++; }
123 }
124}

◆ getmeps()

double MinorBase::getmeps ( )
inlinestatic

Definition at line 131 of file minor.h.

131{ return meps; }
static double meps
Definition minor.h:170

◆ im2()

int MinorBase::im2 ( int i,
int j )
inlinestatic

◆ im3()

int MinorBase::im3 ( int i,
int j,
int k )
inlinestatic

Definition at line 599 of file minor.h.

599 {
600 return idxtbl[( 1 << i ) | ( 1 << j ) | ( 1 << k )];
601}

Referenced by Minor5::I2D2stu(), Minor5::I2D3stu(), Minor5::I2D4stu(), Minor5::I2D5stu(), Minor5::I2D6stu(), Minor5::I2Dstu(), Minor5::I2stu(), and Minor5::M3().

◆ is() [1/3]

◆ is() [2/3]

int MinorBase::is ( int i,
int j,
int k )
inlinestatic

Definition at line 87 of file minor.h.

87 {
88 if ( i <= j ) { return ( j <= k ? i + ti2[j] + ti3[k] : is( i, k ) + ti3[j] ); }
89 else { return ( i > k ? is( j, k ) + ti3[i] : j + ti2[i] + ti3[k] ); }
90 }
static int is(int i, int j) CONST
Definition minor.h:83

◆ is() [3/3]

int MinorBase::is ( int i,
int j,
int k,
int l )
inlinestatic

Definition at line 92 of file minor.h.

92 {
93 if ( i <= j )
94 {
95 if ( j <= k )
96 { return ( k <= l ? i + ti2[j] + ti3[k] + ti4[l] : is( i, j, l ) + ti4[k] ); }
97 else { return ( j > l ? is( i, k, l ) + ti4[j] : is( i, k ) + ti3[j] + ti4[l] ); }
98 }
99 else
100 {
101 if ( i > k )
102 { return ( i > l ? is( j, k, l ) + ti4[i] : is( j, k ) + ti3[i] + ti4[l] ); }
103 else { return ( k <= l ? j + ti2[i] + ti3[k] + ti4[l] : is( i, j, l ) + ti4[k] ); }
104 }
105 }

◆ iss() [1/4]

int MinorBase::iss ( int i,
int j )
inlinestatic

Definition at line 107 of file minor.h.

108 {
109 assert( i <= j );
110 return i + j * ( j + 1 ) / 2;
111 }

Referenced by ICache::getE().

◆ iss() [2/4]

int MinorBase::iss ( int i,
int j,
int k )
inlinestatic

Definition at line 113 of file minor.h.

114 {
115 assert( i <= j && j <= k );
116 return i + ti2[j] + ti3[k];
117 }

◆ iss() [3/4]

int MinorBase::iss ( int i,
int j,
int k,
int l )
inlinestatic

Definition at line 119 of file minor.h.

120 {
121 assert( i <= j && j <= k && k <= l );
122 return i + ti2[j] + ti3[k] + ti4[l];
123 }

◆ iss() [4/4]

int MinorBase::iss ( int i,
int j,
int k,
int l,
int m )
inlinestatic

Definition at line 125 of file minor.h.

126 {
127 assert( i <= j && j <= k && k <= l && l <= m );
128 return i + ti2[j] + ti3[k] + ti4[l] + ti5[m];
129 }

◆ ns()

int MinorBase::ns ( int i,
int j )
inlinestatic

Definition at line 73 of file minor.h.

73 {
74 return ( i <= j ? ( i - 1 ) + ( ( j - 1 ) * j ) / 2 : ( j - 1 ) + ( ( i - 1 ) * i ) / 2 );
75 }

◆ nss()

int MinorBase::nss ( int i,
int j )
inlinestatic

Definition at line 77 of file minor.h.

78 {
79 return ( i - 1 ) + ( ( j - 1 ) * j ) / 2;
80 }

◆ Rescale()

void MinorBase::Rescale ( double factor)
static

Definition at line 35 of file minor.cpp.

35 {
36 meps *= factor;
37 m3eps *= factor * factor;
38}
static double m3eps
Definition minor.h:171

Referenced by ICache::setMu2().

◆ signM2ud()

int MinorBase::signM2ud ( int i,
int j,
int l,
int m )
inlinestatic

Definition at line 613 of file minor.h.

613 {
614 int t = ( j - i ) * ( m - l );
615 return t == 0 ? 0 : 2 * ( t >> ( sizeof( int ) * 8 - 1 ) ) + 1;
616}
int t()
Definition t.c:1

Referenced by Minor5::M2().

◆ signM3ud()

int MinorBase::signM3ud ( int i,
int j,
int k,
int l,
int m,
int n )
inlinestatic

Definition at line 607 of file minor.h.

607 {
608 int t = ( j - i ) * ( k - j ) * ( k - i ) * ( m - l ) * ( n - m ) * ( n - l );
609 return t == 0 ? 0 : 2 * ( t >> ( sizeof( int ) * 8 - 1 ) ) + 1;
610}
const Int_t n

Referenced by Minor5::M3().

Member Data Documentation

◆ ceps

const double MinorBase::ceps = 5e-2
staticprotected

Definition at line 157 of file minor.h.

◆ deps

double MinorBase::deps = 1e-14
staticprotected

Definition at line 169 of file minor.h.

◆ deps1

const double MinorBase::deps1 = 5e-2
staticprotected

Definition at line 159 of file minor.h.

◆ deps2

const double MinorBase::deps2 = 5e-2
staticprotected

Definition at line 160 of file minor.h.

◆ deps3

const double MinorBase::deps3 = 5e-2
staticprotected

Definition at line 161 of file minor.h.

◆ epsir1

const double MinorBase::epsir1 = 5e-6
staticprotected

Definition at line 166 of file minor.h.

◆ epsir2

const double MinorBase::epsir2 = 5e-6
staticprotected

Definition at line 167 of file minor.h.

◆ heps

const double MinorBase::heps = 1e-15
staticprotected

Definition at line 155 of file minor.h.

◆ idxtbl

const unsigned char MinorBase::idxtbl
staticprotected

Definition at line 40 of file minor.h.

51 : public SRefCnt {
52public:
53 MinorBase() {}
54
55#ifdef USE_GOLEM_MODE
56# define EVALUNDEF return std::numeric_limits<double>::signaling_NaN();
57 virtual ncomplex A( int ep ) { EVALUNDEF }
58 virtual ncomplex A( int ep, int i ) { EVALUNDEF }
59 virtual ncomplex A( int ep, int i, int j ) { EVALUNDEF }
60 virtual ncomplex A( int ep, int i, int j, int k ) { EVALUNDEF }
61 virtual ncomplex A( int ep, int i, int j, int k, int l ) { EVALUNDEF }
62 virtual ncomplex A( int ep, int i, int j, int k, int l, int m ) { EVALUNDEF }
63 virtual ncomplex B( int ep ) { EVALUNDEF }
64 virtual ncomplex B( int ep, int i ) { EVALUNDEF; }
65 virtual ncomplex B( int ep, int i, int j ) { EVALUNDEF }
66 virtual ncomplex B( int ep, int i, int j, int k ) { EVALUNDEF }
67 virtual ncomplex C( int ep ) { EVALUNDEF }
68 virtual ncomplex C( int ep, int i ) { EVALUNDEF }
69# undef EVALUNDEF
70#endif /* USE_GOLEM_MODE */
71
72 // Symmetric index - start from 1
73 inline static int ns( int i, int j ) CONST {
74 return ( i <= j ? ( i - 1 ) + ( ( j - 1 ) * j ) / 2 : ( j - 1 ) + ( ( i - 1 ) * i ) / 2 );
75 }
76
77 inline static int nss( int i, int j ) CONST // ordered
78 {
79 return ( i - 1 ) + ( ( j - 1 ) * j ) / 2;
80 }
81
82 // Symmetric index - generic
83 inline static int is( int i, int j ) CONST {
84 return ( i <= j ? i + j * ( j + 1 ) / 2 : j + i * ( i + 1 ) / 2 );
85 }
86
87 inline static int is( int i, int j, int k ) CONST {
88 if ( i <= j ) { return ( j <= k ? i + ti2[j] + ti3[k] : is( i, k ) + ti3[j] ); }
89 else { return ( i > k ? is( j, k ) + ti3[i] : j + ti2[i] + ti3[k] ); }
90 }
91
92 inline static int is( int i, int j, int k, int l ) CONST {
93 if ( i <= j )
94 {
95 if ( j <= k )
96 { return ( k <= l ? i + ti2[j] + ti3[k] + ti4[l] : is( i, j, l ) + ti4[k] ); }
97 else { return ( j > l ? is( i, k, l ) + ti4[j] : is( i, k ) + ti3[j] + ti4[l] ); }
98 }
99 else
100 {
101 if ( i > k )
102 { return ( i > l ? is( j, k, l ) + ti4[i] : is( j, k ) + ti3[i] + ti4[l] ); }
103 else { return ( k <= l ? j + ti2[i] + ti3[k] + ti4[l] : is( i, j, l ) + ti4[k] ); }
104 }
105 }
std::complex< double > ncomplex
***************************************************************************************Pseudo Class RRes *****************************************************************************************Parameters and physical constants **Maarten sept ************************************************************************DOUBLE PRECISION xsmu **************************************************************************PARTICLE DATA all others are from PDG *Only resonances with known widths into electron pairs are sept ************************************************************************C Declarations C
Definition RRes.h:29
MinorBase()
Definition minor.h:53
static int nss(int i, int j) CONST
Definition minor.h:77
SRefCnt()
Definition pointer.h:16
double int * ep
Definition qcdloop1.h:82
#define ns(x)
Definition xmltok.c:1355

Referenced by im2(), and im3().

◆ m3eps

double MinorBase::m3eps = 1
staticprotected

Definition at line 171 of file minor.h.

Referenced by Rescale().

◆ meps

double MinorBase::meps = 1e-10
staticprotected

Definition at line 170 of file minor.h.

Referenced by getmeps(), and Rescale().

◆ seps1

const double MinorBase::seps1 = 1e-8
staticprotected

Definition at line 163 of file minor.h.

◆ seps2

const double MinorBase::seps2 = 1e-5
staticprotected

Definition at line 164 of file minor.h.

◆ teps

const double MinorBase::teps = 1e-14
staticprotected

Definition at line 154 of file minor.h.


The documentation for this class was generated from the following files: