32 #ifndef __FASTJET_GHOSTEDAREASPEC_HH__
33 #define __FASTJET_GHOSTEDAREASPEC_HH__
37 #include "fastjet/PseudoJet.hh"
38 #include "fastjet/internal/BasicRandom.hh"
39 #include "fastjet/Selector.hh"
40 #include "fastjet/LimitedWarning.hh"
43 #define STATIC_GENERATOR 1
45 FASTJET_BEGIN_NAMESPACE
49 const double def_ghost_maxrap = 6.0;
50 const int def_repeat = 1;
51 const double def_ghost_area = 0.01;
52 const double def_grid_scatter = 1.0;
53 const double def_pt_scatter = 0.1;
54 const double def_mean_ghost_pt = 1e-100;
68 _ghost_rap_offset(0.0),
69 _repeat (gas::def_repeat),
70 _ghost_area (gas::def_ghost_area),
71 _grid_scatter (gas::def_grid_scatter),
72 _pt_scatter (gas::def_pt_scatter),
73 _mean_ghost_pt(gas::def_mean_ghost_pt),
74 _fj2_placement(false) {_initialize();}
78 int repeat_in = gas::def_repeat,
79 double ghost_area_in = gas::def_ghost_area,
80 double grid_scatter_in = gas::def_grid_scatter,
81 double pt_scatter_in = gas::def_pt_scatter,
82 double mean_ghost_pt_in = gas::def_mean_ghost_pt
84 _ghost_maxrap(ghost_maxrap_in),
85 _ghost_rap_offset(0.0),
87 _ghost_area(ghost_area_in),
88 _grid_scatter(grid_scatter_in),
89 _pt_scatter(pt_scatter_in),
90 _mean_ghost_pt(mean_ghost_pt_in),
91 _fj2_placement(false) {_initialize();}
95 double ghost_maxrap_in,
96 int repeat_in = gas::def_repeat,
97 double ghost_area_in = gas::def_ghost_area,
98 double grid_scatter_in = gas::def_grid_scatter,
99 double pt_scatter_in = gas::def_pt_scatter,
100 double mean_ghost_pt_in = gas::def_mean_ghost_pt
102 _ghost_maxrap (0.5*(ghost_maxrap_in - ghost_minrap_in)),
103 _ghost_rap_offset(0.5*(ghost_maxrap_in + ghost_minrap_in)),
105 _ghost_area(ghost_area_in),
106 _grid_scatter(grid_scatter_in),
107 _pt_scatter(pt_scatter_in),
108 _mean_ghost_pt(mean_ghost_pt_in),
109 _fj2_placement(false) {_initialize();}
114 int repeat_in = gas::def_repeat,
115 double ghost_area_in = gas::def_ghost_area,
116 double grid_scatter_in = gas::def_grid_scatter,
117 double pt_scatter_in = gas::def_pt_scatter,
118 double mean_ghost_pt_in = gas::def_mean_ghost_pt
126 inline double ghost_rapmax ()
const {
return _ghost_maxrap;}
127 inline double ghost_maxrap ()
const {
return _ghost_maxrap;}
128 inline double ghost_etamax ()
const {
return _ghost_maxrap;}
129 inline double ghost_maxeta ()
const {
return _ghost_maxrap;}
130 inline double ghost_area ()
const {
return _ghost_area ;}
131 inline double grid_scatter ()
const {
return _grid_scatter;}
132 inline double pt_scatter ()
const {
return _pt_scatter ;}
133 inline double mean_ghost_pt()
const {
return _mean_ghost_pt ;}
134 inline int repeat ()
const {
return _repeat ;}
135 inline bool fj2_placement()
const {
return _fj2_placement;}
137 inline double kt_scatter ()
const {
return _pt_scatter ;}
138 inline double mean_ghost_kt()
const {
return _mean_ghost_pt ;}
141 inline double actual_ghost_area()
const {
return _actual_ghost_area;}
142 inline int n_ghosts()
const {
return _n_ghosts;}
145 inline void set_ghost_area (
double val) {_ghost_area = val; _initialize();}
146 inline void set_ghost_rapmax (
double val) {_ghost_maxrap = val; _initialize();}
147 inline void set_ghost_maxrap (
double val) {_ghost_maxrap = val; _initialize();}
148 inline void set_ghost_etamax (
double val) {_ghost_maxrap = val; _initialize();}
149 inline void set_ghost_maxeta (
double val) {_ghost_maxrap = val; _initialize();}
150 inline void set_grid_scatter (
double val) {_grid_scatter = val; }
151 inline void set_pt_scatter (
double val) {_pt_scatter = val; }
152 inline void set_mean_ghost_pt(
double val) {_mean_ghost_pt = val; }
153 inline void set_repeat (
int val) {_repeat = val; }
155 inline void set_kt_scatter (
double val) {_pt_scatter = val; }
156 inline void set_mean_ghost_kt(
double val) {_mean_ghost_pt = val; }
175 void set_fj2_placement(
bool val);
179 inline int nphi()
const {
return _nphi;}
180 inline int nrap()
const {
return _nrap;}
186 _random_generator.get_status(__iseed);}
194 _random_generator.set_status(__iseed);}
196 inline void checkpoint_random() {get_random_status(_random_checkpoint);}
197 inline void restore_checkpoint_random() {set_random_status(_random_checkpoint);}
200 std::string description()
const;
204 void add_ghosts(std::vector<PseudoJet> & )
const;
211 return _random_generator;}
216 double _ghost_maxrap;
217 double _ghost_rap_offset;
220 double _grid_scatter;
222 double _mean_ghost_pt;
228 double _actual_ghost_area, _dphi, _drap;
229 int _n_ghosts, _nphi, _nrap;
232 std::vector<int> _random_checkpoint;
233 static BasicRandom<double> _random_generator;
238 inline double _our_rand()
const {
return _random_generator();}
249 FASTJET_END_NAMESPACE
251 #endif // __FASTJET_GHOSTEDAREASPEC_HH__
int nphi() const
return nphi (ghosts layed out (-nrap, 0..nphi-1), (-nrap+1,0..nphi-1), ...
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...
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
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...
Class that encodes information about cuts and other selection criteria that can be applied to PseudoJ...
double random_at_own_risk() const
very deprecated public access to a random number from the internal generator
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.