32 #include "fastjet/ClusterSequence.hh"    33 #include "fastjet/ATLASConePlugin.hh"    36 #include "CommonUtils.hh"    37 #include "JetConeFinderTool.hh"    38 #include "JetSplitMergeTool.hh"    44 FASTJET_BEGIN_NAMESPACE      
    48 bool ATLASConePlugin::_first_time = 
true;
    50 string ATLASConePlugin::description ()
 const {
    52   desc << 
"ATLASCone plugin with R = "<< _radius 
    53        << 
", seed threshold = " << _seedPt
    54        << 
", overlap threshold f = " << _f;
    68   atlas::JetConeFinderTool::jetcollection_t jets_ptr;
    69   vector<atlas::Jet*> particles_ptr;
    71   for (
unsigned int i=0 ; i<clust_seq.
jets().size() ; i++) {
    75     atlas::Jet *particle = 
new atlas::Jet(mom.px(), mom.py(), mom.pz(), mom.E(), i);
    76     particles_ptr.push_back(particle);
    79     atlas::Jet *jet = 
new atlas::Jet;
    80     jet->set_index(particle->index());
    81     jet->addConstituent(particle);
    84     jets_ptr.push_back(jet);
    91   atlas::JetConeFinderTool stable_cone_finder;
    94   stable_cone_finder.m_coneR  = _radius;
    95   stable_cone_finder.m_seedPt = _seedPt;
   100   stable_cone_finder.execute(jets_ptr);
   106   atlas::JetSplitMergeTool split_merge;
   109   split_merge.m_f = _f;
   113   split_merge.execute(&jets_ptr);
   119   for (atlas::Jet::jet_list_t::iterator jet_it = jets_ptr.begin() ;
   120          jet_it != jets_ptr.end(); jet_it++){
   123     atlas::Jet::constit_vect_t::iterator constit_it = (*jet_it)->firstConstituent();
   125     int jet_k = (*constit_it)->index();
   129     while (constit_it != (*jet_it)->lastConstituent()){
   133       int jet_j = (*constit_it)->index();
   149     double d_iB = clust_seq.
jets()[jet_k].perp2();
   154   clear_list(particles_ptr);
   155   clear_list(jets_ptr);
   159 void ATLASConePlugin::_print_banner(ostream *ostr)
 const{
   160   if (! _first_time) 
return;
   166   (*ostr) << 
"#-------------------------------------------------------------------------" << endl;
   167   (*ostr) << 
"# You are running the ATLAS Cone plugin for FastJet                       " << endl;
   168   (*ostr) << 
"# Original code from SpartyJet; interface by the FastJet authors          " << endl;
   169   (*ostr) << 
"# If you use this plugin, please cite                                     " << endl;
   170   (*ostr) << 
"#   P.A. Delsart, K. Geerlings, J. Huston, B. Martin and C. Vermilion,    " << endl;
   171   (*ostr) << 
"#   SpartyJet, http://projects.hepforge.org/spartyjet                     " << endl;
   172   (*ostr) << 
"# in addition to the usual FastJet reference.                             " << endl;
   173   (*ostr) << 
"#-------------------------------------------------------------------------" << endl;
   180 FASTJET_END_NAMESPACE      
 
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...
 
static std::ostream * fastjet_banner_stream()
returns a pointer to the stream to be used to print banners (cout by default). 
 
Class to contain pseudojets, including minimal information of use to jet-clustering routines...
 
const std::vector< PseudoJet > & jets() const
allow the user to access the internally stored _jets() array, which contains both the initial particl...