107 _ghost_maxrap (gas::def_ghost_maxrap),
108 _ghost_rap_offset(0.0),
109 _repeat (gas::def_repeat),
110 _ghost_area (gas::def_ghost_area),
111 _grid_scatter (gas::def_grid_scatter),
112 _pt_scatter (gas::def_pt_scatter),
113 _mean_ghost_pt(gas::def_mean_ghost_pt),
114 _fj2_placement(false),
115 _user_random_generator(){_initialize();}
126 _ghost_maxrap(ghost_maxrap_in),
127 _ghost_rap_offset(0.0),
128 _repeat (gas::def_repeat),
129 _ghost_area (gas::def_ghost_area),
130 _grid_scatter (gas::def_grid_scatter),
131 _pt_scatter (gas::def_pt_scatter),
132 _mean_ghost_pt(gas::def_mean_ghost_pt),
133 _fj2_placement(false),
134 _user_random_generator(user_random_generator) {_initialize();}
138 int repeat_in = gas::def_repeat,
139 double ghost_area_in = gas::def_ghost_area,
140 double grid_scatter_in = gas::def_grid_scatter,
141 double pt_scatter_in = gas::def_pt_scatter,
142 double mean_ghost_pt_in = gas::def_mean_ghost_pt,
144 _ghost_maxrap(ghost_maxrap_in),
145 _ghost_rap_offset(0.0),
147 _ghost_area(ghost_area_in),
148 _grid_scatter(grid_scatter_in),
149 _pt_scatter(pt_scatter_in),
150 _mean_ghost_pt(mean_ghost_pt_in),
151 _fj2_placement(false),
152 _user_random_generator(user_random_generator) {_initialize();}
156 double ghost_maxrap_in,
157 int repeat_in = gas::def_repeat,
158 double ghost_area_in = gas::def_ghost_area,
159 double grid_scatter_in = gas::def_grid_scatter,
160 double pt_scatter_in = gas::def_pt_scatter,
161 double mean_ghost_pt_in = gas::def_mean_ghost_pt,
163 _ghost_maxrap (0.5*(ghost_maxrap_in - ghost_minrap_in)),
164 _ghost_rap_offset(0.5*(ghost_maxrap_in + ghost_minrap_in)),
166 _ghost_area(ghost_area_in),
167 _grid_scatter(grid_scatter_in),
168 _pt_scatter(pt_scatter_in),
169 _mean_ghost_pt(mean_ghost_pt_in),
170 _fj2_placement(false),
171 _user_random_generator(user_random_generator) {_initialize();}
176 int repeat_in = gas::def_repeat,
177 double ghost_area_in = gas::def_ghost_area,
178 double grid_scatter_in = gas::def_grid_scatter,
179 double pt_scatter_in = gas::def_pt_scatter,
180 double mean_ghost_pt_in = gas::def_mean_ghost_pt,
188 inline double ghost_rapmax ()
const {
return _ghost_maxrap;}
189 inline double ghost_maxrap ()
const {
return _ghost_maxrap;}
190 inline double ghost_etamax ()
const {
return _ghost_maxrap;}
191 inline double ghost_maxeta ()
const {
return _ghost_maxrap;}
192 inline double ghost_area ()
const {
return _ghost_area ;}
193 inline double grid_scatter ()
const {
return _grid_scatter;}
194 inline double pt_scatter ()
const {
return _pt_scatter ;}
195 inline double mean_ghost_pt()
const {
return _mean_ghost_pt ;}
196 inline int repeat ()
const {
return _repeat ;}
197 inline bool fj2_placement()
const {
return _fj2_placement;}
199 inline double kt_scatter ()
const {
return _pt_scatter ;}
200 inline double mean_ghost_kt()
const {
return _mean_ghost_pt ;}
203 inline double actual_ghost_area()
const {
return _actual_ghost_area;}
204 inline int n_ghosts()
const {
return _n_ghosts;}
207 inline void set_ghost_area (
double val) {_ghost_area = val; _initialize();}
208 inline void set_ghost_rapmax (
double val) {_ghost_maxrap = val; _initialize();}
209 inline void set_ghost_maxrap (
double val) {_ghost_maxrap = val; _initialize();}
210 inline void set_ghost_etamax (
double val) {_ghost_maxrap = val; _initialize();}
211 inline void set_ghost_maxeta (
double val) {_ghost_maxrap = val; _initialize();}
212 inline void set_grid_scatter (
double val) {_grid_scatter = val; }
213 inline void set_pt_scatter (
double val) {_pt_scatter = val; }
214 inline void set_mean_ghost_pt(
double val) {_mean_ghost_pt = val; }
215 inline void set_repeat (
int val) {_repeat = val; }
217 inline void set_kt_scatter (
double val) {_pt_scatter = val; }
218 inline void set_mean_ghost_kt(
double val) {_mean_ghost_pt = val; }
237 FASTJET_DEPRECATED_MSG(
"This is deprecated since we strongly recommend use of the new ghost placement instead",
238 void set_fj2_placement(
bool val));
242 inline int nphi()
const {
return _nphi;}
243 inline int nrap()
const {
return _nrap;}
251 if (_user_random_generator){
252 _user_random_generator->get_status(__iseed);
254 _random_generator.get_status(__iseed);
264 if (_user_random_generator){
265 _user_random_generator->set_status(__iseed);
267 _random_generator.set_status(__iseed);
275 new_spec._fixed_seed = __iseed;
281 __iseed = _fixed_seed;
291 if (_repeat > 1) _warn_fixed_last_seeds_nrepeat_gt_1
292 .warn(
"Using fixed seeds (or accessing last used seeds) not sensible with repeat>1");
293 __iseed = _last_used_seed;
296 inline void checkpoint_random() {get_random_status(_random_checkpoint);}
297 inline void restore_checkpoint_random() {set_random_status(_random_checkpoint);}
300 std::string description()
const;
304 void add_ghosts(std::vector<PseudoJet> & )
const;
311 return _user_random_generator ? *_user_random_generator : _random_generator;}
314 return _user_random_generator;}
319 double _ghost_maxrap;
320 double _ghost_rap_offset;
323 double _grid_scatter;
325 double _mean_ghost_pt;
331 double _actual_ghost_area, _dphi, _drap;
332 int _n_ghosts, _nphi, _nrap;
335 std::vector<int> _random_checkpoint;
338 std::vector<int> _fixed_seed;
341 mutable std::vector<int> _last_used_seed;
357 std::vector<int> _user_defined_seeds;
365 inline double _our_rand()
const {
366 return _user_random_generator ? (*_user_random_generator)() : _random_generator();}
368 inline void _our_rand(
unsigned int npoints,
double *pointer,
369 std::vector<int> & used_init_seed)
const {
370 return _user_random_generator
371 ? (*_user_random_generator)(npoints, pointer, used_init_seed)
372 : _random_generator(npoints, pointer, used_init_seed);
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, BasicRandom< double > *user_random_generator=NULL)
explicit constructor
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, BasicRandom< double > *user_random_generator=NULL)
explicit constructor