#include <ClusterSequencePassiveArea.hh>
Inheritance diagram for fastjet::ClusterSequencePassiveArea:


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. | |
Figure out what to do about seeds later...)
Definition at line 48 of file ClusterSequencePassiveArea.hh.
|
||||||||||||||||||||||||
|
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 }
|
|
||||||||||||||||
|
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::ClusterSequenceVoronoiArea::area(), fastjet::ClusterSequenceVoronoiArea::area_4vector(), fastjet::cambridge_algorithm, fastjet::cambridge_for_passive_algorithm, fastjet::ClusterSequence::Invalid, fastjet::JetDefinition::jet_algorithm(), fastjet::kt_algorithm, fastjet::GhostedAreaSpec::mean_ghost_kt(), fastjet::JetDefinition::plugin(), fastjet::plugin_algorithm, fastjet::JetDefinition::set_extra_param(), 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 }
|
|
|
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::JetDefinition::jet_algorithm(), 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 }
|
1.3.4