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.