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

#include <minor.h>

+ Inheritance diagram for MinorBase:

Public Member Functions

 MinorBase ()
 
 MinorBase ()
 
- Public Member Functions inherited from SRefCnt
 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 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 eemmg-lib-new/src/minor.h.

Constructor & Destructor Documentation

◆ MinorBase() [1/2]

MinorBase::MinorBase ( )
inline

Definition at line 54 of file eemmg-lib-new/src/minor.h.

54{}

◆ MinorBase() [2/2]

MinorBase::MinorBase ( )
inline

Definition at line 54 of file eemmg-lib/src/minor.h.

54{}

Member Function Documentation

◆ freeidxM3() [1/2]

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

Definition at line 109 of file eemmg-lib-new/src/minor.cpp.

110{
111 free[0]=0;
112 free[1]=1;
113 free[2]=2;
114
115 int ic=0;
116 int nc=0;
117 while (ic < 3 && nc < 3) {
118 if (free[nc]==set[ic]) {
119 for (int cc=nc; cc<3; cc++) {
120 free[cc]++;
121 }
122 ic++;
123 } else {
124 nc++;
125 }
126 }
127}
const int nc
Definition histgen.cxx:26

◆ freeidxM3() [2/2]

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

◆ getmeps() [1/2]

static double MinorBase::getmeps ( )
inlinestatic

Definition at line 148 of file eemmg-lib-new/src/minor.h.

149 {
150 return meps;
151 }

◆ getmeps() [2/2]

static double MinorBase::getmeps ( )
inlinestatic

Definition at line 148 of file eemmg-lib/src/minor.h.

149 {
150 return meps;
151 }

◆ im2() [1/2]

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

◆ im2() [2/2]

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

◆ im3() [1/2]

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

Definition at line 613 of file eemmg-lib-new/src/minor.h.

614{
615 return idxtbl[(1<<i)|(1<<j)|(1<<k)];
616}

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

◆ im3() [2/2]

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

◆ is() [1/6]

◆ is() [2/6]

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

Definition at line 85 of file eemmg-lib/src/minor.h.

86 {
87 return ( i<=j ? i+j*(j+1)/2 : j+i*(i+1)/2 );
88 }

◆ is() [3/6]

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

Definition at line 90 of file eemmg-lib-new/src/minor.h.

91 {
92 if (i <= j) {
93 return (j <= k ? i+ti2[j]+ti3[k] : is(i,k)+ti3[j]);
94 }
95 else {
96 return (i > k ? is(j,k)+ti3[i] : j+ti2[i]+ti3[k]);
97 }
98 }
static int is(int i, int j) CONST

◆ is() [4/6]

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

Definition at line 90 of file eemmg-lib/src/minor.h.

91 {
92 if (i <= j) {
93 return (j <= k ? i+ti2[j]+ti3[k] : is(i,k)+ti3[j]);
94 }
95 else {
96 return (i > k ? is(j,k)+ti3[i] : j+ti2[i]+ti3[k]);
97 }
98 }

◆ is() [5/6]

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

Definition at line 100 of file eemmg-lib-new/src/minor.h.

101 {
102 if (i <= j) {
103 if (j <= k) {
104 return (k <= l ? i+ti2[j]+ti3[k]+ti4[l]
105 : is(i,j,l)+ti4[k] );
106 }
107 else {
108 return (j > l ? is(i,k,l)+ti4[j]
109 : is(i,k)+ti3[j]+ti4[l] );
110 }
111 }
112 else {
113 if (i > k) {
114 return (i > l ? is(j,k,l)+ti4[i]
115 : is(j,k)+ti3[i]+ti4[l] );
116 }
117 else {
118 return (k <= l ? j+ti2[i]+ti3[k]+ti4[l]
119 : is(i,j,l)+ti4[k] );
120 }
121 }
122 }

◆ is() [6/6]

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

Definition at line 100 of file eemmg-lib/src/minor.h.

101 {
102 if (i <= j) {
103 if (j <= k) {
104 return (k <= l ? i+ti2[j]+ti3[k]+ti4[l]
105 : is(i,j,l)+ti4[k] );
106 }
107 else {
108 return (j > l ? is(i,k,l)+ti4[j]
109 : is(i,k)+ti3[j]+ti4[l] );
110 }
111 }
112 else {
113 if (i > k) {
114 return (i > l ? is(j,k,l)+ti4[i]
115 : is(j,k)+ti3[i]+ti4[l] );
116 }
117 else {
118 return (k <= l ? j+ti2[i]+ti3[k]+ti4[l]
119 : is(i,j,l)+ti4[k] );
120 }
121 }
122 }

◆ iss() [1/8]

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

Definition at line 124 of file eemmg-lib-new/src/minor.h.

125 {
126 assert(i<=j);
127 return i+j*(j+1)/2;
128 }

Referenced by ICache::getE().

◆ iss() [2/8]

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

Definition at line 124 of file eemmg-lib/src/minor.h.

125 {
126 assert(i<=j);
127 return i+j*(j+1)/2;
128 }

◆ iss() [3/8]

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

Definition at line 130 of file eemmg-lib-new/src/minor.h.

131 {
132 assert(i <= j && j <= k);
133 return i+ti2[j]+ti3[k];
134 }

◆ iss() [4/8]

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

Definition at line 130 of file eemmg-lib/src/minor.h.

131 {
132 assert(i <= j && j <= k);
133 return i+ti2[j]+ti3[k];
134 }

◆ iss() [5/8]

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

Definition at line 136 of file eemmg-lib-new/src/minor.h.

137 {
138 assert(i <= j && j <= k && k <= l);
139 return i+ti2[j]+ti3[k]+ti4[l];
140 }

◆ iss() [6/8]

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

Definition at line 136 of file eemmg-lib/src/minor.h.

137 {
138 assert(i <= j && j <= k && k <= l);
139 return i+ti2[j]+ti3[k]+ti4[l];
140 }

◆ iss() [7/8]

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

Definition at line 142 of file eemmg-lib-new/src/minor.h.

143 {
144 assert(i <= j && j <= k && k <= l && l <= m);
145 return i+ti2[j]+ti3[k]+ti4[l]+ti5[m];
146 }

◆ iss() [8/8]

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

Definition at line 142 of file eemmg-lib/src/minor.h.

143 {
144 assert(i <= j && j <= k && k <= l && l <= m);
145 return i+ti2[j]+ti3[k]+ti4[l]+ti5[m];
146 }

◆ ns() [1/2]

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

Definition at line 74 of file eemmg-lib-new/src/minor.h.

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

◆ ns() [2/2]

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

Definition at line 74 of file eemmg-lib/src/minor.h.

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

◆ nss() [1/2]

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

Definition at line 79 of file eemmg-lib-new/src/minor.h.

80 {
81 return (i-1)+((j-1)*j)/2;
82 }

◆ nss() [2/2]

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

Definition at line 79 of file eemmg-lib/src/minor.h.

80 {
81 return (i-1)+((j-1)*j)/2;
82 }

◆ Rescale() [1/2]

void MinorBase::Rescale ( double factor)
static

Definition at line 35 of file eemmg-lib-new/src/minor.cpp.

36{
37 meps*=factor;
38 m3eps*=factor*factor;
39}
static double m3eps

Referenced by ICache::setMu2().

◆ Rescale() [2/2]

static void MinorBase::Rescale ( double factor)
static

◆ signM2ud() [1/2]

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

Definition at line 635 of file eemmg-lib-new/src/minor.h.

636{
637 int t=(j-i)*(m-l);
638 return t==0 ? 0 : 2*(t>>(sizeof(int)*8-1))+1;
639}
TTree * t
Definition binning.cxx:23

Referenced by Minor5::M2().

◆ signM2ud() [2/2]

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

◆ signM3ud() [1/2]

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

Definition at line 627 of file eemmg-lib-new/src/minor.h.

628{
629 int t=(j-i)*(k-j)*(k-i)*(m-l)*(n-m)*(n-l);
630 return t==0 ? 0 : 2*(t>>(sizeof(int)*8-1))+1;
631}
const Int_t n

Referenced by Minor5::M3().

◆ signM3ud() [2/2]

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

Member Data Documentation

◆ ceps

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

Definition at line 176 of file eemmg-lib-new/src/minor.h.

◆ deps

static double MinorBase::deps =1e-14
staticprotected

Definition at line 188 of file eemmg-lib-new/src/minor.h.

◆ deps1

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

Definition at line 178 of file eemmg-lib-new/src/minor.h.

◆ deps2

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

Definition at line 179 of file eemmg-lib-new/src/minor.h.

◆ deps3

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

Definition at line 180 of file eemmg-lib-new/src/minor.h.

◆ epsir1

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

Definition at line 185 of file eemmg-lib-new/src/minor.h.

◆ epsir2

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

Definition at line 186 of file eemmg-lib-new/src/minor.h.

◆ heps

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

Definition at line 174 of file eemmg-lib-new/src/minor.h.

◆ idxtbl

static const unsigned char MinorBase::idxtbl
staticprotected

Definition at line 41 of file eemmg-lib-new/src/minor.h.

51 : public SRefCnt
52{
53 public:
54 MinorBase() {}
55
56#ifdef USE_GOLEM_MODE
57#define EVALUNDEF return std::numeric_limits<double>::signaling_NaN();
58 virtual ncomplex A(int ep) { EVALUNDEF }
59 virtual ncomplex A(int ep, int i) { EVALUNDEF }
60 virtual ncomplex A(int ep, int i, int j) { EVALUNDEF }
61 virtual ncomplex A(int ep, int i, int j, int k) { EVALUNDEF }
62 virtual ncomplex A(int ep, int i, int j, int k, int l) { EVALUNDEF }
63 virtual ncomplex A(int ep, int i, int j, int k, int l, int m) { EVALUNDEF }
64 virtual ncomplex B(int ep) { EVALUNDEF }
65 virtual ncomplex B(int ep, int i) { EVALUNDEF; }
66 virtual ncomplex B(int ep, int i, int j) { EVALUNDEF }
67 virtual ncomplex B(int ep, int i, int j, int k) { EVALUNDEF }
68 virtual ncomplex C(int ep) { EVALUNDEF }
69 virtual ncomplex C(int ep, int i) { EVALUNDEF }
70#undef EVALUNDEF
71#endif /* USE_GOLEM_MODE */
72
73 // Symmetric index - start from 1
74 inline static int ns(int i, int j) CONST
75 {
76 return ( i<=j ? (i-1)+((j-1)*j)/2 : (j-1)+((i-1)*i)/2 );
77 }
78
79 inline static int nss(int i, int j) CONST // ordered
80 {
81 return (i-1)+((j-1)*j)/2;
82 }
83
84 // Symmetric index - generic
85 inline static int is(int i, int j) CONST
86 {
87 return ( i<=j ? i+j*(j+1)/2 : j+i*(i+1)/2 );
88 }
89
90 inline static int is(int i, int j, int k) CONST
91 {
92 if (i <= j) {
93 return (j <= k ? i+ti2[j]+ti3[k] : is(i,k)+ti3[j]);
94 }
95 else {
96 return (i > k ? is(j,k)+ti3[i] : j+ti2[i]+ti3[k]);
97 }
98 }
99
100 inline static int is(int i, int j, int k, int l) CONST
101 {
102 if (i <= j) {
103 if (j <= k) {
104 return (k <= l ? i+ti2[j]+ti3[k]+ti4[l]
105 : is(i,j,l)+ti4[k] );
106 }
***************************************************************************************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
static int nss(int i, int j) CONST
#define CONST
std::complex< double > ncomplex
double int * ep
Definition qcdloop1.h:74
#define ns(x)
Definition xmltok.c:1504

Referenced by im2(), and im3().

◆ m3eps

static double MinorBase::m3eps =1
staticprotected

Definition at line 190 of file eemmg-lib-new/src/minor.h.

Referenced by Rescale().

◆ meps

static double MinorBase::meps =1e-10
staticprotected

Definition at line 189 of file eemmg-lib-new/src/minor.h.

Referenced by getmeps(), and Rescale().

◆ seps1

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

Definition at line 182 of file eemmg-lib-new/src/minor.h.

◆ seps2

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

Definition at line 183 of file eemmg-lib-new/src/minor.h.

◆ teps

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

Definition at line 173 of file eemmg-lib-new/src/minor.h.


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