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