fastjet::ClusterSequencePassiveArea 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 <ClusterSequencePassiveArea.hh>

Inheritance diagram for fastjet::ClusterSequencePassiveArea:

Inheritance graph
fastjet::ClusterSequence1GhostPassiveAreafastjet::ClusterSequenceActiveAreafastjet::ClusterSequenceAreaBasefastjet::ClusterSequence
[legend]
Collaboration diagram for fastjet::ClusterSequencePassiveArea:

Collaboration graph
fastjet::ClusterSequence1GhostPassiveAreafastjet::ClusterSequenceActiveAreafastjet::ClusterSequenceAreaBasefastjet::ClusterSequencefastjet::JetDefinitionfastjet::JetDefinition::DefaultRecombinerfastjet::JetDefinition::Recombinerfastjet::JetDefinition::PluginLimitedWarning
[legend]
List of all members.

Public Member Functions

template<class L>
 ClusterSequencePassiveArea (const std::vector< L > &pseudojets, const JetDefinition &jet_def, const GhostedAreaSpec &area_spec, const bool &writeout_combinations=false)
 constructor based on JetDefinition and PassiveAreaSpec
virtual double empty_area (const RangeDefinition &range) const
 return an empty area that's appropriate to the passive area determination carried out

Private Member Functions

void _initialise_and_run_PA (const JetDefinition &jet_def, const GhostedAreaSpec &area_spec, const bool &writeout_combinations=false)
 global routine for initialising and running a passive area that is correct in general, but that chooses an optimal approach for various special cases.

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 ClusterSequencePassiveArea.hh.


Constructor & Destructor Documentation

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

constructor based on JetDefinition and PassiveAreaSpec

Definition at line 76 of file ClusterSequencePassiveArea.hh.

00079                                      {
00080 
00081   // transfer the initial jets (type L) into our own array
00082   _transfer_input_jets(pseudojets);
00083 
00084   // run the clustering for passive areas
00085   _initialise_and_run_PA(jet_def, area_spec, writeout_combinations);
00086 
00087 }


Member Function Documentation

double fastjet::ClusterSequencePassiveArea::empty_area ( const RangeDefinition range  )  const [virtual]

return an empty area that's appropriate to the passive area determination carried out

Reimplemented from fastjet::ClusterSequenceActiveArea.

Definition at line 97 of file ClusterSequencePassiveArea.cc.

References fastjet::ClusterSequenceActiveArea::empty_area(), fastjet::ClusterSequenceAreaBase::empty_area(), fastjet::ClusterSequence::jet_def(), and fastjet::kt_algorithm.

00097                                                                                   {
00098   if (jet_def().jet_algorithm() == kt_algorithm) {
00099     // run the naive algorithm
00100     return ClusterSequenceAreaBase::empty_area(range);
00101   } else {
00102     return ClusterSequence1GhostPassiveArea::empty_area(range);
00103   }
00104 }

void fastjet::ClusterSequencePassiveArea::_initialise_and_run_PA ( const JetDefinition jet_def,
const GhostedAreaSpec area_spec,
const bool &  writeout_combinations = false 
) [private]

global routine for initialising and running a passive area that is correct in general, but that chooses an optimal approach for various special cases.

Definition at line 43 of file ClusterSequencePassiveArea.cc.

References fastjet::ClusterSequenceActiveArea::_average_area, fastjet::ClusterSequenceActiveArea::_average_area_4vector, fastjet::ClusterSequence::_history, fastjet::ClusterSequence1GhostPassiveArea::_initialise_and_run_1GPA(), fastjet::ClusterSequenceActiveArea::_initialise_and_run_AA(), fastjet::ClusterSequence::_jet_def, fastjet::ClusterSequence::_jets, fastjet::ClusterSequenceActiveArea::_resize_and_zero_AA(), fastjet::antikt_algorithm, fastjet::cambridge_algorithm, fastjet::cambridge_for_passive_algorithm, fastjet::ClusterSequence::Invalid, fastjet::JetDefinition::jet_algorithm(), fastjet::ClusterSequence::jet_def(), fastjet::kt_algorithm, fastjet::GhostedAreaSpec::mean_ghost_kt(), fastjet::JetDefinition::plugin(), fastjet::plugin_algorithm, fastjet::JetDefinition::set_jet_finder(), and fastjet::ClusterSequence::transfer_from_sequence().

00046                                                     {
00047 
00048   if (jet_def.jet_algorithm() == kt_algorithm) {
00049     // first run the passive area
00050     ClusterSequenceVoronoiArea csva(_jets,jet_def,VoronoiAreaSpec(1.0));
00051     // now set up and transfer relevant information    
00052     // first the clustering sequence
00053     transfer_from_sequence(csva);
00054     // then the areas
00055     _resize_and_zero_AA();
00056     for (unsigned i = 0; i < _history.size(); i++) {
00057       int ijetp = _history[i].jetp_index;
00058       if (ijetp != Invalid) {
00059         _average_area[i] = csva.area(_jets[ijetp]);
00060         _average_area_4vector[i] = csva.area_4vector(_jets[ijetp]);
00061       }
00062     }
00063 
00064   } else if (jet_def.jet_algorithm() == cambridge_algorithm) {
00065     // run a variant of the cambridge algorithm that has been hacked
00066     // to deal with passive areas
00067     JetDefinition tmp_jet_def = jet_def;
00068     tmp_jet_def.set_jet_finder(cambridge_for_passive_algorithm);
00069     tmp_jet_def.set_extra_param(sqrt(area_spec.mean_ghost_kt()));
00070     _initialise_and_run_AA(tmp_jet_def, area_spec, writeout_combinations);
00071     _jet_def = jet_def;
00072 
00073   } else if (jet_def.jet_algorithm() == antikt_algorithm) {
00074     // for the antikt algorithm, passive and active are identical
00075     _initialise_and_run_AA(jet_def, area_spec, writeout_combinations);
00076 
00077   } else if (jet_def.jet_algorithm() == plugin_algorithm &&
00078              jet_def.plugin()->supports_ghosted_passive_areas()) {
00079     // for some plugin algorithms, one can "prime" the algorithm with information
00080     // about the ghost scale, and then an "AA" run will actually give a passive
00081     // area
00082     double ghost_sep_scale_store = jet_def.plugin()->ghost_separation_scale();
00083     jet_def.plugin()->set_ghost_separation_scale(sqrt(area_spec.mean_ghost_kt()));
00084     _initialise_and_run_AA(jet_def, area_spec, writeout_combinations);
00085 
00086     // restore the original ghost_sep_scale
00087     jet_def.plugin()->set_ghost_separation_scale(ghost_sep_scale_store);
00088 
00089   } else {
00090     // for a generic algorithm, just run the 1GhostPassiveArea
00091     _initialise_and_run_1GPA(jet_def, area_spec, writeout_combinations);
00092   }
00093 }


The documentation for this class was generated from the following files:
Generated on Thu Jan 3 19:05:17 2008 for fastjet by  doxygen 1.5.2