fast pQCD calculations for hadron-induced processes
fastNLOCoeffAddFix.h
1 #ifndef __fastNLOCoeffAddFix__
2 #define __fastNLOCoeffAddFix__
3 
4 #include "fastNLOCoeffAddBase.h"
5 #include "fastNLOConstants.h"
6 
7 
9 
10  friend class fastNLOTable;
11  friend class fastNLOReader;
12  friend class fastNLOCreate;
13 
14 public:
15  fastNLOCoeffAddFix() = delete;
16  fastNLOCoeffAddFix(int NObsBin);
17  explicit fastNLOCoeffAddFix(const fastNLOCoeffBase&);
18  virtual ~fastNLOCoeffAddFix(){;}
19  virtual fastNLOCoeffAddFix* Clone() const;
20  static bool CheckCoeffConstants(const fastNLOCoeffBase* c, bool quiet = false);
21  virtual void Read(std::istream&table);
22  void ReadRest(std::istream& table);
23  virtual void Write(std::ostream& table, int ITabVersionWrite);
24  virtual void Add(const fastNLOCoeffAddBase& other, fastNLO::EMerge moption = fastNLO::kMerge);
25  virtual void Print(int iprint) const;
26 
27  // Manipulate coefficient bins
28  virtual void Clear();
29  virtual void NormalizeCoefficients(double wgt=1);
30  virtual void NormalizeCoefficients(const std::vector<std::vector<double> >& wgtProcBin);
31  virtual void MultiplyCoefficientsByConstant(double fact);
32  virtual void MultiplyBin(unsigned int iObsIdx, double fact);
33  virtual void MultiplyBinProc(unsigned int iObsIdx, unsigned int iProc, double fact);
34  // Erase observable bin from table
35  virtual void EraseBin(unsigned int iObsIdx);
36  // Catenate observable to table
37  virtual void CatBin(const fastNLOCoeffAddFix& other, unsigned int iObsIdx);
38 
39  int GetTotalScalevars() const ;
40  int GetTotalScalenodes() const ;
41  int GetNScaleNode() const { return GetTotalScalenodes(); }
42  int GetNScalevar() const { return Nscalevar[0];}
43  fastNLO::v1d GetAvailableScaleFactors() const { return ScaleFac[0]; }
44  double GetScaleFactor(int iVar) const {
45  if ( iVar >= (int)ScaleFac[0].size() )
46  this->error["GetScaleFactor"]<<"Scalevariation no. "<<iVar<<" not available. There are only "<<GetNScalevar()<<" available in this table."<< std::endl;
47  return ScaleFac[0][iVar];
48  }
49 
50  double GetSigmaTilde(int iObs, int iSvar, int ix, int is, int iN ) const { return SigmaTilde[iObs][iSvar][ix][is][iN];}
51  double GetScaleNode(int iObs, int iSvar, int iNode ) const { return ScaleNode[iObs][0][iSvar][iNode]; }
52  std::vector < double > GetScaleNodes(int iObs, int iSvar) const { return ScaleNode[iObs][0][iSvar]; }
53 
54  void ResizePdfLC();
55  void ResizePdfSplLC();
56  void ResizeSigmaTilde();
57  bool IsCompatible(const fastNLOCoeffAddFix& other) const;
58  bool IsCatenable(const fastNLOCoeffAddFix& other) const;
59 
60 protected:
61  void ReadCoeffAddFix(std::istream& table);
62 
63  std::vector < int > Nscalevar;
64  //std::vector < int > Nscalenode;
65  fastNLO::v2d ScaleFac;
66  fastNLO::v4d ScaleNode;
67  fastNLO::v5d SigmaTilde; // units are (p)barn * Nevt / BinSize
68 
69 public:
70  fastNLO::v2d AlphasTwoPi_v20;
71  fastNLO::v4d PdfLc;
72  fastNLO::v4d PdfSplLc1;
73  fastNLO::v4d PdfSplLc2;
74 };
75 
76 #endif
virtual void NormalizeCoefficients(double wgt=1)
a Set number of events to wgt and re-normalize coefficients accordingly
Definition: fastNLOCoeffAddFix.cc:324
void ResizePdfLC()
Definition: fastNLOCoeffAddFix.cc:125
virtual void EraseBin(unsigned int iObsIdx)
Multiply coefficients of one observable bin a factor (idx starting from 0)
Definition: fastNLOCoeffAddFix.cc:418
bool IsCompatible(const fastNLOCoeffAddFix &other) const
Check for compatibility of two contributions for merging/adding.
Definition: fastNLOCoeffAddFix.cc:267
void ResizePdfSplLC()
Definition: fastNLOCoeffAddFix.cc:139
void ResizeSigmaTilde()
Definition: fastNLOCoeffAddFix.cc:101
virtual void MultiplyCoefficientsByConstant(double fact)
Multiply all coefficients of all bins by a constant factor.
Definition: fastNLOCoeffAddFix.cc:356
Definition: fastNLOCoeffBase.h:15
Definition: fastNLOCreate.h:22
bool IsCatenable(const fastNLOCoeffAddFix &other) const
Check for compatibility of two contributions for merging/adding.
Definition: fastNLOCoeffAddFix.cc:295
virtual void MultiplyBin(unsigned int iObsIdx, double fact)
Multiply coefficients of one bin a factor.
Definition: fastNLOCoeffAddFix.cc:363
Definition: fastNLOReader.h:17
virtual void Add(const fastNLOCoeffAddBase &other, fastNLO::EMerge moption=fastNLO::kMerge)
Definition: fastNLOCoeffAddFix.cc:175
virtual void Read(std::istream &table)
_____________________________________________________________________________________________________...
Definition: fastNLOCoeffAddFix.cc:50
virtual void Write(std::ostream &table, int ITabVersionWrite)
Definition: fastNLOCoeffAddFix.cc:158
virtual void MultiplyBinProc(unsigned int iObsIdx, unsigned int iProc, double fact)
Multiply coefficients of one bin and subprocess by a factor.
Definition: fastNLOCoeffAddFix.cc:370
int GetTotalScalevars() const
Definition: fastNLOCoeffAddFix.cc:241
Definition: fastNLOCoeffAddBase.h:57
Definition: fastNLOCoeffAddFix.h:8
virtual fastNLOCoeffAddFix * Clone() const
returns &#39;new&#39; copy of this instance.
Definition: fastNLOCoeffAddFix.cc:43
int GetTotalScalenodes() const
Definition: fastNLOCoeffAddFix.cc:252
Definition: fastNLOTable.h:20
virtual void Clear()
Clear all coefficients and event counters.
Definition: fastNLOCoeffAddFix.cc:316