Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

fastjet::ClusterSequenceArea Class Reference

General class for user to obtain ClusterSequence with additional area information. More...

#include <ClusterSequenceArea.hh>

Inheritance diagram for fastjet::ClusterSequenceArea:

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

Collaboration graph
[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)
 main constructor
template<class L>
 ClusterSequenceArea (const std::vector< L > &pseudojets, const JetDefinition &jet_def, const GhostedAreaSpec &area_spec)
 constructor with a GhostedAreaSpec
template<class L>
 ClusterSequenceArea (const std::vector< L > &pseudojets, const JetDefinition &jet_def, const VoronoiAreaSpec &area_spec)
 constructor with a VoronoiAreaSpec
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 get_median_rho_and_sigma (const RangeDefinition &range, bool use_area_4vector, double &median, double &sigma) const
 overload version of what's in the ClusterSequenceAreaBase class, which actually just does the same thing as the base version (but since we've overridden the 5-argument version above, we have to override the 4-argument version too.
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

General class for user to obtain ClusterSequence with additional area information.

Based on the area_def, it automatically dispatches the work to the appropriate actual ClusterSequenceAreaBase-derived-class to do the real work.

Definition at line 49 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]
 

main constructor

Definition at line 53 of file ClusterSequenceArea.hh.

00055                                                : _area_def(area_def_in) {
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 GhostedAreaSpec area_spec
[inline]
 

constructor with a GhostedAreaSpec

Definition at line 61 of file ClusterSequenceArea.hh.

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

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

constructor with a VoronoiAreaSpec

Definition at line 69 of file ClusterSequenceArea.hh.

00071                                                : _area_def(area_spec){
00072     initialize_and_run_cswa(pseudojets, jet_def);
00073   }


Member Function Documentation

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::AreaDefinition::ghost_spec(), fastjet::ClusterSequence::jet_def(), fastjet::kt_algorithm, fastjet::passive_area, 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 }

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 80 of file ClusterSequenceArea.hh.

00080                                                           {
00081     return _area_base->area(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 89 of file ClusterSequenceArea.hh.

00089                                                               {
00090     return _area_base->area_4vector(jet);}

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

return a reference to the area definition

Definition at line 76 of file ClusterSequenceArea.hh.

00076 {return _area_def;}

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 85 of file ClusterSequenceArea.hh.

00085                                                           {
00086     return _area_base->area_error(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 105 of file ClusterSequenceArea.hh.

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

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

overload version of what's in the ClusterSequenceAreaBase class, which actually just does the same thing as the base version (but since we've overridden the 5-argument version above, we have to override the 4-argument version too.

Reimplemented from fastjet::ClusterSequenceAreaBase.

Definition at line 138 of file ClusterSequenceArea.hh.

00140                                                                                {
00141     ClusterSequenceAreaBase::get_median_rho_and_sigma(range,use_area_4vector,
00142                                                       median,sigma);
00143   }

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 125 of file ClusterSequenceArea.hh.

00128                                                                   {
00129     _warn_if_range_unsuitable(range);
00130     ClusterSequenceAreaBase::get_median_rho_and_sigma(range, use_area_4vector,
00131                                                       median, sigma, mean_area);
00132   }

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

Definition at line 177 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::one_ghost_passive_area, fastjet::passive_area, fastjet::ClusterSequence::transfer_from_sequence(), fastjet::voronoi_area, and fastjet::AreaDefinition::voronoi_spec().

00180  {
00181   
00182   ClusterSequenceAreaBase * _area_base_ptr;
00183   switch(_area_def.area_type()) {
00184   case active_area:
00185     _area_base_ptr = new ClusterSequenceActiveArea(pseudojets, 
00186                                                    jet_def, 
00187                                                    _area_def.ghost_spec());
00188     break;
00189   case active_area_explicit_ghosts:
00190     _area_base_ptr = new ClusterSequenceActiveAreaExplicitGhosts(pseudojets, 
00191                                                    jet_def, 
00192                                                    _area_def.ghost_spec());
00193     break;
00194   case voronoi_area:
00195     _area_base_ptr = new ClusterSequenceVoronoiArea(pseudojets, 
00196                                                    jet_def, 
00197                                                    _area_def.voronoi_spec());
00198     break;
00199   case one_ghost_passive_area:
00200     _area_base_ptr = new ClusterSequence1GhostPassiveArea(pseudojets, 
00201                                                     jet_def, 
00202                                                     _area_def.ghost_spec());
00203     break;
00204   case passive_area:
00205     _area_base_ptr = new ClusterSequencePassiveArea(pseudojets, 
00206                                                     jet_def, 
00207                                                     _area_def.ghost_spec());
00208     break;
00209   default:
00210     std::cerr << "Error: unrecognized area_type in ClusterSequenceArea:" 
00211               << _area_def.area_type() << std::endl;
00212     exit(-1);
00213   }
00214   // now copy across the information from the area base class
00215   _area_base = std::auto_ptr<ClusterSequenceAreaBase>(_area_base_ptr);
00216   transfer_from_sequence(*_area_base);
00217 }

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 118 of file ClusterSequenceArea.hh.

00118                                                           {
00119     return _area_base->is_pure_ghost(jet);
00120   }

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 113 of file ClusterSequenceArea.hh.

00113                                                                    {
00114     return _area_base->n_empty_jets(range);
00115   }

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 149 of file ClusterSequenceArea.hh.

00152                                                                              {
00153     _warn_if_range_unsuitable(range);
00154     ClusterSequenceAreaBase::parabolic_pt_per_unit_area(
00155                                 a,b,range, exclude_above, use_area_4vector);
00156   }


Member Data Documentation

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

Definition at line 170 of file ClusterSequenceArea.hh.

Referenced by initialize_and_run_cswa().

AreaDefinition fastjet::ClusterSequenceArea::_area_def [private]
 

Definition at line 171 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 5 of file ClusterSequenceArea.cc.

Referenced by _warn_if_range_unsuitable().


The documentation for this class was generated from the following files:
Generated on Fri Aug 15 13:45:45 2008 for fastjet by  doxygen 1.4.2