#include <ATLASConePlugin.hh>


Public Member Functions | |
| ATLASConePlugin (double radius, double seedPt=2.0, double f=0.5) | |
| Main constructor for the ATLASCone Plugin class. | |
| ATLASConePlugin (const ATLASConePlugin &plugin) | |
| copy constructor | |
| virtual std::string | description () const |
| return a textual description of the jet-definition implemented in this plugin | |
| virtual void | run_clustering (ClusterSequence &) const |
given a ClusterSequence that has been filled up with initial particles, the following function should fill up the rest of the ClusterSequence, using the following member functions of ClusterSequence:
| |
| virtual double | R () const |
| the plugin mechanism's standard way of accessing the jet radius here we return the R of the last alg in the list | |
| double | seedPt () const |
| seed threshold | |
| double | f () const |
| split-merge overlap threshold | |
Private Attributes | |
| double | _radius |
| the cone radius | |
| double | _seedPt |
| the pt seed threshold used in stable-cone search | |
| double | _f |
| the overlap thresholod used in the split-merge | |
Definition at line 52 of file ATLASConePlugin.hh.
| fastjet::ATLASConePlugin::ATLASConePlugin | ( | double | radius, | |
| double | seedPt = 2.0, |
|||
| double | f = 0.5 | |||
| ) | [inline] |
Main constructor for the ATLASCone Plugin class.
Apparently the default parameters in the ATLAS software are the ones used here. SpartyJet uses a radius of 0.7, a seed threshold of 1 GeV and an overlap threshold of 0.75 For the ATLAS SW defaults, see http://atlas-sw.cern.ch/cgi-bin/viewcvs-atlas.cgi/groups/JetRoutines/SpartyJet/atlas/ in the JetdoneFinderTools.cxx (rev1.1) and JetSplitMergeTool.cxx (rev1.1) For SpartyJet, see atlas/ConeFinderTool.h
Finally, to agree with FastJet standards, we do not specify a default R, that in the ATLAS code is 0.7
Definition at line 66 of file ATLASConePlugin.hh.
| fastjet::ATLASConePlugin::ATLASConePlugin | ( | const ATLASConePlugin & | plugin | ) | [inline] |
| string fastjet::ATLASConePlugin::description | ( | ) | const [virtual] |
return a textual description of the jet-definition implemented in this plugin
Implements fastjet::JetDefinition::Plugin.
Definition at line 48 of file ATLASConePlugin.cc.
00048 { 00049 ostringstream desc; 00050 desc << "ATLASCone plugin"; 00051 return desc.str(); 00052 }
| double fastjet::ATLASConePlugin::f | ( | ) | const [inline] |
| virtual double fastjet::ATLASConePlugin::R | ( | ) | const [inline, virtual] |
the plugin mechanism's standard way of accessing the jet radius here we return the R of the last alg in the list
Implements fastjet::JetDefinition::Plugin.
Definition at line 80 of file ATLASConePlugin.hh.
00080 {return _radius;}
| void fastjet::ATLASConePlugin::run_clustering | ( | ClusterSequence & | ) | const [virtual] |
given a ClusterSequence that has been filled up with initial particles, the following function should fill up the rest of the ClusterSequence, using the following member functions of ClusterSequence:
..)
Implements fastjet::JetDefinition::Plugin.
Definition at line 54 of file ATLASConePlugin.cc.
References _f, _radius, _seedPt, fastjet::atlas::Jet::addConstituent(), fastjet::atlas::clear_list(), fastjet::PseudoJet::E(), fastjet::atlas::JetSplitMergeTool::execute(), fastjet::atlas::JetConeFinderTool::execute(), fastjet::atlas::Jet::index(), fastjet::ClusterSequence::jets(), fastjet::atlas::JetConeFinderTool::m_coneR, fastjet::atlas::JetSplitMergeTool::m_f, fastjet::atlas::JetConeFinderTool::m_seedPt, fastjet::ClusterSequence::plugin_record_iB_recombination(), fastjet::ClusterSequence::plugin_record_ij_recombination(), fastjet::PseudoJet::px(), fastjet::PseudoJet::py(), fastjet::PseudoJet::pz(), and fastjet::atlas::Jet::set_index().
00054 { 00055 00056 // transfer the list of PseudoJet into a atlas::Jet::jet_list_t 00057 // jet_list_t is a vector<Jet*> 00058 // We set the index of the 4-vect to trace the constituents at the end 00059 //------------------------------------------------------------------ 00060 // cout << "ATLASConePlugin: transferring vectors from ClusterSequence" << endl; 00061 atlas::JetConeFinderTool::jetcollection_t jets_ptr; 00062 vector<atlas::Jet*> particles_ptr; 00063 00064 for (unsigned int i=0 ; i<clust_seq.jets().size() ; i++) { 00065 const PseudoJet & mom = clust_seq.jets()[i]; 00066 00067 // first create the particle 00068 atlas::Jet *particle = new atlas::Jet(mom.px(), mom.py(), mom.pz(), mom.E(), i); 00069 particles_ptr.push_back(particle); 00070 00071 // then add it to the list of particles we'll use for teh clustering 00072 atlas::Jet *jet = new atlas::Jet; 00073 jet->set_index(particle->index()); 00074 jet->addConstituent(particle); 00075 00076 // and finally add that one to the list of jets 00077 jets_ptr.push_back(jet); 00078 } 00079 // cout << "ATLASCone: " << jets_ptr.size() << " particles to cluster" << endl; 00080 00081 // search the stable cones 00082 //------------------------------------------------------------------ 00083 // cout << "ATLASConePlugin: searching for stable cones" << endl; 00084 atlas::JetConeFinderTool stable_cone_finder; 00085 00086 // set the parameters 00087 stable_cone_finder.m_coneR = _radius; 00088 stable_cone_finder.m_seedPt = _seedPt; 00089 00090 // really do the search. 00091 // Note that the list of protocones is returned 00092 // through the argument 00093 stable_cone_finder.execute(jets_ptr); 00094 // cout << "ATLASCone: " << jets_ptr.size() << " stable cones found" << endl; 00095 00096 // perform the split-merge 00097 //------------------------------------------------------------------ 00098 // cout << "ATLASConePlugin: running the split-merge" << endl; 00099 atlas::JetSplitMergeTool split_merge; 00100 00101 // set the parameters 00102 split_merge.m_f = _f; 00103 00104 // do the work 00105 // again, the list of jets is returned through the argument 00106 split_merge.execute(&jets_ptr); 00107 // cout << "ATLASCone: " << jets_ptr.size() << " jets after split--merge" << endl; 00108 00109 // build the FastJet jets (a la SISConePlugin) 00110 //------------------------------------------------------------------ 00111 // cout << "ATLASConePlugin: backporting jets to the ClusterSequence" << endl; 00112 for (atlas::Jet::jet_list_t::iterator jet_it = jets_ptr.begin() ; 00113 jet_it != jets_ptr.end(); jet_it++){ 00114 // iterate over the constituents, starting from the first one 00115 // that we just take as a reference 00116 atlas::Jet::constit_vect_t::iterator constit_it = (*jet_it)->firstConstituent(); 00117 // cout << " atlas: jet has " << (*jet_it)->getConstituentNum() << " constituents" << endl; 00118 int jet_k = (*constit_it)->index(); 00119 constit_it++; 00120 00121 // loop over the remaining particles 00122 while (constit_it != (*jet_it)->lastConstituent()){ 00123 // take the last result of the merge 00124 int jet_i = jet_k; 00125 // and the next element of the jet 00126 int jet_j = (*constit_it)->index(); 00127 // and merge them (with a fake dij) 00128 double dij = 0.0; 00129 00130 // create the new jet by hand so that we can adjust its user index 00131 // Note again the use of the E-scheme recombination here! 00132 PseudoJet newjet = clust_seq.jets()[jet_i] + clust_seq.jets()[jet_j]; 00133 clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, newjet, jet_k); 00134 00135 // jump to the next constituent 00136 constit_it++; 00137 } 00138 00139 // we have merged all the jet's particles into a single object, so now 00140 // "declare" it to be a beam (inclusive) jet. 00141 // [NB: put a sensible looking d_iB just to be nice...] 00142 double d_iB = clust_seq.jets()[jet_k].perp2(); 00143 clust_seq.plugin_record_iB_recombination(jet_k, d_iB); 00144 } 00145 00146 // cout << "ATLASConePlugin: Bye" << endl; 00147 clear_list(particles_ptr); 00148 }
| double fastjet::ATLASConePlugin::seedPt | ( | ) | const [inline] |
double fastjet::ATLASConePlugin::_f [private] |
the overlap thresholod used in the split-merge
Definition at line 93 of file ATLASConePlugin.hh.
Referenced by run_clustering().
double fastjet::ATLASConePlugin::_radius [private] |
double fastjet::ATLASConePlugin::_seedPt [private] |
the pt seed threshold used in stable-cone search
Definition at line 92 of file ATLASConePlugin.hh.
Referenced by run_clustering().
1.5.7.1