fastjet::ClusterSequenceArea Class Reference

#include <ClusterSequenceArea.hh>

Inheritance diagram for fastjet::ClusterSequenceArea:

Inheritance graph
fastjet::ClusterSequenceAreaBasefastjet::ClusterSequence
[legend]
Collaboration diagram for fastjet::ClusterSequenceArea:

Collaboration graph
fastjet::ClusterSequenceAreaBasefastjet::ClusterSequencefastjet::JetDefinitionfastjet::JetDefinition::DefaultRecombinerfastjet::JetDefinition::Recombinerfastjet::JetDefinition::PluginLimitedWarningfastjet::AreaDefinitionfastjet::VoronoiAreaSpecfastjet::GhostedAreaSpecfastjet::BasicRandom\< double \>
[legend]
List of all members.

Public Member Functions

template<class L>
 ClusterSequenceArea (const std::vector< L > &pseudojets, const JetDefinition &jet_def, const AreaDefinition &area_def_in)
template<class L>
 ClusterSequenceArea (const std::vector< L > &pseudojets, const JetDefinition &jet_def, const GhostedAreaSpec &area_spec)
template<class L>
 ClusterSequenceArea (const std::vector< L > &pseudojets, const JetDefinition &jet_def, const VoronoiAreaSpec &area_spec)
const AreaDefinitionarea_def () const
 return a reference to the area definition
virtual double area (const PseudoJet &jet) const
 return the area associated with the given jet
virtual double area_error (const PseudoJet &jet) const
 return the error (uncertainty) associated with the determination of the area of this jet
virtual PseudoJet area_4vector (const PseudoJet &jet) const
 return the 4-vector area
virtual double empty_area (const RangeDefinition &range) const
 return the total area, in the given rap-phi range, that is free of jets
virtual double n_empty_jets (const RangeDefinition &range) const
 return something similar to the number of pure ghost jets in the given rap-phi range in an active area case.
virtual bool is_pure_ghost (const PseudoJet &jet) const
 true if a jet is made exclusively of ghosts
virtual void get_median_rho_and_sigma (const RangeDefinition &range, bool use_area_4vector, double &median, double &sigma, double &mean_area) const
 overload version of what's in the ClusterSequenceAreaBase class, which additionally checks compatibility between "range" and region in which ghosts are thrown.
virtual void parabolic_pt_per_unit_area (double &a, double &b, const RangeDefinition &range, double exclude_above=-1.0, bool use_area_4vector=false) const
 overload version of what's in the ClusterSequenceAreaBase class, which additionally checks compatibility between "range" and region in which ghosts are thrown.

Private Member Functions

void _warn_if_range_unsuitable (const RangeDefinition &range) const
 print a warning if the range is unsuitable for the current calculation of the area (e.g.
template<class L>
void initialize_and_run_cswa (const std::vector< L > &pseudojets, const JetDefinition &jet_def)

Private Attributes

std::auto_ptr< ClusterSequenceAreaBase_area_base
AreaDefinition _area_def

Static Private Attributes

static LimitedWarning _range_warnings

Detailed Description

Definition at line 43 of file ClusterSequenceArea.hh.


Constructor & Destructor Documentation

template<class L>
fastjet::ClusterSequenceArea::ClusterSequenceArea ( const std::vector< L > &  pseudojets,
const JetDefinition jet_def,
const AreaDefinition area_def_in 
) [inline]

Definition at line 46 of file ClusterSequenceArea.hh.

00048                                                : _area_def(area_def_in) {
00049     initialize_and_run_cswa(pseudojets, jet_def);
00050   }

template<class L>
fastjet::ClusterSequenceArea::ClusterSequenceArea ( const std::vector< L > &  pseudojets,
const JetDefinition jet_def,
const GhostedAreaSpec area_spec 
) [inline]

Definition at line 53 of file ClusterSequenceArea.hh.

00055                                                : _area_def(area_spec){
00056     initialize_and_run_cswa(pseudojets, jet_def);
00057   }

template<class L>
fastjet::ClusterSequenceArea::ClusterSequenceArea ( const std::vector< L > &  pseudojets,
const JetDefinition jet_def,
const VoronoiAreaSpec area_spec 
) [inline]

Definition at line 60 of file ClusterSequenceArea.hh.

00062                                                : _area_def(area_spec){
00063     initialize_and_run_cswa(pseudojets, jet_def);
00064   }


Member Function Documentation

const AreaDefinition& fastjet::ClusterSequenceArea::area_def (  )  const [inline]

return a reference to the area definition

Definition at line 67 of file ClusterSequenceArea.hh.

00067 {return _area_def;}

virtual double fastjet::ClusterSequenceArea::area ( const PseudoJet jet  )  const [inline, virtual]

return the area associated with the given jet

Reimplemented from fastjet::ClusterSequenceAreaBase.

Definition at line 71 of file ClusterSequenceArea.hh.

00071                                                           {
00072     return _area_base->area(jet);}

virtual double fastjet::ClusterSequenceArea::area_error ( const PseudoJet jet  )  const [inline, virtual]

return the error (uncertainty) associated with the determination of the area of this jet

Reimplemented from fastjet::ClusterSequenceAreaBase.

Definition at line 76 of file ClusterSequenceArea.hh.

00076                                                           {
00077     return _area_base->area_error(jet);}

virtual PseudoJet fastjet::ClusterSequenceArea::area_4vector ( const PseudoJet jet  )  const [inline, virtual]

return the 4-vector area

Reimplemented from fastjet::ClusterSequenceAreaBase.

Definition at line 80 of file ClusterSequenceArea.hh.

00080                                                               {
00081     return _area_base->area_4vector(jet);}

virtual double fastjet::ClusterSequenceArea::empty_area ( const RangeDefinition range  )  const [inline, virtual]

return the total area, in the given rap-phi range, that is free of jets

Reimplemented from fastjet::ClusterSequenceAreaBase.

Definition at line 96 of file ClusterSequenceArea.hh.

00096                                                                  {
00097     return _area_base->empty_area(range);}

virtual double fastjet::ClusterSequenceArea::n_empty_jets ( const RangeDefinition range  )  const [inline, virtual]

return something similar to the number of pure ghost jets in the given rap-phi range in an active area case.

For the local implementation we return empty_area/(0.55 pi R^2), based on measured properties of ghost jets with kt and cam. Note that the number returned is a double.

Reimplemented from fastjet::ClusterSequenceAreaBase.

Definition at line 104 of file ClusterSequenceArea.hh.

00104                                                                    {
00105     return _area_base->n_empty_jets(range);
00106   }

virtual bool fastjet::ClusterSequenceArea::is_pure_ghost ( const PseudoJet jet  )  const [inline, virtual]

true if a jet is made exclusively of ghosts

Reimplemented from fastjet::ClusterSequenceAreaBase.

Definition at line 109 of file ClusterSequenceArea.hh.

00109                                                           {
00110     return _area_base->is_pure_ghost(jet);
00111   }

virtual void fastjet::ClusterSequenceArea::get_median_rho_and_sigma ( const RangeDefinition range,
bool  use_area_4vector,
double &  median,
double &  sigma,
double &  mean_area 
) const [inline, virtual]

overload version of what's in the ClusterSequenceAreaBase class, which additionally checks compatibility between "range" and region in which ghosts are thrown.

Reimplemented from fastjet::ClusterSequenceAreaBase.

Definition at line 116 of file ClusterSequenceArea.hh.

00119                                                                   {
00120     _warn_if_range_unsuitable(range);
00121     ClusterSequenceAreaBase::get_median_rho_and_sigma(range, use_area_4vector,
00122                                                       median, sigma, mean_area);
00123   }

virtual void fastjet::ClusterSequenceArea::parabolic_pt_per_unit_area ( double &  a,
double &  b,
const RangeDefinition range,
double  exclude_above = -1.0,
bool  use_area_4vector = false 
) const [inline, virtual]

overload version of what's in the ClusterSequenceAreaBase class, which additionally checks compatibility between "range" and region in which ghosts are thrown.

Reimplemented from fastjet::ClusterSequenceAreaBase.

Definition at line 128 of file ClusterSequenceArea.hh.

00131                                                                              {
00132     _warn_if_range_unsuitable(range);
00133     ClusterSequenceAreaBase::parabolic_pt_per_unit_area(
00134                                 a,b,range, exclude_above, use_area_4vector);
00135   }

void fastjet::ClusterSequenceArea::_warn_if_range_unsuitable ( const RangeDefinition range  )  const [private]

print a warning if the range is unsuitable for the current calculation of the area (e.g.

because ghosts do not extend far enough).

Definition at line 10 of file ClusterSequenceArea.cc.

References _area_def, _range_warnings, fastjet::AreaDefinition::area_type(), fastjet::RangeDefinition::get_rap_limits(), fastjet::GhostedAreaSpec::ghost_maxrap(), fastjet::AreaDefinition::ghost_spec(), fastjet::JetDefinition::jet_algorithm(), fastjet::ClusterSequence::jet_def(), fastjet::kt_algorithm, fastjet::passive_area, fastjet::JetDefinition::R(), fastjet::voronoi_area, and LimitedWarning::warn().

00010                                                                                        {
00011   bool no_ghosts = (_area_def.area_type() == voronoi_area)
00012     || (_area_def.area_type() == passive_area
00013         && jet_def().jet_algorithm() == kt_algorithm);
00014   if (! no_ghosts) {
00015     double rapmin, rapmax;
00016     range.get_rap_limits(rapmin, rapmax);
00017     if (rapmin < -_area_def.ghost_spec().ghost_maxrap()+0.95*jet_def().R() ||
00018         rapmax >  _area_def.ghost_spec().ghost_maxrap()-0.95*jet_def().R()) {
00019       _range_warnings.warn("rapidity range for median (rho) extends beyond +-(ghost_maxrap - 0.95*R); this is likely to cause the results to be unreliable; safest option is to increase ghost_maxrap in the area definition");
00020     }
00021   }
00022 }

template<class L>
void fastjet::ClusterSequenceArea::initialize_and_run_cswa ( const std::vector< L > &  pseudojets,
const JetDefinition jet_def 
) [inline, private]

Definition at line 156 of file ClusterSequenceArea.hh.

References _area_base, _area_def, fastjet::active_area, fastjet::active_area_explicit_ghosts, fastjet::AreaDefinition::area_type(), fastjet::AreaDefinition::ghost_spec(), fastjet::ClusterSequence::jet_def(), fastjet::one_ghost_passive_area, fastjet::passive_area, fastjet::ClusterSequence::transfer_from_sequence(), fastjet::voronoi_area, and fastjet::AreaDefinition::voronoi_spec().

00159  {
00160   
00161   ClusterSequenceAreaBase * _area_base_ptr;
00162   switch(_area_def.area_type()) {
00163   case active_area:
00164     _area_base_ptr = new ClusterSequenceActiveArea(pseudojets, 
00165                                                    jet_def, 
00166                                                    _area_def.ghost_spec());
00167     break;
00168   case active_area_explicit_ghosts:
00169     _area_base_ptr = new ClusterSequenceActiveAreaExplicitGhosts(pseudojets, 
00170                                                    jet_def, 
00171                                                    _area_def.ghost_spec());
00172     break;
00173   case voronoi_area:
00174     _area_base_ptr = new ClusterSequenceVoronoiArea(pseudojets, 
00175                                                    jet_def, 
00176                                                    _area_def.voronoi_spec());
00177     break;
00178   case one_ghost_passive_area:
00179     _area_base_ptr = new ClusterSequence1GhostPassiveArea(pseudojets, 
00180                                                     jet_def, 
00181                                                     _area_def.ghost_spec());
00182     break;
00183   case passive_area:
00184     _area_base_ptr = new ClusterSequencePassiveArea(pseudojets, 
00185                                                     jet_def, 
00186                                                     _area_def.ghost_spec());
00187     break;
00188   default:
00189     std::cerr << "Error: unrecognized area_type in ClusterSequenceArea:" 
00190               << _area_def.area_type() << std::endl;
00191     exit(-1);
00192   }
00193   // now copy across the information from the area base class
00194   _area_base = std::auto_ptr<ClusterSequenceAreaBase>(_area_base_ptr);
00195   transfer_from_sequence(*_area_base);
00196 }


Member Data Documentation

std::auto_ptr<ClusterSequenceAreaBase> fastjet::ClusterSequenceArea::_area_base [private]

Definition at line 149 of file ClusterSequenceArea.hh.

Referenced by initialize_and_run_cswa().

AreaDefinition fastjet::ClusterSequenceArea::_area_def [private]

Definition at line 150 of file ClusterSequenceArea.hh.

Referenced by _warn_if_range_unsuitable(), and initialize_and_run_cswa().

LimitedWarning fastjet::ClusterSequenceArea::_range_warnings [static, private]

Definition at line 151 of file ClusterSequenceArea.hh.

Referenced by _warn_if_range_unsuitable().


The documentation for this class was generated from the following files:
Generated on Tue Dec 18 17:05:51 2007 for fastjet by  doxygen 1.5.2