31#ifndef __FASTJET_CLUSTERSEQUENCEAREABASE_HH__
32#define __FASTJET_CLUSTERSEQUENCEAREABASE_HH__
34#include "fastjet/ClusterSequence.hh"
35#include "fastjet/LimitedWarning.hh"
36#include "fastjet/Selector.hh"
37#include "fastjet/internal/deprecated.hh"
39FASTJET_BEGIN_NAMESPACE
54 (
const std::vector<L> & pseudojets,
56 const bool & writeout_combinations =
false) :
114 virtual double empty_area(
const Selector & selector)
const;
122 double empty_area_from_jets(
const std::vector<PseudoJet> & all_jets,
137 double R = jet_def().R();
138 return empty_area(selector)/(0.55*pi*R*R);
147 FASTJET_DEPRECATED_MSG(
"ClusterSequenceAreaBase::median_pt_per_unit_area(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead",
148 double median_pt_per_unit_area(
const Selector & selector)
const);
155 FASTJET_DEPRECATED_MSG(
"ClusterSequenceAreaBase::median_pt_per_unit_area_4vector(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead",
156 double median_pt_per_unit_area_4vector(
const Selector & selector)
const);
162 FASTJET_DEPRECATED_MSG(
"ClusterSequenceAreaBase::median_pt_per_unit_something(...) is deprecated since FastJet 3.0. Use the BackgroundEstimator series of tools instead",
163 double median_pt_per_unit_something(
const Selector & selector,
164 bool use_area_4vector)
const);
191 virtual void get_median_rho_and_sigma(
const Selector & selector,
192 bool use_area_4vector,
193 double & median,
double & sigma,
194 double & mean_area)
const;
218 bool use_area_4vector,
219 double & median,
double & sigma,
221 bool all_are_inclusive =
false)
const;
231 bool use_area_4vector,
232 double & median,
double & sigma)
const{
233 return _get_median_rho_and_sigma(selector, use_area_4vector, median, sigma);
246 virtual void parabolic_pt_per_unit_area(
double & a,
double & b,
248 double exclude_above=-1.0,
249 bool use_area_4vector=
false)
const;
255 FASTJET_DEPRECATED_MSG(
"ClusterSequenceAreaBase::subtracted_jets(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead",
256 std::vector<PseudoJet> subtracted_jets(
const double rho,
257 const double ptmin=0.0)
const);
267 FASTJET_DEPRECATED_MSG(
"ClusterSequenceAreaBase::subtracted_jets(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead",
268 std::vector<PseudoJet> subtracted_jets(
const Selector & selector,
269 const double ptmin=0.0)
const);
272 FASTJET_DEPRECATED_MSG(
"ClusterSequenceAreaBase::subtracted_jet(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead",
274 const double rho)
const);
284 FASTJET_DEPRECATED_MSG(
"ClusterSequenceAreaBase::subtracted_jet(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead",
289 FASTJET_DEPRECATED_MSG(
"ClusterSequenceAreaBase::subtracted_pt(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead",
290 double subtracted_pt(
const PseudoJet & jet,
292 bool use_area_4vector=
false)
const);
301 FASTJET_DEPRECATED_MSG(
"ClusterSequenceAreaBase::subtracted_pt(...) is deprecated since FastJet 3.0. Use the Subtractor tool (with the BackgroundEstimator series of tools) instead",
302 double subtracted_pt(
const PseudoJet & jet,
304 bool use_area_4vector=
false)
const);
308 void _check_selector_good_for_median(
const Selector &selector)
const;
316 virtual void _get_median_rho_and_sigma(
const Selector & selector,
317 bool use_area_4vector,
318 double & median,
double & sigma,
319 double & mean_area)
const;
320 virtual void _get_median_rho_and_sigma(
const std::vector<PseudoJet> & all_jets,
322 bool use_area_4vector,
323 double & median,
double & sigma,
325 bool all_are_inclusive =
false)
const;
326 virtual void _get_median_rho_and_sigma(
const Selector & selector,
327 bool use_area_4vector,
328 double & median,
double & sigma)
const {
330 _get_median_rho_and_sigma(selector, use_area_4vector,
331 median, sigma, mean_area);
333 virtual void _parabolic_pt_per_unit_area(
double & a,
double & b,
334 const Selector & selector,
335 double exclude_above=-1.0,
336 bool use_area_4vector=
false)
const;
340 static LimitedWarning _warnings;
341 static LimitedWarning _warnings_zero_area;
342 static LimitedWarning _warnings_empty_area;
345 void _check_jet_alg_good_for_median()
const;
353 double _median_pt_per_unit_area(
const Selector & selector)
const;
354 double _median_pt_per_unit_area_4vector(
const Selector & selector)
const;
355 double _median_pt_per_unit_something(
const Selector & selector,
356 bool use_area_4vector)
const;
357 std::vector<PseudoJet> _subtracted_jets(
const double rho,
358 const double ptmin=0.0)
const;
359 PseudoJet _subtracted_jet(
const PseudoJet & jet,
360 const double rho)
const;
361 PseudoJet _subtracted_jet(
const PseudoJet & jet,
362 const Selector & selector)
const;
363 double _subtracted_pt(
const PseudoJet & jet,
365 bool use_area_4vector=
false)
const;
base class that sets interface for extensions of ClusterSequence that provide information about the a...
virtual void get_median_rho_and_sigma(const Selector &selector, bool use_area_4vector, double &median, double &sigma) const
same as the full version of get_median_rho_and_error, but without access to the mean_area
virtual bool has_explicit_ghosts() const
returns true if ghosts are explicitly included within jets for this ClusterSequence;
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_inclusive=false) const
a more advanced version of get_median_rho_and_sigma, which allows one to use any "view" of the event ...
virtual double n_empty_jets(const Selector &selector) const
return something similar to the number of pure ghost jets in the given selector's range in an active ...
virtual double area_error(const PseudoJet &) const
return the error (uncertainty) associated with the determination of the area of this jet; this base c...
ClusterSequenceAreaBase(const std::vector< L > &pseudojets, const JetDefinition &jet_def_in, const bool &writeout_combinations=false)
a constructor which just carries out the construction of the parent class
virtual double area(const PseudoJet &) const
return the area associated with the given jet; this base class returns 0.
virtual PseudoJet area_4vector(const PseudoJet &) const
return a PseudoJet whose 4-vector is defined by the following integral
virtual bool is_pure_ghost(const PseudoJet &) const
true if a jet is made exclusively of ghosts
virtual ~ClusterSequenceAreaBase()
destructor
ClusterSequenceAreaBase()
default constructor
class that is intended to hold a full definition of the jet clusterer
Class to contain pseudojets, including minimal information of use to jet-clustering routines.
Class that encodes information about cuts and other selection criteria that can be applied to PseudoJ...