30 #ifndef __FASTJET_GHOSTEDAREASPEC_HH__ 31 #define __FASTJET_GHOSTEDAREASPEC_HH__ 35 #include "fastjet/PseudoJet.hh" 36 #include "fastjet/internal/BasicRandom.hh" 37 #include "fastjet/Selector.hh" 38 #include "fastjet/LimitedWarning.hh" 41 #define STATIC_GENERATOR 1 43 FASTJET_BEGIN_NAMESPACE
47 const double def_ghost_maxrap = 6.0;
48 const int def_repeat = 1;
49 const double def_ghost_area = 0.01;
50 const double def_grid_scatter = 1.0;
51 const double def_pt_scatter = 0.1;
52 const double def_mean_ghost_pt = 1e-100;
66 _ghost_rap_offset(0.0),
67 _repeat (gas::def_repeat),
68 _ghost_area (gas::def_ghost_area),
69 _grid_scatter (gas::def_grid_scatter),
70 _pt_scatter (gas::def_pt_scatter),
71 _mean_ghost_pt(gas::def_mean_ghost_pt),
72 _fj2_placement(false) {_initialize();}
76 int repeat_in = gas::def_repeat,
77 double ghost_area_in = gas::def_ghost_area,
78 double grid_scatter_in = gas::def_grid_scatter,
79 double pt_scatter_in = gas::def_pt_scatter,
80 double mean_ghost_pt_in = gas::def_mean_ghost_pt
82 _ghost_maxrap(ghost_maxrap_in),
83 _ghost_rap_offset(0.0),
85 _ghost_area(ghost_area_in),
86 _grid_scatter(grid_scatter_in),
87 _pt_scatter(pt_scatter_in),
88 _mean_ghost_pt(mean_ghost_pt_in),
89 _fj2_placement(false) {_initialize();}
93 double ghost_maxrap_in,
94 int repeat_in = gas::def_repeat,
95 double ghost_area_in = gas::def_ghost_area,
96 double grid_scatter_in = gas::def_grid_scatter,
97 double pt_scatter_in = gas::def_pt_scatter,
98 double mean_ghost_pt_in = gas::def_mean_ghost_pt
100 _ghost_maxrap (0.5*(ghost_maxrap_in - ghost_minrap_in)),
101 _ghost_rap_offset(0.5*(ghost_maxrap_in + ghost_minrap_in)),
103 _ghost_area(ghost_area_in),
104 _grid_scatter(grid_scatter_in),
105 _pt_scatter(pt_scatter_in),
106 _mean_ghost_pt(mean_ghost_pt_in),
107 _fj2_placement(false) {_initialize();}
112 int repeat_in = gas::def_repeat,
113 double ghost_area_in = gas::def_ghost_area,
114 double grid_scatter_in = gas::def_grid_scatter,
115 double pt_scatter_in = gas::def_pt_scatter,
116 double mean_ghost_pt_in = gas::def_mean_ghost_pt
124 inline double ghost_etamax ()
const {
return _ghost_maxrap;}
125 inline double ghost_maxrap ()
const {
return _ghost_maxrap;}
126 inline double ghost_area ()
const {
return _ghost_area ;}
127 inline double grid_scatter ()
const {
return _grid_scatter;}
128 inline double pt_scatter ()
const {
return _pt_scatter ;}
129 inline double mean_ghost_pt()
const {
return _mean_ghost_pt ;}
130 inline int repeat ()
const {
return _repeat ;}
131 inline bool fj2_placement()
const {
return _fj2_placement;}
133 inline double kt_scatter ()
const {
return _pt_scatter ;}
134 inline double mean_ghost_kt()
const {
return _mean_ghost_pt ;}
137 inline double actual_ghost_area()
const {
return _actual_ghost_area;}
138 inline int n_ghosts()
const {
return _n_ghosts;}
141 inline void set_ghost_area (
double val) {_ghost_area = val; _initialize();}
142 inline void set_ghost_etamax (
double val) {_ghost_maxrap = val; _initialize();}
143 inline void set_ghost_maxrap (
double val) {_ghost_maxrap = val; _initialize();}
144 inline void set_grid_scatter (
double val) {_grid_scatter = val; }
145 inline void set_pt_scatter (
double val) {_pt_scatter = val; }
146 inline void set_mean_ghost_pt(
double val) {_mean_ghost_pt = val; }
147 inline void set_repeat (
int val) {_repeat = val; }
149 inline void set_kt_scatter (
double val) {_pt_scatter = val; }
150 inline void set_mean_ghost_kt(
double val) {_mean_ghost_pt = val; }
169 void set_fj2_placement(
bool val);
173 inline int nphi()
const {
return _nphi;}
174 inline int nrap()
const {
return _nrap;}
180 _random_generator.get_status(__iseed);}
188 _random_generator.set_status(__iseed);}
190 inline void checkpoint_random() {get_random_status(_random_checkpoint);}
191 inline void restore_checkpoint_random() {set_random_status(_random_checkpoint);}
194 std::string description()
const;
198 void add_ghosts(std::vector<PseudoJet> & )
const;
205 return _random_generator;}
210 double _ghost_maxrap;
211 double _ghost_rap_offset;
214 double _grid_scatter;
216 double _mean_ghost_pt;
222 double _actual_ghost_area, _dphi, _drap;
223 int _n_ghosts, _nphi, _nrap;
226 std::vector<int> _random_checkpoint;
227 static BasicRandom<double> _random_generator;
232 inline double _our_rand()
const {
return _random_generator();}
243 FASTJET_END_NAMESPACE
245 #endif // __FASTJET_GHOSTEDAREASPEC_HH__ BasicRandom< double > & generator_at_own_risk() const
very deprecated public access to the generator itself
GhostedAreaSpec(double ghost_maxrap_in, int repeat_in=gas::def_repeat, double ghost_area_in=gas::def_ghost_area, double grid_scatter_in=gas::def_grid_scatter, double pt_scatter_in=gas::def_pt_scatter, double mean_ghost_pt_in=gas::def_mean_ghost_pt)
explicit constructor
void get_random_status(std::vector< int > &__iseed) const
get all relevant information about the status of the random number generator, so that it can be reset...
GhostedAreaSpec(double ghost_minrap_in, double ghost_maxrap_in, int repeat_in=gas::def_repeat, double ghost_area_in=gas::def_ghost_area, double grid_scatter_in=gas::def_grid_scatter, double pt_scatter_in=gas::def_pt_scatter, double mean_ghost_pt_in=gas::def_mean_ghost_pt)
explicit constructor
GhostedAreaSpec()
default constructor
class to provide facilities for giving warnings up to some maximum number of times and to provide glo...
int nphi() const
return nphi (ghosts layed out (-nrap, 0..nphi-1), (-nrap+1,0..nphi-1), ...
Class that encodes information about cuts and other selection criteria that can be applied to PseudoJ...
void set_random_status(const std::vector< int > &__iseed)
set the status of the random number generator, as obtained previously with get_random_status.
Parameters to configure the computation of jet areas using ghosts.
double random_at_own_risk() const
very deprecated public access to a random number from the internal generator