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

fastjet::ClusterSequenceActiveAreaExplicitGhosts Class Reference

Class that behaves essentially like ClusterSequence except that it also provides access to the area of a jet (which will be a random quantity... More...

#include <ClusterSequenceActiveAreaExplicitGhosts.hh>

Inheritance diagram for fastjet::ClusterSequenceActiveAreaExplicitGhosts:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

template<class L>  ClusterSequenceActiveAreaExplicitGhosts (const std::vector< L > &pseudojets, const JetDefinition &jet_def, const GhostedAreaSpec &area_spec, const bool &writeout_combinations=false)
 constructor using a GhostedAreaSpec to specify how the area is to be measured

template<class L>  ClusterSequenceActiveAreaExplicitGhosts (const std::vector< L > &pseudojets, const JetDefinition &jet_def, const std::vector< L > &ghosts, double ghost_area, const bool &writeout_combinations=false)
template<class L> void _initialise (const std::vector< L > &pseudojets, const JetDefinition &jet_def, const GhostedAreaSpec *area_spec, const std::vector< L > *ghosts, double ghost_area, const bool &writeout_combinations)
 does the actual work of initialisation

unsigned int n_hard_particles () const
 returns the number of hard particles (i.e. those supplied by the user).

virtual double area (const PseudoJet &jet) const
 returns the area of a jet

virtual PseudoJet area_4vector (const PseudoJet &jet) const
 returns a four vector corresponding to the sum (E-scheme) of the ghost four-vectors composing the jet area, normalised such that for a small contiguous area the p_t of the extended_area jet is equal to area of the jet.

virtual bool is_pure_ghost (const PseudoJet &jet) const
 true if a jet is made exclusively of ghosts

bool is_pure_ghost (int history_index) const
 true if the entry in the history index corresponds to a ghost; if hist_ix does not correspond to an actual particle (i.e.

virtual double empty_area (const RangeDefinition &range) const
 return the total area, up to |y|<maxrap, that consists of unclustered ghosts

double total_area () const
 returns the total area under study

double max_ghost_perp2 () const
 returns the largest squared transverse momentum among all ghosts

bool has_dangerous_particles () const
 returns true if there are any particles whose transverse momentum if so low that there's a risk of the ghosts having modified the clustering sequence


Private Member Functions

void _add_ghosts (const GhostedAreaSpec &area_spec)
 adds the "ghost" momenta, which will be used to estimate the jet area

template<class L> void _add_ghosts (const std::vector< L > &ghosts, double ghost_area)
 add an explicitly specified bunch of ghosts

void _post_process ()
 routine to be called after the processing is done so as to establish summary information on all the jets (areas, whether pure ghost, etc.)


Private Attributes

int _n_ghosts
double _ghost_area
std::vector< bool > _is_pure_ghost
std::vector< double > _areas
std::vector< PseudoJet_area_4vectors
double _max_ghost_perp2
bool _has_dangerous_particles
unsigned int _initial_hard_n

Static Private Attributes

LimitedWarning _warnings
 allow for warnings


Detailed Description

Class that behaves essentially like ClusterSequence except that it also provides access to the area of a jet (which will be a random quantity...

Figure out what to do about seeds later...)

Definition at line 48 of file ClusterSequenceActiveAreaExplicitGhosts.hh.


Constructor & Destructor Documentation

template<class L>
fastjet::ClusterSequenceActiveAreaExplicitGhosts::ClusterSequenceActiveAreaExplicitGhosts const std::vector< L > &  pseudojets,
const JetDefinition jet_def,
const GhostedAreaSpec area_spec,
const bool &  writeout_combinations = false
[inline]
 

constructor using a GhostedAreaSpec to specify how the area is to be measured

Definition at line 54 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

00058            : ClusterSequenceAreaBase() {
00059            std::vector<L> * ghosts = NULL;
00060            _initialise(pseudojets,jet_def,&area_spec,ghosts,0.0,
00061                        writeout_combinations); }

template<class L>
fastjet::ClusterSequenceActiveAreaExplicitGhosts::ClusterSequenceActiveAreaExplicitGhosts const std::vector< L > &  pseudojets,
const JetDefinition jet_def,
const std::vector< L > &  ghosts,
double  ghost_area,
const bool &  writeout_combinations = false
[inline]
 

Definition at line 64 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

00069            : ClusterSequenceAreaBase() {
00070            const GhostedAreaSpec * area_spec = NULL;
00071            _initialise(pseudojets,jet_def,area_spec,&ghosts,ghost_area,
00072                        writeout_combinations); }


Member Function Documentation

template<class L>
void fastjet::ClusterSequenceActiveAreaExplicitGhosts::_add_ghosts const std::vector< L > &  ghosts,
double  ghost_area
[private]
 

add an explicitly specified bunch of ghosts

Definition at line 215 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

References _ghost_area, _is_pure_ghost, fastjet::ClusterSequence::_jets, and _n_ghosts.

00217                                              {
00218 
00219   
00220   for (unsigned i = 0; i < ghosts.size(); i++) {
00221     _is_pure_ghost.push_back(true);
00222     _jets.push_back(ghosts[i]);
00223   }
00224   // and record some info about ghosts
00225   _ghost_area = ghost_area;
00226   _n_ghosts   = ghosts.size();
00227 }

void fastjet::ClusterSequenceActiveAreaExplicitGhosts::_add_ghosts const GhostedAreaSpec area_spec  )  [private]
 

adds the "ghost" momenta, which will be used to estimate the jet area

template<class L>
void fastjet::ClusterSequenceActiveAreaExplicitGhosts::_initialise const std::vector< L > &  pseudojets,
const JetDefinition jet_def,
const GhostedAreaSpec area_spec,
const std::vector< L > *  ghosts,
double  ghost_area,
const bool &  writeout_combinations
 

does the actual work of initialisation

Definition at line 162 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

00167                                               {
00168   // don't reserve space yet -- will be done below
00169 
00170   // insert initial jets this way so that any type L that can be
00171   // converted to a pseudojet will work fine (basically PseudoJet
00172   // and any type that has [] subscript access to the momentum
00173   // components, such as CLHEP HepLorentzVector).
00174   for (unsigned int i = 0; i < pseudojets.size(); i++) {
00175     PseudoJet mom(pseudojets[i]);
00176     //mom.set_user_index(0); // for user's particles (user index now lost...)
00177     _jets.push_back(mom);
00178     _is_pure_ghost.push_back(false);
00179   }
00180 
00181   _initial_hard_n = _jets.size();
00182 
00183   if (area_spec != NULL) {
00184     _add_ghosts(*area_spec);
00185   } else {
00186     _add_ghosts(*ghosts, ghost_area);
00187   }
00188 
00189   if (writeout_combinations) {
00190     std::cout << "# Printing particles including ghosts\n";
00191     for (unsigned j = 0; j < _jets.size(); j++) {
00192       printf("%5u %20.13f %20.13f %20.13e\n",
00193                j,_jets[j].rap(),_jets[j].phi_02pi(),_jets[j].kt2());
00194     }
00195     std::cout << "# Finished printing particles including ghosts\n";
00196   }
00197 
00198   // this will ensure that we can still point to jets without
00199   // difficulties arising!
00200   _jets.reserve(_jets.size()*2);
00201 
00202   // run the clustering
00203   _initialise_and_run(jet_def,writeout_combinations);
00204 
00205   // set up all other information
00206   _post_process();
00207 }

void fastjet::ClusterSequenceActiveAreaExplicitGhosts::_post_process  )  [private]
 

routine to be called after the processing is done so as to establish summary information on all the jets (areas, whether pure ghost, etc.)

virtual double fastjet::ClusterSequenceActiveAreaExplicitGhosts::area const PseudoJet jet  )  const [virtual]
 

returns the area of a jet

Reimplemented from fastjet::ClusterSequenceAreaBase.

Referenced by fastjet::ClusterSequenceActiveArea::_transfer_areas().

virtual PseudoJet fastjet::ClusterSequenceActiveAreaExplicitGhosts::area_4vector const PseudoJet jet  )  const [virtual]
 

returns a four vector corresponding to the sum (E-scheme) of the ghost four-vectors composing the jet area, normalised such that for a small contiguous area the p_t of the extended_area jet is equal to area of the jet.

Reimplemented from fastjet::ClusterSequenceAreaBase.

Referenced by fastjet::ClusterSequenceActiveArea::_transfer_areas().

virtual double fastjet::ClusterSequenceActiveAreaExplicitGhosts::empty_area const RangeDefinition range  )  const [virtual]
 

return the total area, up to |y|<maxrap, that consists of unclustered ghosts

Reimplemented from fastjet::ClusterSequenceAreaBase.

bool fastjet::ClusterSequenceActiveAreaExplicitGhosts::has_dangerous_particles  )  const [inline]
 

returns true if there are any particles whose transverse momentum if so low that there's a risk of the ghosts having modified the clustering sequence

Definition at line 120 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

Referenced by fastjet::ClusterSequenceActiveArea::_run_AA(), and fastjet::ClusterSequenceActiveArea::_throw_unless_jets_have_same_perp_or_E().

00120 {return _has_dangerous_particles;}

bool fastjet::ClusterSequenceActiveAreaExplicitGhosts::is_pure_ghost int  history_index  )  const
 

true if the entry in the history index corresponds to a ghost; if hist_ix does not correspond to an actual particle (i.e.

hist_ix < 0), then the result is false.

virtual bool fastjet::ClusterSequenceActiveAreaExplicitGhosts::is_pure_ghost const PseudoJet jet  )  const [virtual]
 

true if a jet is made exclusively of ghosts

Reimplemented from fastjet::ClusterSequenceAreaBase.

Referenced by fastjet::ClusterSequenceActiveArea::_transfer_areas(), and fastjet::ClusterSequenceActiveArea::_transfer_ghost_free_history().

double fastjet::ClusterSequenceActiveAreaExplicitGhosts::max_ghost_perp2  )  const [inline]
 

returns the largest squared transverse momentum among all ghosts

Definition at line 115 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

00115 {return _max_ghost_perp2;}

unsigned int fastjet::ClusterSequenceActiveAreaExplicitGhosts::n_hard_particles  )  const [inline]
 

returns the number of hard particles (i.e. those supplied by the user).

Definition at line 210 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

References _initial_hard_n.

00210 {return _initial_hard_n;}

double fastjet::ClusterSequenceActiveAreaExplicitGhosts::total_area  )  const
 

returns the total area under study


Member Data Documentation

std::vector<PseudoJet> fastjet::ClusterSequenceActiveAreaExplicitGhosts::_area_4vectors [private]
 

Definition at line 128 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

std::vector<double> fastjet::ClusterSequenceActiveAreaExplicitGhosts::_areas [private]
 

Definition at line 127 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

double fastjet::ClusterSequenceActiveAreaExplicitGhosts::_ghost_area [private]
 

Definition at line 125 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

Referenced by _add_ghosts().

bool fastjet::ClusterSequenceActiveAreaExplicitGhosts::_has_dangerous_particles [private]
 

Definition at line 132 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

unsigned int fastjet::ClusterSequenceActiveAreaExplicitGhosts::_initial_hard_n [private]
 

Definition at line 139 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

Referenced by n_hard_particles().

std::vector<bool> fastjet::ClusterSequenceActiveAreaExplicitGhosts::_is_pure_ghost [private]
 

Definition at line 126 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

Referenced by _add_ghosts().

double fastjet::ClusterSequenceActiveAreaExplicitGhosts::_max_ghost_perp2 [private]
 

Definition at line 131 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

int fastjet::ClusterSequenceActiveAreaExplicitGhosts::_n_ghosts [private]
 

Definition at line 124 of file ClusterSequenceActiveAreaExplicitGhosts.hh.

Referenced by _add_ghosts().

LimitedWarning fastjet::ClusterSequenceActiveAreaExplicitGhosts::_warnings [static, private]
 

allow for warnings

Reimplemented from fastjet::ClusterSequenceAreaBase.

Definition at line 133 of file ClusterSequenceActiveAreaExplicitGhosts.hh.


The documentation for this class was generated from the following file:
Generated on Mon Dec 3 11:54:16 2007 for fastjet by doxygen 1.3.4