#include <FastJets.hh>
Definition at line 41 of file FastJets.hh.
Public Types | |
enum | JetAlgName { KT, CAM, SISCONE, ANTIKT, PXCONE, CDFJETCLU, CDFMIDPOINT, D0ILCONE, JADE, DURHAM, TRACKJET } |
Wrapper enum for selected Fastjet jet algorithms. More... | |
typedef Jet | entity_type |
typedef Jets | collection_type |
Public Member Functions | |
void | reset () |
Reset the projection. Jet def, etc. are unchanged. | |
void | useJetArea (fastjet::AreaDefinition *adef) |
Use provided jet area definition. | |
size_t | numJets (double ptmin=0.0) const |
Number of jets above the ![]() | |
size_t | size () const |
Number of jets. | |
Jets | jets (double ptmin=0.0) const |
Get the jets (unordered). | |
Jets | jetsByPt (double ptmin=0.0) const |
Get the jets, ordered by ![]() | |
Jets | jetsByE (double ptmin=0.0) const |
Get the jets, ordered by ![]() | |
Jets | jetsByRapidity (double ptmin=0.0) const |
Get the jets, ordered by rapidity. | |
PseudoJets | pseudoJets (double ptmin=0.0) const |
Get the pseudo jets (unordered). | |
PseudoJets | pseudoJetsByPt (double ptmin=0.0) const |
Get the pseudo jets, ordered by ![]() | |
PseudoJets | pseudoJetsByE (double ptmin=0.0) const |
Get the pseudo jets, ordered by ![]() | |
PseudoJets | pseudoJetsByRapidity (double ptmin=0.0) const |
Get the pseudo jets, ordered by rapidity. | |
const fastjet::ClusterSequence * | clusterSeq () const |
Return the cluster sequence (FastJet-specific). | |
const fastjet::ClusterSequenceArea * | clusterSeqArea () const |
Return the cluster sequence (FastJet-specific). | |
const fastjet::JetDefinition & | jetDef () const |
Return the jet definition (FastJet-specific). | |
const fastjet::AreaDefinition * | areaDef () const |
Return the area definition (FastJet-specific). May be null. | |
vector< double > | ySubJet (const fastjet::PseudoJet &jet) const |
Get the subjet splitting variables for the given jet. | |
fastjet::PseudoJet | splitJet (fastjet::PseudoJet jet, double &last_R) const |
Split a jet a la PRL100,242001(2008). Based on code from G.Salam, A.Davison. | |
fastjet::PseudoJet | filterJet (fastjet::PseudoJet jet, double &stingy_R, const double def_R) const |
Filter a jet a la PRL100,242001(2008). Based on code from G.Salam, A.Davison. | |
void | calc (const ParticleVector &ps) |
Do the calculation locally (no caching). | |
template<typename F> | |
Jets | jets (F sorter, double ptmin=0.0) const |
Get the jets, ordered by supplied sorting function object. | |
Jets | jetsByEt (double ptmin=0.0) const |
Get the jets, ordered by ![]() | |
collection_type | entities () const |
Template-usable interface common to FinalState. | |
bool | before (const Projection &p) const |
virtual const std::set< PdgIdPair > | beamPairs () const |
virtual std::string | name () const |
Get the name of the projection. | |
Projection & | addPdgIdPair (PdgId beam1, PdgId beam2) |
Add a colliding beam pair. | |
Log & | getLog () const |
Get a Log object based on the getName() property of the calling projection object. | |
void | setName (const std::string &name) |
Used by derived classes to set their name. | |
Constructors etc. | |
FastJets (const FinalState &fsp, JetAlgName alg, double rparameter, double seed_threshold=1.0) | |
FastJets (const FinalState &fsp, fastjet::JetAlgorithm type, fastjet::RecombinationScheme recom, double rparameter) | |
Native argument constructor, using FastJet alg/scheme enums. | |
FastJets (const FinalState &fsp, fastjet::JetDefinition::Plugin &plugin) | |
Explicitly pass in an externally-constructed plugin. | |
virtual const Projection * | clone () const |
Clone on the heap. | |
Projection "getting" functions | |
std::set< ConstProjectionPtr > | getProjections () const |
Get the contained projections, including recursion. | |
template<typename PROJ> | |
const PROJ & | getProjection (const std::string &name) const |
Get the named projection, specifying return type via a template argument. | |
const Projection & | getProjection (const std::string &name) const |
Projection applying functions | |
template<typename PROJ> | |
const PROJ & | applyProjection (const Event &evt, const PROJ &proj) const |
Apply the supplied projection on event. | |
template<typename PROJ> | |
const PROJ & | applyProjection (const Event &evt, const Projection &proj) const |
Apply the supplied projection on event. | |
template<typename PROJ> | |
const PROJ & | applyProjection (const Event &evt, const std::string &name) const |
Apply the named projection on event. | |
Protected Member Functions | |
void | project (const Event &e) |
Perform the projection on the Event. | |
int | compare (const Projection &p) const |
Compare projections. | |
Cmp< Projection > | mkNamedPCmp (const Projection &otherparent, const std::string &pname) const |
Cmp< Projection > | mkPCmp (const Projection &otherparent, const std::string &pname) const |
ProjectionHandler & | getProjHandler () const |
Get a reference to the ProjectionHandler for this thread. | |
Projection registration functions | |
template<typename PROJ> | |
const PROJ & | addProjection (const PROJ &proj, const std::string &name) |
const Projection & | _addProjection (const Projection &proj, const std::string &name) |
Untemplated function to do the work... | |
Protected Attributes | |
bool | _allowProjReg |
Flag to forbid projection registration in analyses until the init phase. | |
Private Member Functions | |
Jets | _pseudojetsToJets (const PseudoJets &pjets) const |
Private Attributes | |
fastjet::JetDefinition | _jdef |
Jet definition. | |
fastjet::AreaDefinition * | _adef |
Pointer to user-handled area definition. | |
shared_ptr < fastjet::ClusterSequence > | _cseq |
Cluster sequence. | |
shared_ptr < fastjet::JetDefinition::Plugin > | _plugin |
FastJet external plugin. | |
map< int, vector< double > > | _yscales |
Map of vectors of y scales. This is mutable so we can use caching/lazy evaluation. | |
map< int, Particle > | _particles |
set of particles sorted by their PT2 | |
Friends | |
class | Event |
Event is a friend. | |
class | Cmp< Projection > |
The Cmp specialization for Projection is a friend. | |
class | Projectionhandler |
typedef Jet entity_type [inherited] |
typedef Jets collection_type [inherited] |
enum JetAlgName |
FastJets | ( | const FinalState & | fsp, | |
JetAlgName | alg, | |||
double | rparameter, | |||
double | seed_threshold = 1.0 | |||
) |
"Wrapped" argument constructor using Rivet enums for most common jet alg choices (including some plugins). For the built-in algs, E-scheme recombination is used. For full control of FastJet built-in jet algs, use the native arg constructor.
Definition at line 17 of file FastJets.cc.
References FastJets::_jdef, FastJets::_plugin, FastJets::ANTIKT, FastJets::CAM, FastJets::CDFJETCLU, FastJets::CDFMIDPOINT, FastJets::D0ILCONE, Log::DEBUG, FastJets::DURHAM, Projection::getLog(), FastJets::JADE, FastJets::KT, FastJets::PXCONE, Projection::setName(), FastJets::SISCONE, and FastJets::TRACKJET.
Referenced by FastJets::clone().
00018 : JetAlg(fsp), _adef(0) 00019 { 00020 setName("FastJets"); 00021 getLog() << Log::DEBUG << "R parameter = " << rparameter << endl; 00022 getLog() << Log::DEBUG << "Seed threshold = " << seed_threshold << endl; 00023 if (alg == KT) { 00024 _jdef = fastjet::JetDefinition(fastjet::kt_algorithm, rparameter, fastjet::E_scheme); 00025 } else if (alg == CAM) { 00026 _jdef = fastjet::JetDefinition(fastjet::cambridge_algorithm, rparameter, fastjet::E_scheme); 00027 } else if (alg == ANTIKT) { 00028 _jdef = fastjet::JetDefinition(fastjet::antikt_algorithm, rparameter, fastjet::E_scheme); 00029 } else if (alg == DURHAM) { 00030 _jdef = fastjet::JetDefinition(fastjet::ee_kt_algorithm, fastjet::E_scheme); 00031 } else { 00032 // Plugins: 00033 if (alg == SISCONE) { 00034 const double OVERLAP_THRESHOLD = 0.75; 00035 _plugin.reset(new fastjet::SISConePlugin(rparameter, OVERLAP_THRESHOLD)); 00036 } else if (alg == PXCONE) { 00037 throw Error("PxCone currently not supported, since FastJet doesn't install it by default"); 00038 //_plugin.reset(new fastjet::PxConePlugin(rparameter)); 00039 } else if (alg == CDFJETCLU) { 00040 const double OVERLAP_THRESHOLD = 0.75; 00041 _plugin.reset(new fastjet::CDFJetCluPlugin(rparameter, OVERLAP_THRESHOLD, seed_threshold)); 00042 } else if (alg == CDFMIDPOINT) { 00043 const double OVERLAP_THRESHOLD = 0.75; 00044 _plugin.reset(new fastjet::CDFMidPointPlugin(rparameter, OVERLAP_THRESHOLD, seed_threshold)); 00045 } else if (alg == D0ILCONE) { 00046 const double min_jet_Et = 6.0; 00047 _plugin.reset(new fastjet::D0RunIIConePlugin(rparameter, min_jet_Et)); 00048 } else if (alg == JADE) { 00049 _plugin.reset(new fastjet::JadePlugin()); 00050 } else if (alg == TRACKJET) { 00051 _plugin.reset(new fastjet::TrackJetPlugin(rparameter)); 00052 } 00053 _jdef = fastjet::JetDefinition(_plugin.get()); 00054 } 00055 }
FastJets | ( | const FinalState & | fsp, | |
fastjet::JetAlgorithm | type, | |||
fastjet::RecombinationScheme | recom, | |||
double | rparameter | |||
) |
Native argument constructor, using FastJet alg/scheme enums.
Definition at line 58 of file FastJets.cc.
References FastJets::_jdef, and Projection::setName().
00060 : JetAlg(fsp), _adef(0) 00061 { 00062 setName("FastJets"); 00063 _jdef = fastjet::JetDefinition(type, rparameter, recom); 00064 }
FastJets | ( | const FinalState & | fsp, | |
fastjet::JetDefinition::Plugin & | plugin | |||
) |
Explicitly pass in an externally-constructed plugin.
Definition at line 67 of file FastJets.cc.
References FastJets::_jdef, FastJets::_plugin, and Projection::setName().
00069 : JetAlg(fsp), _adef(0) 00070 { 00071 setName("FastJets"); 00072 /// @todo Should we be copying the plugin? 00073 _plugin.reset(&plugin); 00074 _jdef = fastjet::JetDefinition(_plugin.get()); 00075 }
virtual const Projection* clone | ( | ) | const [inline, virtual] |
Clone on the heap.
Implements JetAlg.
Definition at line 71 of file FastJets.hh.
References FastJets::FastJets().
00071 { 00072 return new FastJets(*this); 00073 }
void reset | ( | ) | [virtual] |
Reset the projection. Jet def, etc. are unchanged.
Implements JetAlg.
Definition at line 138 of file FastJets.cc.
References FastJets::_particles, and FastJets::_yscales.
00138 { 00139 _yscales.clear(); 00140 _particles.clear(); 00141 /// @todo _cseq = fastjet::ClusterSequence(); 00142 }
void useJetArea | ( | fastjet::AreaDefinition * | adef | ) | [inline] |
Use provided jet area definition.
Definition at line 86 of file FastJets.hh.
References FastJets::_adef.
00086 { 00087 _adef = adef; 00088 }
size_t numJets | ( | double | ptmin = 0.0 |
) | const |
Number of jets above the cut.
Definition at line 145 of file FastJets.cc.
References FastJets::_cseq.
Referenced by FastJets::size().
00145 { 00146 if (_cseq.get() != 0) { 00147 return _cseq->inclusive_jets(ptmin).size(); 00148 } else { 00149 return 0; 00150 } 00151 }
size_t size | ( | ) | const [inline, virtual] |
Number of jets.
Implements JetAlg.
Definition at line 94 of file FastJets.hh.
References FastJets::numJets().
Referenced by CDF_2008_S8095620::analyze(), and CDF_2006_S6653332::analyze().
00094 { 00095 return numJets(); 00096 }
Jets jets | ( | double | ptmin = 0.0 |
) | const [virtual] |
Get the jets (unordered).
Implements JetAlg.
Definition at line 154 of file FastJets.cc.
References FastJets::_pseudojetsToJets(), and FastJets::pseudoJets().
Referenced by CDF_2008_S7540469::analyze().
00154 { 00155 Jets rtn = _pseudojetsToJets(pseudoJets(ptmin)); 00156 return rtn; 00157 }
Jets jetsByPt | ( | double | ptmin = 0.0 |
) | const |
Get the jets, ordered by .
Reimplemented from JetAlg.
Definition at line 160 of file FastJets.cc.
References FastJets::_pseudojetsToJets(), and FastJets::pseudoJetsByPt().
Referenced by STAR_2006_S6870392::analyze(), MC_ZZJETS::analyze(), MC_ZJETS::analyze(), MC_WWJETS::analyze(), MC_WJETS::analyze(), MC_SUSY::analyze(), MC_PHOTONJETS::analyze(), MC_LEADINGJETS::analyze(), MC_JetAnalysis::analyze(), MC_HJETS::analyze(), MC_DIJET::analyze(), and CDF_2009_S8057893::CDF_2009_S8057893::analyze().
00160 { 00161 return _pseudojetsToJets(pseudoJetsByPt(ptmin)); 00162 }
Jets jetsByE | ( | double | ptmin = 0.0 |
) | const |
Get the jets, ordered by .
Reimplemented from JetAlg.
Definition at line 165 of file FastJets.cc.
References FastJets::_pseudojetsToJets(), and FastJets::pseudoJetsByE().
00165 { 00166 return _pseudojetsToJets(pseudoJetsByE(ptmin)); 00167 }
Jets jetsByRapidity | ( | double | ptmin = 0.0 |
) | const |
Get the jets, ordered by rapidity.
Definition at line 170 of file FastJets.cc.
References FastJets::_pseudojetsToJets(), and FastJets::pseudoJetsByRapidity().
00170 { 00171 return _pseudojetsToJets(pseudoJetsByRapidity(ptmin)); 00172 }
PseudoJets pseudoJets | ( | double | ptmin = 0.0 |
) | const |
Get the pseudo jets (unordered).
Definition at line 175 of file FastJets.cc.
References FastJets::_cseq.
Referenced by FastJets::jets(), FastJets::pseudoJetsByE(), FastJets::pseudoJetsByPt(), and FastJets::pseudoJetsByRapidity().
00175 { 00176 if (_cseq.get() != 0) { 00177 return _cseq->inclusive_jets(ptmin); 00178 } else { 00179 return PseudoJets(); 00180 } 00181 }
PseudoJets pseudoJetsByPt | ( | double | ptmin = 0.0 |
) | const [inline] |
Get the pseudo jets, ordered by .
Definition at line 114 of file FastJets.hh.
References FastJets::pseudoJets().
Referenced by CDF_2008_S8095620::analyze(), CDF_2006_S6653332::analyze(), and FastJets::jetsByPt().
00114 { 00115 return sorted_by_pt(pseudoJets(ptmin)); 00116 }
PseudoJets pseudoJetsByE | ( | double | ptmin = 0.0 |
) | const [inline] |
Get the pseudo jets, ordered by .
Definition at line 119 of file FastJets.hh.
References FastJets::pseudoJets().
Referenced by FastJets::jetsByE().
00119 { 00120 return sorted_by_E(pseudoJets(ptmin)); 00121 }
PseudoJets pseudoJetsByRapidity | ( | double | ptmin = 0.0 |
) | const [inline] |
Get the pseudo jets, ordered by rapidity.
Definition at line 124 of file FastJets.hh.
References FastJets::pseudoJets().
Referenced by FastJets::jetsByRapidity().
00124 { 00125 return sorted_by_rapidity(pseudoJets(ptmin)); 00126 }
const fastjet::ClusterSequence* clusterSeq | ( | ) | const [inline] |
Return the cluster sequence (FastJet-specific).
Definition at line 129 of file FastJets.hh.
References FastJets::_cseq.
Referenced by FastJets::_pseudojetsToJets(), OPAL_2004_S6132243::analyze(), OPAL_2001_S4553896::analyze(), MC_JetAnalysis::analyze(), JADE_OPAL_2000_S4300807::analyze(), ALEPH_2004_S5765862::analyze(), ALEPH_1996_S3486095::analyze(), ALEPH_1996_S3196992::analyze(), FastJets::filterJet(), FastJets::splitJet(), and FastJets::ySubJet().
00129 { 00130 return _cseq.get(); 00131 }
const fastjet::ClusterSequenceArea* clusterSeqArea | ( | ) | const [inline] |
Return the cluster sequence (FastJet-specific).
Definition at line 134 of file FastJets.hh.
References FastJets::_adef, and FastJets::_cseq.
00134 { 00135 /// @todo Throw error if no area def? Or just blindly call dynamic_cast? 00136 if (_adef == 0) return (fastjet::ClusterSequenceArea*) 0; 00137 return dynamic_cast<fastjet::ClusterSequenceArea*>(_cseq.get()); 00138 }
const fastjet::JetDefinition& jetDef | ( | ) | const [inline] |
Return the jet definition (FastJet-specific).
Definition at line 141 of file FastJets.hh.
References FastJets::_jdef.
00141 { 00142 return _jdef; 00143 }
const fastjet::AreaDefinition* areaDef | ( | ) | const [inline] |
Return the area definition (FastJet-specific). May be null.
Definition at line 146 of file FastJets.hh.
References FastJets::_adef.
00146 { 00147 return _adef; 00148 }
vector< double > ySubJet | ( | const fastjet::PseudoJet & | jet | ) | const |
Get the subjet splitting variables for the given jet.
Definition at line 184 of file FastJets.cc.
References FastJets::_jdef, FastJets::_yscales, and FastJets::clusterSeq().
00184 { 00185 assert(clusterSeq()); 00186 map<int,vector<double> >::iterator iter = _yscales.find(jet.cluster_hist_index()); 00187 fastjet::ClusterSequence subjet_cseq(clusterSeq()->constituents(jet), _jdef); 00188 vector<double> yMergeVals; 00189 for (int i = 1; i < 4; ++i) { 00190 // Multiply the dmerge value by R^2 so that it corresponds to a 00191 // relative k_T (fastjet has 1/R^2 in the d_ij distance by default) 00192 const double ktmerge = subjet_cseq.exclusive_dmerge(i) * _jdef.R()*_jdef.R(); 00193 yMergeVals.push_back(ktmerge/jet.perp2()); 00194 } 00195 _yscales.insert(make_pair( jet.cluster_hist_index(), yMergeVals )); 00196 return yMergeVals; 00197 }
fastjet::PseudoJet splitJet | ( | fastjet::PseudoJet | jet, | |
double & | last_R | |||
) | const |
Split a jet a la PRL100,242001(2008). Based on code from G.Salam, A.Davison.
Definition at line 201 of file FastJets.cc.
References FastJets::_cseq, FastJets::_jdef, FastJets::clusterSeq(), Log::DEBUG, Projection::getLog(), and Rivet::split().
00201 { 00202 // Sanity cuts 00203 if (jet.E() <= 0 || _cseq->constituents(jet).size() <= 1) { 00204 return jet; 00205 } 00206 00207 // Build a new cluster sequence just using the consituents of this jet. 00208 assert(clusterSeq()); 00209 fastjet::ClusterSequence cs(clusterSeq()->constituents(jet), _jdef); 00210 00211 // Get the jet back again 00212 fastjet::PseudoJet remadeJet = cs.inclusive_jets()[0]; 00213 getLog() << Log::DEBUG << "Jet2:" << remadeJet.m() << "," << remadeJet.e() << endl; 00214 00215 fastjet::PseudoJet parent1, parent2; 00216 fastjet::PseudoJet split(0.0, 0.0, 0.0, 0.0); 00217 while (cs.has_parents(remadeJet, parent1, parent2)) { 00218 getLog() << Log::DEBUG << "Parents:" << parent1.m() << "," << parent2.m() << endl; 00219 if (parent1.m2() < parent2.m2()) { 00220 fastjet::PseudoJet tmp; 00221 tmp = parent1; parent1 = parent2; parent2 = tmp; 00222 } 00223 00224 double ktdist = parent1.kt_distance(parent2); 00225 double rtycut2 = 0.3*0.3; 00226 if (parent1.m() < ((2.0*remadeJet.m())/3.0) && ktdist > rtycut2*remadeJet.m2()) { 00227 break; 00228 } else { 00229 remadeJet = parent1; 00230 } 00231 } 00232 00233 last_R = 0.5 * sqrt(parent1.squared_distance(parent2)); 00234 split.reset(remadeJet.px(), remadeJet.py(), remadeJet.pz(), remadeJet.E()); 00235 return split; 00236 }
fastjet::PseudoJet filterJet | ( | fastjet::PseudoJet | jet, | |
double & | stingy_R, | |||
const double | def_R | |||
) | const |
Filter a jet a la PRL100,242001(2008). Based on code from G.Salam, A.Davison.
Definition at line 240 of file FastJets.cc.
References FastJets::clusterSeq().
00241 { 00242 assert(clusterSeq()); 00243 00244 if (jet.E() <= 0.0 || clusterSeq()->constituents(jet).size() == 0) { 00245 return jet; 00246 } 00247 if (stingy_R == 0.0) { 00248 stingy_R = def_R; 00249 } 00250 00251 stingy_R = def_R < stingy_R ? def_R : stingy_R; 00252 fastjet::JetDefinition stingy_jet_def(fastjet::cambridge_algorithm, stingy_R); 00253 00254 //FlavourRecombiner recom; 00255 //stingy_jet_def.set_recombiner(&recom); 00256 fastjet::ClusterSequence scs(clusterSeq()->constituents(jet), stingy_jet_def); 00257 std::vector<fastjet::PseudoJet> stingy_jets = sorted_by_pt(scs.inclusive_jets()); 00258 00259 fastjet::PseudoJet reconst_jet(0.0, 0.0, 0.0, 0.0); 00260 00261 for (unsigned isj = 0; isj < std::min(3U, (unsigned int) stingy_jets.size()); ++isj) { 00262 reconst_jet += stingy_jets[isj]; 00263 } 00264 return reconst_jet; 00265 }
Jets _pseudojetsToJets | ( | const PseudoJets & | pjets | ) | const [private] |
Definition at line 121 of file FastJets.cc.
References FastJets::_particles, and FastJets::clusterSeq().
Referenced by FastJets::jets(), FastJets::jetsByE(), FastJets::jetsByPt(), and FastJets::jetsByRapidity().
00121 { 00122 Jets rtn; 00123 foreach (const fastjet::PseudoJet& pj, pjets) { 00124 Jet j; 00125 assert(clusterSeq()); 00126 const PseudoJets parts = clusterSeq()->constituents(pj); 00127 foreach (const fastjet::PseudoJet& p, parts) { 00128 map<int, Particle>::const_iterator found = _particles.find(p.user_index()); 00129 assert(found != _particles.end()); 00130 j.addParticle(found->second); 00131 } 00132 rtn.push_back(j); 00133 } 00134 return rtn; 00135 }
void project | ( | const Event & | e | ) | [protected, virtual] |
Perform the projection on the Event.
Implements JetAlg.
Definition at line 91 of file FastJets.cc.
References FastJets::calc(), and FinalState::particles().
00091 { 00092 const FinalState& fs = applyProjection<FinalState>(e, "FS"); 00093 calc(fs.particles()); 00094 }
int compare | ( | const Projection & | p | ) | const [protected, virtual] |
Compare projections.
Implements JetAlg.
Definition at line 78 of file FastJets.cc.
References FastJets::_adef, FastJets::_jdef, Rivet::cmp(), and Projection::mkNamedPCmp().
00078 { 00079 const FastJets& other = dynamic_cast<const FastJets&>(p); 00080 return \ 00081 mkNamedPCmp(other, "FS") || 00082 cmp(_jdef.jet_algorithm(), other._jdef.jet_algorithm()) || 00083 cmp(_jdef.recombination_scheme(), other._jdef.recombination_scheme()) || 00084 cmp(_jdef.plugin(), other._jdef.plugin()) || 00085 cmp(_jdef.R(), other._jdef.R()) || 00086 cmp(_adef, other._adef); 00087 }
void calc | ( | const ParticleVector & | ps | ) |
Do the calculation locally (no caching).
Reimplemented from JetAlg.
Definition at line 97 of file FastJets.cc.
References FastJets::_adef, FastJets::_cseq, FastJets::_jdef, FastJets::_particles, Log::DEBUG, FourMomentum::E(), Projection::getLog(), Particle::momentum(), FourMomentum::px(), FourMomentum::py(), and FourMomentum::pz().
Referenced by CDF_2008_S7540469::analyze(), and FastJets::project().
00097 { 00098 _particles.clear(); 00099 vector<fastjet::PseudoJet> vecs; 00100 // Store 4 vector data about each particle into vecs 00101 int counter = 1; 00102 foreach (const Particle& p, ps) { 00103 const FourMomentum fv = p.momentum(); 00104 fastjet::PseudoJet pJet(fv.px(), fv.py(), fv.pz(), fv.E()); 00105 pJet.set_user_index(counter); 00106 vecs.push_back(pJet); 00107 _particles[counter] = p; 00108 ++counter; 00109 } 00110 getLog() << Log::DEBUG << "Running FastJet ClusterSequence construction" << endl; 00111 00112 // Choose CSeq as basic or area-calculating depending on whether _adef pointer is non-null. 00113 if (_adef == 0) { 00114 _cseq.reset(new fastjet::ClusterSequence(vecs, _jdef)); 00115 } else { 00116 _cseq.reset(new fastjet::ClusterSequenceArea(vecs, _jdef, *_adef)); 00117 } 00118 }
Jets jets | ( | F | sorter, | |
double | ptmin = 0.0 | |||
) | const [inline, inherited] |
Get the jets, ordered by supplied sorting function object.
Definition at line 76 of file JetAlg.hh.
References JetAlg::jets().
00076 { 00077 Jets js = jets(ptmin); 00078 if (sorter != 0) { 00079 std::sort(js.begin(), js.end(), sorter); 00080 } 00081 return js; 00082 }
Jets jetsByEt | ( | double | ptmin = 0.0 |
) | const [inline, inherited] |
Get the jets, ordered by .
Definition at line 95 of file JetAlg.hh.
References JetAlg::jets().
Referenced by CDF_2008_S7541902::analyze().
00095 { 00096 return jets(cmpJetsByEt, ptmin); 00097 }
collection_type entities | ( | ) | const [inline, inherited] |
Template-usable interface common to FinalState.
Definition at line 112 of file JetAlg.hh.
References JetAlg::jets().
00112 { return jets(); }
bool before | ( | const Projection & | p | ) | const [inherited] |
Determine whether this object should be ordered before the object p given as argument. If p is of a different class than this, the before() function of the corresponding type_info objects is used. Otherwise, if the objects are of the same class, the virtual compare(const Projection &) will be returned.
Definition at line 28 of file Projection.cc.
References Projection::compare().
Referenced by less< const Rivet::Projection * >::operator()().
00028 { 00029 const std::type_info& thisid = typeid(*this); 00030 const std::type_info& otherid = typeid(p); 00031 if (thisid == otherid) { 00032 return compare(p) < 0; 00033 } else { 00034 return thisid.before(otherid); 00035 } 00036 }
const set< PdgIdPair > beamPairs | ( | ) | const [virtual, inherited] |
Return the BeamConstraints for this projection, not including recursion. Derived classes should ensure that all contained projections are registered in the _projections set for the beam constraint chaining to work.
Definition at line 39 of file Projection.cc.
References Projection::_beamPairs, Projection::beamPairs(), Projection::getLog(), ProjectionApplier::getProjections(), Rivet::intersection(), and Log::TRACE.
Referenced by Projection::beamPairs().
00039 { 00040 set<PdgIdPair> ret = _beamPairs; 00041 set<ConstProjectionPtr> projs = getProjections(); 00042 for (set<ConstProjectionPtr>::const_iterator ip = projs.begin(); ip != projs.end(); ++ip) { 00043 ConstProjectionPtr p = *ip; 00044 getLog() << Log::TRACE << "Proj addr = " << p << endl; 00045 if (p) ret = intersection(ret, p->beamPairs()); 00046 } 00047 return ret; 00048 }
virtual std::string name | ( | ) | const [inline, virtual, inherited] |
Get the name of the projection.
Implements ProjectionApplier.
Definition at line 101 of file Projection.hh.
References Projection::_name.
Referenced by ProjectionApplier::_addProjection(), ProjectionHandler::_checkDuplicate(), ProjectionHandler::_clone(), ProjectionHandler::_getEquiv(), VetoedFinalState::addVetoOnThisFinalState(), Projection::getLog(), ZFinder::project(), ClusteredPhotons::project(), and ProjectionHandler::registerProjection().
00101 { 00102 return _name; 00103 }
Projection& addPdgIdPair | ( | PdgId | beam1, | |
PdgId | beam2 | |||
) | [inline, inherited] |
Add a colliding beam pair.
Definition at line 107 of file Projection.hh.
References Projection::_beamPairs.
Referenced by Projection::Projection().
00107 { 00108 _beamPairs.insert(PdgIdPair(beam1, beam2)); 00109 return *this; 00110 }
Log& getLog | ( | ) | const [inline, inherited] |
Get a Log object based on the getName() property of the calling projection object.
Reimplemented from ProjectionApplier.
Definition at line 114 of file Projection.hh.
References Log::getLog(), and Projection::name().
Referenced by Sphericity::_calcSphericity(), Thrust::_calcThrust(), Projection::beamPairs(), FastJets::calc(), FastJets::FastJets(), FinalState::FinalState(), JetAlg::JetAlg(), ZFinder::project(), WFinder::project(), VetoedFinalState::project(), UnstableFinalState::project(), TriggerUA5::project(), TriggerCDFRun2::project(), TriggerCDFRun0Run1::project(), PVertex::project(), NeutralFinalState::project(), MergedFinalState::project(), LossyFinalState< Rivet::ConstRandomFilter >::project(), LeadingParticlesFinalState::project(), IsolationProjection::project(), InvMassFinalState::project(), InitialQuarks::project(), Hemispheres::project(), HadronicFinalState::project(), FoxWolframMoments::project(), ClusteredPhotons::project(), ChargedFinalState::project(), FastJets::splitJet(), and TotalVisibleMomentum::TotalVisibleMomentum().
00114 { 00115 string logname = "Rivet.Projection." + name(); 00116 return Log::getLog(logname); 00117 }
void setName | ( | const std::string & | name | ) | [inline, inherited] |
Used by derived classes to set their name.
Definition at line 120 of file Projection.hh.
References Projection::_name.
Referenced by ZFinder::_init(), WFinder::_init(), Beam::Beam(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), ClusteredPhotons::ClusteredPhotons(), ConstLossyFinalState::ConstLossyFinalState(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), FastJets::FastJets(), FinalState::FinalState(), FinalStateHCM::FinalStateHCM(), FoxWolframMoments::FoxWolframMoments(), HadronicFinalState::HadronicFinalState(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), InitialQuarks::InitialQuarks(), IsolationProjection::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState< Rivet::ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), ParisiTensor::ParisiTensor(), PVertex::PVertex(), Sphericity::Sphericity(), SVertex::SVertex(), Thrust::Thrust(), TotalVisibleMomentum::TotalVisibleMomentum(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), UnstableFinalState::UnstableFinalState(), and VetoedFinalState::VetoedFinalState().
Cmp<Projection> mkNamedPCmp | ( | const Projection & | otherparent, | |
const std::string & | pname | |||
) | const [protected, inherited] |
Shortcut to make a named Cmp<Projection> comparison with the *this
object automatically passed as one of the parent projections.
Referenced by ZFinder::compare(), WFinder::compare(), VetoedFinalState::compare(), TotalVisibleMomentum::compare(), Thrust::compare(), SVertex::compare(), Sphericity::compare(), ParisiTensor::compare(), NeutralFinalState::compare(), Multiplicity::compare(), MergedFinalState::compare(), LossyFinalState< Rivet::ConstRandomFilter >::compare(), LeadingParticlesFinalState::compare(), JetShape::compare(), IsolationProjection::compare(), InvMassFinalState::compare(), IdentifiedFinalState::compare(), Hemispheres::compare(), FoxWolframMoments::compare(), FinalStateHCM::compare(), FastJets::compare(), DISLepton::compare(), DISKinematics::compare(), ClusteredPhotons::compare(), ChargedLeptons::compare(), ChargedFinalState::compare(), and CentralEtHCM::compare().
Cmp<Projection> mkPCmp | ( | const Projection & | otherparent, | |
const std::string & | pname | |||
) | const [protected, inherited] |
Shortcut to make a named Cmp<Projection> comparison with the *this
object automatically passed as one of the parent projections.
std::set<ConstProjectionPtr> getProjections | ( | ) | const [inline, inherited] |
Get the contained projections, including recursion.
Definition at line 58 of file ProjectionApplier.hh.
References ProjectionHandler::DEEP, ProjectionHandler::getChildProjections(), and ProjectionApplier::getProjHandler().
Referenced by Projection::beamPairs().
00058 { 00059 return getProjHandler().getChildProjections(*this, ProjectionHandler::DEEP); 00060 }
const PROJ& getProjection | ( | const std::string & | name | ) | const [inline, inherited] |
Get the named projection, specifying return type via a template argument.
Definition at line 65 of file ProjectionApplier.hh.
References ProjectionHandler::getProjection(), and ProjectionApplier::getProjHandler().
Referenced by Rivet::pcmp(), and Hemispheres::project().
00065 { 00066 const Projection& p = getProjHandler().getProjection(*this, name); 00067 return pcast<PROJ>(p); 00068 }
const Projection& getProjection | ( | const std::string & | name | ) | const [inline, inherited] |
Get the named projection (non-templated, so returns as a reference to a Projection base class).
Definition at line 73 of file ProjectionApplier.hh.
References ProjectionHandler::getProjection(), and ProjectionApplier::getProjHandler().
00073 { 00074 return getProjHandler().getProjection(*this, name); 00075 }
const PROJ& applyProjection | ( | const Event & | evt, | |
const PROJ & | proj | |||
) | const [inline, inherited] |
Apply the supplied projection on event.
Definition at line 83 of file ProjectionApplier.hh.
References ProjectionApplier::_applyProjection().
Referenced by HadronicFinalState::project(), and FinalStateHCM::project().
00083 { 00084 return pcast<PROJ>(_applyProjection(evt, proj)); 00085 }
const PROJ& applyProjection | ( | const Event & | evt, | |
const Projection & | proj | |||
) | const [inline, inherited] |
Apply the supplied projection on event.
Definition at line 90 of file ProjectionApplier.hh.
References ProjectionApplier::_applyProjection().
00090 { 00091 return pcast<PROJ>(_applyProjection(evt, proj)); 00092 }
const PROJ& applyProjection | ( | const Event & | evt, | |
const std::string & | name | |||
) | const [inline, inherited] |
Apply the named projection on event.
Definition at line 97 of file ProjectionApplier.hh.
References ProjectionApplier::_applyProjection().
00097 { 00098 return pcast<PROJ>(_applyProjection(evt, name)); 00099 }
ProjectionHandler& getProjHandler | ( | ) | const [inline, protected, inherited] |
Get a reference to the ProjectionHandler for this thread.
Definition at line 110 of file ProjectionApplier.hh.
References ProjectionApplier::_projhandler.
Referenced by ProjectionApplier::_addProjection(), ProjectionApplier::getProjection(), ProjectionApplier::getProjections(), and ProjectionApplier::~ProjectionApplier().
00110 { 00111 assert(_projhandler); 00112 return *_projhandler; 00113 }
const PROJ& addProjection | ( | const PROJ & | proj, | |
const std::string & | name | |||
) | [inline, protected, inherited] |
Register a contained projection. The type of the argument is used to instantiate a new projection internally: this new object is applied to events rather than the argument object. Hence you are advised to only use locally-scoped Projection objects in your Projection and Analysis constructors, and to avoid polymorphism (e.g. handling ConcreteProjection
via a pointer or reference to type Projection
) since this will screw up the internal type management.
Definition at line 130 of file ProjectionApplier.hh.
References ProjectionApplier::_addProjection().
Referenced by ZFinder::_init(), WFinder::_init(), VetoedFinalState::addVetoOnThisFinalState(), CDF_2009_S8057893::CDF_2009_S8057893::init(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), ClusteredPhotons::ClusteredPhotons(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), FinalState::FinalState(), FinalStateHCM::FinalStateHCM(), FoxWolframMoments::FoxWolframMoments(), HadronicFinalState::HadronicFinalState(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), ZEUS_2001_S4815815::init(), UA5_1989_S1926373::init(), UA5_1988_S1867512::init(), UA5_1987_S1640666::init(), UA5_1986_S1583476::init(), UA5_1982_S875503::init(), UA1_1990_S2044935::init(), STAR_2009_UE_HELEN::init(), STAR_2008_S7993412::init(), STAR_2008_S7869363::init(), STAR_2006_S6870392::init(), STAR_2006_S6860818::init(), STAR_2006_S6500200::init(), SFM_1984_S1178091::init(), PDG_HADRON_MULTIPLICITIES_RATIOS::init(), PDG_HADRON_MULTIPLICITIES::init(), OPAL_2004_S6132243::init(), OPAL_2001_S4553896::init(), OPAL_1998_S3780481::init(), OPAL_1993_S2692198::init(), MC_ZZJETS::init(), MC_ZJETS::init(), MC_WWJETS::init(), MC_WJETS::init(), MC_TTBAR::init(), MC_SUSY::init(), MC_PHOTONJETUE::init(), MC_PHOTONJETS::init(), MC_LEADINGJETS::init(), MC_JETS::init(), MC_HJETS::init(), MC_GENERIC::init(), MC_DIPHOTON::init(), MC_DIJET::init(), JADE_OPAL_2000_S4300807::init(), H1_2000_S4129130::init(), H1_1995_S3167097::init(), H1_1994_S2919893::init(), ExampleAnalysis::init(), E735_1998_S3905616::init(), DELPHI_2002_069_CONF_603::init(), DELPHI_1995_S3137023::init(), D0_2010_S8671338::init(), D0_2010_S8570965::init(), D0_2010_S8566488::init(), D0_2009_S8349509::init(), D0_2009_S8320160::init(), D0_2009_S8202443::init(), D0_2008_S7863608::init(), D0_2008_S7837160::init(), D0_2008_S7719523::init(), D0_2008_S7662670::init(), D0_2008_S7554427::init(), D0_2008_S6879055::init(), D0_2007_S7075677::init(), D0_2006_S6438750::init(), D0_2004_S5992206::init(), D0_2001_S4674421::init(), D0_2000_S4480767::init(), D0_1998_S3711838::init(), D0_1996_S3324664::init(), D0_1996_S3214044::init(), CDF_2009_S8436959::init(), CDF_2009_S8383952::init(), CDF_2009_S8233977::init(), CDF_2009_NOTE_9936::init(), CDF_2008_S8095620::init(), CDF_2008_S8093652::init(), CDF_2008_S7828950::init(), CDF_2008_S7782535::init(), CDF_2008_S7541902::init(), CDF_2008_S7540469::init(), CDF_2008_NOTE_9351::init(), CDF_2008_LEADINGJETS::init(), CDF_2007_S7057202::init(), CDF_2006_S6653332::init(), CDF_2006_S6450792::init(), CDF_2005_S6217184::init(), CDF_2005_S6080774::init(), CDF_2004_S5839831::init(), CDF_2002_S4796047::init(), CDF_2001_S4751469::init(), CDF_2001_S4563131::init(), CDF_2001_S4517016::init(), CDF_2000_S4266730::init(), CDF_2000_S4155203::init(), CDF_1998_S3618439::init(), CDF_1997_S3541940::init(), CDF_1996_S3418421::init(), CDF_1996_S3349578::init(), CDF_1996_S3108457::init(), CDF_1994_S2952106::init(), CDF_1993_S2742446::init(), CDF_1991_S2313472::init(), CDF_1990_S2089246::init(), CDF_1988_S1865951::init(), BELLE_2006_S6265367::init(), ATLAS_2010_S8591806::init(), ALEPH_2004_S5765862::init(), ALEPH_1996_S3486095::init(), ALEPH_1996_S3196992::init(), ALEPH_1991_S2435284::init(), IsolationProjection::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState< Rivet::ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), ParisiTensor::ParisiTensor(), Sphericity::Sphericity(), SVertex::SVertex(), Thrust::Thrust(), TotalVisibleMomentum::TotalVisibleMomentum(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), and VetoedFinalState::VetoedFinalState().
00130 { 00131 const Projection& reg = _addProjection(proj, name); 00132 const PROJ& rtn = dynamic_cast<const PROJ&>(reg); 00133 return rtn; 00134 }
const Projection & _addProjection | ( | const Projection & | proj, | |
const std::string & | name | |||
) | [protected, inherited] |
Untemplated function to do the work...
Definition at line 33 of file ProjectionApplier.cc.
References ProjectionApplier::_allowProjReg, Log::ERROR, ProjectionApplier::getLog(), ProjectionApplier::getProjHandler(), ProjectionApplier::name(), Projection::name(), and ProjectionHandler::registerProjection().
Referenced by ProjectionApplier::addProjection().
00034 { 00035 if (!_allowProjReg) { 00036 getLog() << Log::ERROR << "Trying to register projection '" 00037 << proj.name() << "' before init phase in '" << this->name() << "'." << endl; 00038 exit(2); 00039 } 00040 const Projection& reg = getProjHandler().registerProjection(*this, proj, name); 00041 return reg; 00042 }
friend class Event [friend, inherited] |
friend class Cmp< Projection > [friend, inherited] |
friend class Projectionhandler [friend, inherited] |
Definition at line 38 of file ProjectionApplier.hh.
fastjet::JetDefinition _jdef [private] |
Jet definition.
Definition at line 182 of file FastJets.hh.
Referenced by FastJets::calc(), FastJets::compare(), FastJets::FastJets(), FastJets::jetDef(), FastJets::splitJet(), and FastJets::ySubJet().
fastjet::AreaDefinition* _adef [private] |
Pointer to user-handled area definition.
Definition at line 185 of file FastJets.hh.
Referenced by FastJets::areaDef(), FastJets::calc(), FastJets::clusterSeqArea(), FastJets::compare(), and FastJets::useJetArea().
shared_ptr<fastjet::ClusterSequence> _cseq [private] |
Cluster sequence.
Definition at line 188 of file FastJets.hh.
Referenced by FastJets::calc(), FastJets::clusterSeq(), FastJets::clusterSeqArea(), FastJets::numJets(), FastJets::pseudoJets(), and FastJets::splitJet().
shared_ptr<fastjet::JetDefinition::Plugin> _plugin [private] |
FastJet external plugin.
Definition at line 191 of file FastJets.hh.
Referenced by FastJets::FastJets().
map<int, vector<double> > _yscales [mutable, private] |
Map of vectors of y scales. This is mutable so we can use caching/lazy evaluation.
Definition at line 194 of file FastJets.hh.
Referenced by FastJets::reset(), and FastJets::ySubJet().
map<int, Particle> _particles [private] |
set of particles sorted by their PT2
Definition at line 198 of file FastJets.hh.
Referenced by FastJets::_pseudojetsToJets(), FastJets::calc(), and FastJets::reset().
bool _allowProjReg [protected, inherited] |
Flag to forbid projection registration in analyses until the init phase.
Definition at line 157 of file ProjectionApplier.hh.
Referenced by ProjectionApplier::_addProjection().