1 #ifndef __fastNLOCoeffAddBase__ 2 #define __fastNLOCoeffAddBase__ 5 #include "fastNLOCoeffBase.h" 6 #include "fastNLOConstants.h" 19 std::vector < std::vector < unsigned long long > >
WgtObsNumEv;
28 for (
auto& i : WgtObsSumW2 )
for (
auto& j : i ) j=0;
29 for (
auto& i : SigObsSumW2 )
for (
auto& j : i ) j=0;
30 for (
auto& i : SigObsSum )
for (
auto& j : i ) j=0;
31 for (
auto& i : WgtObsNumEv )
for (
auto& j : i ) j=0;
34 void Add(
const WgtStat& other ) {
40 this->SigSum += other.
SigSum;
41 if ( this->WgtObsNumEv.size() != other.
WgtObsNumEv.size() ) exit(8);
42 for (
unsigned int i = 0 ; i<WgtObsNumEv.size() ; i++ ) {
43 if ( this->WgtObsNumEv[i].size() != other.
WgtObsNumEv[i].size() ) exit(8);
44 for (
unsigned int j = 0 ; j<WgtObsNumEv[i].size() ; j++ ) {
47 this->SigObsSum[i][j] += other.
SigObsSum[i][j];
52 WgtStat& operator+=(
const WgtStat& other) { this->Add(other);
return *
this;}
68 static bool CheckCoeffConstants(
const fastNLOCoeffBase* c,
bool quiet =
false);
69 void Read(std::istream& table);
70 virtual void Write(std::ostream& table,
int ITabVersionWrite);
71 virtual void Add(
const fastNLOCoeffAddBase& other, fastNLO::EMerge moption=fastNLO::kMerge);
72 virtual void Print(
int iprint)
const;
79 virtual void MultiplyBin(
unsigned int iObsIdx,
double fact) {};
80 virtual void MultiplyBinProc(
unsigned int iObsIdx,
unsigned int iProc,
double fact) {};
81 virtual void EraseBin(
unsigned int iObsIdx);
84 int GetIRef()
const {
return IRef;}
85 void SetIRef(
int iref=1) {IRef=iref;}
86 double GetNevt()
const {
return Nevt; }
87 double GetNevt(
int NObsBin,
int NSubproc)
const {
89 if (Nevt > 0)
return Nevt;
90 else {std::cout<<
"Todo. Preparation for v2.3."<< std::endl;
return Nevt;}
94 int GetXIndex(
int Obsbin,
int x1bin,
int x2bin =0)
const ;
95 int GetNSubproc()
const {
return NSubproc;}
96 int GetIScaleDep()
const {
return IScaleDep;}
97 int GetNPDF()
const {
return NPDFPDG.size();}
98 int GetPDFPDG(
int iPDF)
const {
return NPDFPDG[iPDF];}
99 int GetNPDFDim()
const {
return NPDFDim;}
100 int GetIPDFdef1()
const {
return IPDFdef1; }
101 int GetIPDFdef2()
const {
return IPDFdef2; }
102 int GetIPDFdef3()
const {
return IPDFdef3; }
103 int GetNpow()
const {
return Npow;}
104 int GetNScales()
const {
return NScales;}
105 int GetNScaleDim()
const {
return NScaleDim;}
107 std::string GetScaleDescription(
int iScale=0)
const {
return ScaleDescript[0][iScale]; };
108 std::vector<std::vector<std::string > > GetScaleDescr()
const {
return ScaleDescript; }
109 int GetNxtot1(
int iBin)
const {
return XNode1[iBin].size(); }
110 int GetNxtot2(
int iBin)
const {
return XNode2.size() > 0 ? XNode2[iBin].size() : -1; }
112 double GetXNode1(
int iObsBin,
int iNode)
const {
return XNode1[iObsBin][iNode]; }
113 double GetXNode2(
int iObsBin,
int iNode)
const {
return XNode2[iObsBin][iNode]; }
114 double GetX1(
int iObsBin,
int iXnode)
const;
115 double GetX2(
int iObsBin,
int iXnode)
const;
117 std::vector < double >
GetXNodes1(
int iObsBin)
const {
return XNode1[iObsBin]; }
118 std::vector < double > GetXNodes2(
int iObsBin)
const {
return XNode2[iObsBin]; }
120 bool IsReference()
const {
return IRef>0;};
124 const std::vector<std::vector<std::pair<int,int> > >& GetPDFCoeff()
const {
return fPDFCoeff;}
128 double GetMergeWeight(fastNLO::EMerge moption,
int proc,
int bin)
const ;
131 void ReadCoeffAddBase(std::istream& table);
132 int GetScaledimfromvar(
int scalevar)
const;
138 std::vector < int > NPDFPDG;
140 std::vector < int > NFFPDG;
146 std::vector<std::vector<std::pair<int,int> > > fPDFCoeff;
150 std::vector < double > Hxlim2;
152 std::vector < int > Nztot;
153 std::vector < double > Hzlim;
157 std::vector < int > Iscale;
158 std::vector < std::vector < std::string > > ScaleDescript;
void NormalizeCoefficients(double wgt=1)
Set number of events to wgt and adjust coefficients accordingly.
Definition: fastNLOCreate.cc:2720
double SigSum
Sum of all sigma (i.e. (wgt*alpha*pdf)**2 )
Definition: fastNLOCoeffAddBase.h:15
virtual void MultiplyBinProc(unsigned int iObsIdx, unsigned int iProc, double fact)
Multiply coefficients of one observable bin a factor.
Definition: fastNLOCoeffAddBase.h:80
void MultiplyCoefficientsByConstant(double c)
Multiply all coefficients with a constant factor c.
Definition: fastNLOCreate.cc:2837
fastNLO::WgtStat & AccessWgtStat()
Get weight and event counts.
Definition: fastNLOCoeffAddBase.h:127
void Clear()
Print all steering values obtained from steering files (of all fastNLOCreate instances);.
Definition: fastNLOCreate.h:111
fastNLO::WgtStat fWgt
event and weight counts
Definition: fastNLOCoeffAddBase.h:160
fastNLO::v2d WgtObsSumW2
sumw2[proc][obs]
Definition: fastNLOCoeffAddBase.h:16
std::vector< double > GetXNodes1(int iObsBin) const
return x value of pdf1 for x-node 1
Definition: fastNLOCoeffAddBase.h:117
int GetNxmax(const std::vector< double > *xGrid1, const std::vector< double > *xGrid2)
get maximum x-index
Definition: fastNLOCreate.cc:2676
Definition: fastNLOCoeffBase.h:15
const fastNLO::WgtStat & GetWgtStat() const
Get weight and event counts.
Definition: fastNLOCoeffAddBase.h:126
Definition: fastNLOCreate.h:22
fastNLO::v2d SigObsSum
sum[proc][obs]
Definition: fastNLOCoeffAddBase.h:18
fastNLO::v2d SigObsSumW2
sumw2[proc][obs]
Definition: fastNLOCoeffAddBase.h:17
void SetNevt(double nevt)
Set number of events.
Definition: fastNLOCoeffAddBase.h:92
Definition: fastNLOCoeffAddBase.h:8
double WgtNevt
'number of events', i.e. normalisation as suggested by generator (identical to previously use 'Nevt')...
Definition: fastNLOCoeffAddBase.h:10
int NumTable
Number of tables merged into this table.
Definition: fastNLOCoeffAddBase.h:11
std::vector< std::vector< unsigned long long > > WgtObsNumEv
Nentries[proc][obs].
Definition: fastNLOCoeffAddBase.h:19
double WgtSumW2
Sum of all weight**2.
Definition: fastNLOCoeffAddBase.h:13
unsigned long long WgtNumEv
number of entries
Definition: fastNLOCoeffAddBase.h:12
Definition: fastNLOCoeffAddBase.h:57
Definition: fastNLOTable.h:20
virtual void MultiplyBin(unsigned int iObsIdx, double fact)
Multiply all coefficients of all bins by a constant factor.
Definition: fastNLOCoeffAddBase.h:79
double SigSumW2
Sum of all sigma**2 (i.e. (wgt*alpha*pdf)**2 )
Definition: fastNLOCoeffAddBase.h:14
Definition: fastNLOCoeffAddBase.h:9
int GetXIndex(const int &Obsbin, const int &x1bin, const int &x2bin) const
get x-index in case of two hadrons.
Definition: fastNLOCreate.cc:2655
std::vector< double > Hxlim1
fPDFCoeff[iSubProc][iPartonPair][pair]
Definition: fastNLOCoeffAddBase.h:148