35 #include "fastjet/ClusterSequence.hh"    36 #include "fastjet/NestedDefsPlugin.hh"    42 FASTJET_BEGIN_NAMESPACE      
    46 string NestedDefsPlugin::description ()
 const {
    49   desc << 
"NestedDefs: successive application of " ;
    51   for (list<JetDefinition>::const_iterator it=_defs.begin();it!=_defs.end();it++){
    52     desc << 
"Definition " << i++ << 
" [" << it->description() << 
"] - ";
    59   vector<PseudoJet> momenta;
    62   momenta = clust_seq.
jets();
    63   unsigned int step_n = momenta.size();
    67   vector<unsigned int> conversion_table(2*step_n);
    68   vector<unsigned int> new_conversion_table;
    69   for (
unsigned int i=0;i<step_n;i++)
    70     conversion_table[i]=i;
    77   list<JetDefinition>::const_iterator def_iterator = _defs.begin();
    78   unsigned int def_index=0;
    81   while (def_iterator!=_defs.end()){
    82     last_def = (def_index == (_defs.size()-1));
    89     new_conversion_table.clear();
    92     const vector<ClusterSequence::history_element> & step_history = step_cs.
history();
    97     vector<ClusterSequence::history_element>::const_iterator 
    98       hist_iterator = step_history.begin();
   100     for (
unsigned int i=step_n;i!=0;i--)
   103     while (hist_iterator != step_history.end()){
   105       if (hist_iterator->parent2 == ClusterSequence::BeamJet){
   108         unsigned int step_jet_index = step_cs.
history()[hist_iterator->parent1].jetp_index;
   113           momenta.push_back(step_cs.
jets()[step_jet_index]);
   114           new_conversion_table.push_back(conversion_table[step_jet_index]);
   119         unsigned int step_jet1_index = step_cs.
history()[hist_iterator->parent1].jetp_index;
   120         unsigned int step_jet2_index = step_cs.
history()[hist_iterator->parent2].jetp_index;
   121         PseudoJet newjet = step_cs.
jets()[hist_iterator->jetp_index];
   124                                                  conversion_table[step_jet2_index],
   125                                                  last_def ? hist_iterator->dij : 0.0,
   129         conversion_table[hist_iterator->jetp_index]=jet_k;
   139     step_n = momenta.size();
   140     for (
unsigned int i=0;i<step_n;i++)
   141       conversion_table[i] = new_conversion_table[i];
   150 FASTJET_END_NAMESPACE      
 const std::vector< PseudoJet > & jets() const 
allow the user to access the internally stored _jets() array, which contains both the initial particl...
 
void plugin_record_ij_recombination(int jet_i, int jet_j, double dij, int &newjet_k)
record the fact that there has been a recombination between jets()[jet_i] and jets()[jet_k], with the specified dij, and return the index (newjet_k) allocated to the new jet, whose momentum is assumed to be the 4-vector sum of that of jet_i and jet_j 
 
void plugin_record_iB_recombination(int jet_i, double diB)
record the fact that there has been a recombination between jets()[jet_i] and the beam...
 
const std::vector< history_element > & history() const 
allow the user to access the raw internal history. 
 
Class to contain pseudojets, including minimal information of use to jet-clustering routines...