fast pQCD calculations for hadron-induced processes
fastNLOEvent.h
1 #ifndef __fnloevent__
2 #define __fnloevent__
3 
4 #include <string>
5 #include <vector>
6 #include <map>
7 
8 class fnloScenario {
11  friend class fastNLOCreate;
12 
13  public:
14  fnloScenario() : _m1(0),_m2(0), _iOB(-1) {;}
15  ~fnloScenario() {;};
16 
17  inline void SetObservableDimI(double o, int iDim) {_o[iDim]=o;}
18  inline void SetObservable0(double o) {SetObservableDimI(o,0);}
19  inline void SetObservable1(double o) {SetObservableDimI(o,1);}
20  inline void SetObservable2(double o) {SetObservableDimI(o,2);}
21  inline void SetObsBin(int iBin) {_iOB = iBin; }
22  inline void SetObsScale1(double mu) {_m1=mu;}
24 
25  inline void SetObsScale2(double mu) {_m2=mu;}
26  inline void SetScale(double mu) {_m1=mu;}
28 private:
29  std::map<int,double> _o;
30  double _m1, _m2;
31  int _iOB;
32 };
33 
34 
35 class fnloEvent {
38  friend class fastNLOCreate;
39 
40 public:
41  fnloEvent(){Reset();}
42  ~fnloEvent(){;}
43  inline void ResetButX(){
44  _w=0,_wf=0,_wr=0,_wrr=0,_wff=0,_wrf=0;
45  _sig=0; // sigma
46  _p=-1;
47  _n=-1;
48  }
49  inline void Reset(){
50  ResetButX();
51  _x1=0,_x2=0;
52  }
53  // event specific quantites, which are required for every 'Fill()' step.
54  inline const double& X1() const {return _x1;}
55  inline const double& X2() const {return _x2;}
56  inline const int& p() const {return _p;}
57  inline void SetX(double x) {_x1=x;}
58  inline void SetX1(double x) {_x1=x;}
59  inline void SetX2(double x) {_x2=x;}
60  inline void SetProcessId(int n){_p=n;}
61  inline void SetEventCounter(long long int n){_n=n;}
62  inline void SetWeight(double w) {_w=w;}
64  inline void SetSigma(double s) {_sig=s;}
65  inline void AddSigma(double s) {_sig+=s;}
66  inline void SetWeight_MuIndependent(double w) {_w=w;}
68  inline void SetWeight_log_mur(double w) {_wr=w;}
69  inline void SetWeight_log_muf(double w) {_wf=w;}
70  inline void SetWeight_log_murr(double w) {_wrr=w;}
71  inline void SetWeight_log_muff(double w) {_wff=w;}
72  inline void SetWeight_log_murf(double w) {_wrf=w;}
73  inline void AddWeight_MuIndependent(double w) {_w+=w;}
74  inline void AddWeight_log_mur(double w) {_wr+=w;}
75  inline void AddWeight_log_muf(double w) {_wf+=w;}
76  inline void AddWeight_log_murr(double w) {_wrr+=w;}
77  inline void AddWeight_log_muff(double w) {_wff+=w;}
78  inline void AddWeight_log_murf(double w) {_wrf+=w;}
79 private:
80  double _x1, _x2;
81  double _sig;
82  double _w, _wf, _wr, _wrr, _wff, _wrf;
83  int _p;
84  long long int _n;
85 };
86 
87 #endif
void AddWeight_log_muff(double w)
set weight w, which will contribute with log^2_e(muf^2)*w
Definition: fastNLOEvent.h:77
void SetObservable0(double o)
Set observable for &#39;0th&#39; dimension for single-differential calculation.
Definition: fastNLOEvent.h:18
const double & X2() const
get x-value of second hadron
Definition: fastNLOEvent.h:55
void SetWeight_log_muff(double w)
set weight w, which will contribute with log^2_e(muf^2)*w
Definition: fastNLOEvent.h:71
void SetX1(double x)
setx-value of first hadron
Definition: fastNLOEvent.h:58
void SetProcessId(int n)
set identifier of specific subprocess (0<n<NSubproc), according to the corresponding PDF linear combi...
Definition: fastNLOEvent.h:60
void AddSigma(double s)
Definition: fastNLOEvent.h:65
void SetWeight_log_murr(double w)
set weight w, which will contribute with log^2_e(mur^2)*w
Definition: fastNLOEvent.h:70
void SetObsScale2(double mu)
Definition: fastNLOEvent.h:25
void AddWeight_log_muf(double w)
set weight w, which will contribute with log_e(muf^2)*w
Definition: fastNLOEvent.h:75
Definition: fastNLOEvent.h:35
void SetX(double x)
set x-value of first hadron (if e.g. DIS)
Definition: fastNLOEvent.h:57
void SetWeight_log_muf(double w)
set weight w, which will contribute with log_e(muf^2)*w
Definition: fastNLOEvent.h:69
Definition: fastNLOCreate.h:22
void SetObservable2(double o)
Set observable for &#39;2nd&#39; dimension for single/double/triple differential calculations.
Definition: fastNLOEvent.h:20
void SetEventCounter(long long int n)
Definition: fastNLOEvent.h:61
void SetSigma(double s)
weight to calculate cross section (i.e. already multiplied by PDF,alpha_s).
Definition: fastNLOEvent.h:64
void AddWeight_log_murf(double w)
set weight w, which will contribute with log_e(mur^2)*log_e(muf^2)*w
Definition: fastNLOEvent.h:78
void SetWeight_log_mur(double w)
set weight w, which will contribute with log_e(mur^2)*w
Definition: fastNLOEvent.h:68
void AddWeight_MuIndependent(double w)
weights must be mutliplied with dummypdf (1/x)
Definition: fastNLOEvent.h:73
void SetX2(double x)
set x-value of second hadron
Definition: fastNLOEvent.h:59
void SetObservable1(double o)
Set observable for &#39;1st&#39; dimension for single and double-differential calculations.
Definition: fastNLOEvent.h:19
const double & X1() const
get x-value of first hadron
Definition: fastNLOEvent.h:54
void SetObservableDimI(double o, int iDim)
Set observable of dimension iDim (e.g. in case of multidimensional measurements)
Definition: fastNLOEvent.h:17
void AddWeight_log_murr(double w)
set weight w, which will contribute with log^2_e(mur^2)*w
Definition: fastNLOEvent.h:76
void SetScale(double mu)
if not a flexible-scale table
Definition: fastNLOEvent.h:27
void SetWeight_log_murf(double w)
set weight w, which will contribute with log_e(mur^2)*log_e(muf^2)*w
Definition: fastNLOEvent.h:72
const int & p() const
get x-value of second hadron
Definition: fastNLOEvent.h:56
void AddWeight_log_mur(double w)
set weight w, which will contribute with log_e(mur^2)*w
Definition: fastNLOEvent.h:74
void SetObsBin(int iBin)
Definition: fastNLOEvent.h:21
void SetObsScale1(double mu)
flexible scale table:
Definition: fastNLOEvent.h:23
Definition: fastNLOEvent.h:8