33 #include "fastjet/RectangularGrid.hh"    37 FASTJET_BEGIN_NAMESPACE      
    40 RectangularGrid::RectangularGrid()
    41     : _ymax(-1.0), _ymin(1.0), _requested_drap(-1.0), _requested_dphi(-1.0) {
    60   double y_minus_ymin = p.
rap() - _ymin;
    61   if (y_minus_ymin < 0) 
return -1;
    62   int iy = int(y_minus_ymin * _inverse_dy); 
    63   if (iy >= _ny) 
return -1;
    72   int iphi = int( p.
phi() * _inverse_dphi );
    73   if (iphi == _nphi) iphi = 0; 
    75   return iy*_nphi + iphi;
    80 void RectangularGrid::_setup_grid() {
    82   assert(_ymax > _ymin);
    83   assert(_requested_drap > 0);
    84   assert(_requested_dphi > 0);
    86   double ny_double = (_ymax-_ymin) / _requested_drap;
    87   _ny = max(
int(ny_double+0.5),1);
    88   _dy = (_ymax-_ymin) / _ny;
    89   _inverse_dy = _ny/(_ymax-_ymin);
    91   _nphi = int (twopi / _requested_dphi + 0.5);
    92   _dphi = twopi / _nphi;
    93   _inverse_dphi = _nphi/twopi;
    96   assert(_ny >= 1 && _nphi >= 1);
    98   _ntotal = _nphi * _ny;
   100   _cell_area = _dy * _dphi;
   104   if (_tile_selector.
worker()) {
   107     for (
int i = 0; i < 
n_tiles(); i++) {
   108       int iphi = i % _nphi;
   109       int irap = i / _nphi;
   110       double phi = (iphi + 0.5)*_dphi;
   111       double rap = (irap + 0.5)*_dy + _ymin;
   112       _is_good[i] = _tile_selector.
pass(
PtYPhiM(1.0, rap, phi));
   113       if (_is_good[i]) _ngood++;
   123     return "Uninitialised rectangular grid";
   126   oss << 
"rectangular grid with rapidity extent " << _ymin << 
" < rap < " << _ymax
   127       << 
", tile size drap x dphi = " << _dy << 
" x " << _dphi;
   129   if (_tile_selector.
worker()) {
   130     oss << 
", good tiles are those that pass selector " <<  _tile_selector.
description();
   135 FASTJET_END_NAMESPACE      
 PseudoJet PtYPhiM(double pt, double y, double phi, double m)
return a pseudojet with the given pt, y, phi and mass 
 
virtual int n_tiles() const override
returns the total number of tiles in the tiling; valid tile indices run from 0 ... 
 
virtual std::string description() const override
returns a textual description of the grid 
 
virtual bool is_initialised() const override
returns true if the grid is in a suitably initialised state 
 
const SharedPtr< SelectorWorker > & worker() const
returns a (reference to) the underlying worker's shared pointer 
 
bool pass(const PseudoJet &jet) const
return true if the jet passes the selection 
 
double phi() const
returns phi (in the range 0..2pi) 
 
double rap() const
returns the rapidity or some large value when the rapidity is infinite 
 
virtual int tile_index(const PseudoJet &p) const override
returns the index of the tile in which p is located, or -1 if p is outside the tiling region ...
 
std::string description() const
returns a textual description of the selector 
 
Class to contain pseudojets, including minimal information of use to jet-clustering routines...