31 #ifndef __FASTJET_CLUSTERSEQUENCEAREA_HH__ 32 #define __FASTJET_CLUSTERSEQUENCEAREA_HH__ 34 #include "fastjet/ClusterSequenceAreaBase.hh" 35 #include "fastjet/ClusterSequenceActiveArea.hh" 36 #include "fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh" 37 #include "fastjet/ClusterSequencePassiveArea.hh" 38 #include "fastjet/ClusterSequenceVoronoiArea.hh" 39 #include "fastjet/AreaDefinition.hh" 41 FASTJET_BEGIN_NAMESPACE
55 (
const std::vector<L> & pseudojets,
58 initialize_and_run_cswa(pseudojets, jet_def_in);
63 (
const std::vector<L> & pseudojets,
66 initialize_and_run_cswa(pseudojets, jet_def_in);
71 (
const std::vector<L> & pseudojets,
74 initialize_and_run_cswa(pseudojets, jet_def_in);
83 return _area_base->area(jet);}
88 return _area_base->area_error(jet);}
92 return _area_base->area_4vector(jet);}
113 return _area_base->empty_area(selector);}
125 return _area_base->n_empty_jets(selector);
130 return _area_base->is_pure_ghost(jet);
135 return _area_base->has_explicit_ghosts();
149 bool use_area_4vector,
150 double & median,
double & sigma,
152 bool all_are_incl =
false) const FASTJET_OVERRIDE {
153 _warn_if_range_unsuitable(selector);
154 ClusterSequenceAreaBase::_get_median_rho_and_sigma(
155 all_jets, selector, use_area_4vector,
156 median, sigma, mean_area, all_are_incl);
165 bool use_area_4vector,
166 double & median,
double & sigma)
const FASTJET_OVERRIDE {
167 ClusterSequenceAreaBase::_get_median_rho_and_sigma(selector,use_area_4vector,
177 bool use_area_4vector,
178 double & median,
double & sigma,
179 double & mean_area)
const FASTJET_OVERRIDE {
180 ClusterSequenceAreaBase::_get_median_rho_and_sigma(selector,use_area_4vector,
181 median,sigma, mean_area);
191 double exclude_above=-1.0,
192 bool use_area_4vector=
false) const FASTJET_OVERRIDE {
193 return _parabolic_pt_per_unit_area(a,b,selector,exclude_above,use_area_4vector);
202 void _warn_if_range_unsuitable(
const Selector & selector)
const;
204 template<
class L>
void initialize_and_run_cswa (
205 const std::vector<L> & pseudojets,
219 virtual void _parabolic_pt_per_unit_area(
double & a,
double & b,
221 double exclude_above=-1.0,
222 bool use_area_4vector=
false)
const FASTJET_OVERRIDE {
223 _warn_if_range_unsuitable(selector);
224 ClusterSequenceAreaBase::_parabolic_pt_per_unit_area(
225 a,b,selector, exclude_above, use_area_4vector);
231 template<
class L>
void ClusterSequenceArea::initialize_and_run_cswa(
232 const std::vector<L> & pseudojets,
237 switch(_area_def.area_type()) {
241 _area_def.ghost_spec());
243 case active_area_explicit_ghosts:
244 if (_area_def.ghost_spec().repeat() != 1)
245 _explicit_ghosts_repeats_warnings.warn(
"Requested active area with explicit ghosts with repeat != 1; only 1 set of ghosts will be used");
248 _area_def.ghost_spec());
253 _area_def.voronoi_spec());
255 case one_ghost_passive_area:
258 _area_def.ghost_spec());
263 _area_def.ghost_spec());
266 std::ostringstream err;
267 err <<
"Error: unrecognized area_type in ClusterSequenceArea:" 268 << _area_def.area_type();
269 throw Error(err.str());
274 transfer_from_sequence(*_area_base);
277 FASTJET_END_NAMESPACE
279 #endif // __FASTJET_CLUSTERSEQUENCEAREA_HH__ virtual bool is_pure_ghost(const PseudoJet &jet) const override
true if a jet is made exclusively of ghosts
General class for user to obtain ClusterSequence with additional area information.
Like ClusterSequence with computation of the passive jet area by adding a single ghost.
virtual double area(const PseudoJet &jet) const override
return the area associated with the given jet
virtual void parabolic_pt_per_unit_area(double &a, double &b, const Selector &selector, double exclude_above=-1.0, bool use_area_4vector=false) const override
overload version of what's in the ClusterSequenceAreaBase class, which additionally checks compatibil...
virtual PseudoJet area_4vector(const PseudoJet &jet) const override
return the 4-vector area
Like ClusterSequence with computation of the active jet area.
class that holds a generic area definition
virtual void get_median_rho_and_sigma(const std::vector< PseudoJet > &all_jets, const Selector &selector, bool use_area_4vector, double &median, double &sigma, double &mean_area, bool all_are_incl=false) const override
overload version of what's in the ClusterSequenceAreaBase class, which additionally checks compatibil...
virtual double empty_area(const Selector &selector) const override
return the total area, corresponding to the given selector, that is free of jets
class to provide facilities for giving warnings up to some maximum number of times and to provide glo...
Like ClusterSequence with computation of the passive jet area.
Specification for the computation of the Voronoi jet area.
virtual bool has_explicit_ghosts() const override
true if this ClusterSequence has explicit ghosts
base class that sets interface for extensions of ClusterSequence that provide information about the a...
base class corresponding to errors that can be thrown by FastJet
const AreaDefinition & area_def() const
return a reference to the area definition
Like ClusterSequence with computation of the active jet area with the addition of explicit ghosts...
an implementation of C++0x shared pointers (or boost's)
Class that encodes information about cuts and other selection criteria that can be applied to PseudoJ...
virtual void get_median_rho_and_sigma(const Selector &selector, bool use_area_4vector, double &median, double &sigma, double &mean_area) const override
overload version of what's in the ClusterSequenceAreaBase class, which actually just does the same th...
virtual double area_error(const PseudoJet &jet) const override
return the error (uncertainty) associated with the determination of the area of this jet ...
Like ClusterSequence with computation of the Voronoi jet area.
virtual void get_median_rho_and_sigma(const Selector &selector, bool use_area_4vector, double &median, double &sigma) const override
overload version of what's in the ClusterSequenceAreaBase class, which actually just does the same th...
Parameters to configure the computation of jet areas using ghosts.
virtual double n_empty_jets(const Selector &selector) const override
return something similar to the number of pure ghost jets in the given rap-phi range in an active are...
Class to contain pseudojets, including minimal information of use to jet-clustering routines...
class that is intended to hold a full definition of the jet clusterer