fastjet 3.0alpha2
Classes | Public Member Functions | Protected Member Functions

Selector Class Reference

Class that encodes information about cuts and other selection criteria that can be applied to PseudoJet(s). More...

#include <Selector.hh>

Collaboration diagram for Selector:
Collaboration graph
[legend]

List of all members.

Classes

class  InvalidArea
 class that gets throw when a Selector is applied despite it not having a valid underlying worker. More...
class  InvalidWorker
 class that gets throw when a Selector is applied despite it not having a valid underlying worker. More...

Public Member Functions

 Selector ()
 default constructor produces a Selector whose action is undefined (any attempt to use it will lead to an error)
 Selector (SelectorWorker *worker)
 constructor that causes the Selector to use the supplied worker
virtual ~Selector ()
 dummy virtual dtor
bool pass (const PseudoJet &jet) const
 return true if the jet passes the selection
bool operator() (const PseudoJet &jet) const
 an operator way of knowing whether a given jet passes the selection or not
bool applies_jet_by_jet () const
 returns true if this can be applied jet by jet
std::vector< PseudoJet > operator() (const std::vector< PseudoJet > &jets) const
 returns a vector with the jets that pass the selection
virtual void nullify_non_selected (std::vector< const PseudoJet * > &jets) const
 For each jet that does not pass the cuts, this routine sets the pointer to 0.
void get_rapidity_extent (double &rapmin, double &rapmax) const
 returns the rapidity range for which it may return "true"
std::string description () const
 return a textual description of the selector
bool has_area () const
 check if it has a meaningful and finite area
double area (double cell_area=gas::def_ghost_area) const
 returns the rapidity-phi area associated with the Selector (throws InvalidArea if the area does not make sense).
const SharedPtr< SelectorWorker > & worker () const
 returns a (reference to) the underlying worker's shared pointer
const SelectorWorkervalidated_worker () const
 returns a worker if there is a valid one, otherwise throws an InvalidWorker error
bool takes_reference () const
 returns true if this can be applied jet by jet
const Selectorset_reference (const PseudoJet &reference)
 set the reference jet for this Selector

Protected Member Functions

void _copy_worker_if_needed ()
 Helper for copying selector workers if needed.

Detailed Description

Class that encodes information about cuts and other selection criteria that can be applied to PseudoJet(s).

Definition at line 135 of file Selector.hh.


Constructor & Destructor Documentation

Selector::Selector ( SelectorWorker worker) [inline]

constructor that causes the Selector to use the supplied worker

Note that the Selector takes ownership of the pointer to the worker (and so will delete automatically when appropriate).

Definition at line 145 of file Selector.hh.

References SharedPtr< T >::reset().

{_worker.reset(worker);}

Member Function Documentation

virtual void Selector::nullify_non_selected ( std::vector< const PseudoJet * > &  jets) const [inline, virtual]

For each jet that does not pass the cuts, this routine sets the pointer to 0.

It does not assume that the PseudoJet* passed as argumetn are not NULL

Definition at line 175 of file Selector.hh.

References SelectorWorker::terminator(), and validated_worker().

double Selector::area ( double  cell_area = gas::def_ghost_area) const

returns the rapidity-phi area associated with the Selector (throws InvalidArea if the area does not make sense).

The argument passed is the requested cell area, which is used for obtaining a Monte Carlo type estimate of the area in case the Selector does not have an analytically known error. The Monte Carlo estimate involves a time penalty proportional to rapidity extent of the Selector.

Definition at line 602 of file PseudoJet.cc.

References ClusterSequenceAreaBase::area().

                            {
  return validated_structure_ptr()->area(*this);
}
void Selector::_copy_worker_if_needed ( ) [inline, protected]

Helper for copying selector workers if needed.

The following is needed if we want to modify a selectors that shares a worker with another selector. In that case, we need to get another copy of the worker to avoid interferences

Note that any non-const operation has to call this to behave correctly w.r.t shared workers!

Definition at line 242 of file Selector.hh.

References SharedPtr< T >::reset(), and SharedPtr< T >::unique().

Referenced by set_reference().

                               {
    // do nothing if there's a sinlge user of the worker
    if (_worker.unique()) return;

    // call the worker's copy
    //std::cout << "will make a copy of " << description() << std::endl;
    _worker.reset(_worker->copy());
  }

The documentation for this class was generated from the following files: