|
fastjet 2.4.3
|
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>


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) |
| does the initialisation and running specific to the passive areas class | |
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.
| ClusterSequencePassiveArea::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
Definition at line 76 of file ClusterSequencePassiveArea.hh.
{
// transfer the initial jets (type L) into our own array
_transfer_input_jets(pseudojets);
// run the clustering for passive areas
_initialise_and_run_PA(jet_def, area_spec, writeout_combinations);
}
| void ClusterSequencePassiveArea::_initialise_and_run_PA | ( | const JetDefinition & | jet_def, |
| const GhostedAreaSpec & | area_spec, | ||
| const bool & | writeout_combinations = false |
||
| ) | [private] |
does the initialisation and running specific to the passive areas class
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 antikt_algorithm, ClusterSequenceVoronoiArea::area(), ClusterSequenceVoronoiArea::area_4vector(), cambridge_algorithm, cambridge_for_passive_algorithm, JetDefinition::jet_algorithm(), kt_algorithm, JetDefinition::plugin(), plugin_algorithm, JetDefinition::set_extra_param(), and JetDefinition::set_jet_finder().
{
if (jet_def.jet_algorithm() == kt_algorithm) {
// first run the passive area
ClusterSequenceVoronoiArea csva(_jets,jet_def,VoronoiAreaSpec(1.0));
// now set up and transfer relevant information
// first the clustering sequence
transfer_from_sequence(csva);
// then the areas
_resize_and_zero_AA();
for (unsigned i = 0; i < _history.size(); i++) {
int ijetp = _history[i].jetp_index;
if (ijetp != Invalid) {
_average_area[i] = csva.area(_jets[ijetp]);
_average_area_4vector[i] = csva.area_4vector(_jets[ijetp]);
}
}
} else if (jet_def.jet_algorithm() == cambridge_algorithm) {
// run a variant of the cambridge algorithm that has been hacked
// to deal with passive areas
JetDefinition tmp_jet_def = jet_def;
tmp_jet_def.set_jet_finder(cambridge_for_passive_algorithm);
tmp_jet_def.set_extra_param(sqrt(area_spec.mean_ghost_kt()));
_initialise_and_run_AA(tmp_jet_def, area_spec, writeout_combinations);
_jet_def = jet_def;
} else if (jet_def.jet_algorithm() == antikt_algorithm) {
// for the antikt algorithm, passive and active are identical
_initialise_and_run_AA(jet_def, area_spec, writeout_combinations);
} else if (jet_def.jet_algorithm() == plugin_algorithm &&
jet_def.plugin()->supports_ghosted_passive_areas()) {
// for some plugin algorithms, one can "prime" the algorithm with information
// about the ghost scale, and then an "AA" run will actually give a passive
// area
double ghost_sep_scale_store = jet_def.plugin()->ghost_separation_scale();
jet_def.plugin()->set_ghost_separation_scale(sqrt(area_spec.mean_ghost_kt()));
_initialise_and_run_AA(jet_def, area_spec, writeout_combinations);
// restore the original ghost_sep_scale
jet_def.plugin()->set_ghost_separation_scale(ghost_sep_scale_store);
} else {
// for a generic algorithm, just run the 1GhostPassiveArea
_initialise_and_run_1GPA(jet_def, area_spec, writeout_combinations);
}
}
| double ClusterSequencePassiveArea::empty_area | ( | const RangeDefinition & | range | ) | const [virtual] |
return an empty area that's appropriate to the passive area determination carried out
Reimplemented from ClusterSequenceActiveArea.
Definition at line 97 of file ClusterSequencePassiveArea.cc.
References ClusterSequenceActiveArea::empty_area(), ClusterSequenceAreaBase::empty_area(), and kt_algorithm.
{
if (jet_def().jet_algorithm() == kt_algorithm) {
// run the naive algorithm
return ClusterSequenceAreaBase::empty_area(range);
} else {
return ClusterSequence1GhostPassiveArea::empty_area(range);
}
}
1.7.3