herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
Remapper.h
1 // -*- C++ -*-
2 //
3 // Remapper.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef Herwig_Remapper_H
10 #define Herwig_Remapper_H
11 //
12 // This is the declaration of the Remapper class.
13 //
14 
15 #include <iostream>
16 #include <map>
17 #include "Herwig/Utilities/XML/Element.h"
18 
19 namespace Herwig {
20 
27 struct Remapper {
28 
29  std::map<double,double> weights;
30 
31  struct SelectorEntry {
32 
33  double lower;
34  double upper;
35  double value;
36 
37  };
38 
39  std::map<double,SelectorEntry> selector;
40 
41  double minSelection;
42 
43  bool smooth;
44 
45  Remapper();
46 
47  Remapper(unsigned int nBins,
48  double nMinSelection,
49  bool nSmooth);
50 
51  void fill(double x, double w);
52 
53  void finalize();
54 
55  std::pair<double,double> generate(double r) const;
56 
57  void fromXML(const XML::Element& elem);
58 
59  XML::Element toXML() const;
60 
61  void test(size_t n, std::ostream&);
62 
63 };
64 
65 }
66 
67 #endif // Herwig_Remapper_H
68 
Element represents a (tree of) XML elements.
Definition: Element.h:56
-*- C++ -*-
Remapper adapts indivdual MC dimensions.
Definition: Remapper.h:27