2 #ifndef RIVET_FastJets_HH
3 #define RIVET_FastJets_HH
5 #include "Rivet/Projection.hh"
6 #include "Rivet/Projections/JetAlg.hh"
7 #include "Rivet/Projections/FinalState.hh"
8 #include "Rivet/Particle.hh"
9 #include "Rivet/Jet.hh"
11 #include "fastjet/JetDefinition.hh"
12 #include "fastjet/AreaDefinition.hh"
13 #include "fastjet/ClusterSequence.hh"
14 #include "fastjet/ClusterSequenceArea.hh"
15 #include "fastjet/PseudoJet.hh"
17 #include "fastjet/SISConePlugin.hh"
18 #include "fastjet/CMSIterativeConePlugin.hh"
19 #include "fastjet/D0RunIIConePlugin.hh"
20 #include "fastjet/TrackJetPlugin.hh"
21 #include "fastjet/JadePlugin.hh"
29 return Vector3(pj.px(), pj.py(), pj.pz());
55 CDFJETCLU, CDFMIDPOINT, D0ILCONE,
56 JADE, DURHAM, TRACKJET };
67 double rparameter,
double seed_threshold=1.0)
68 :
JetAlg(fsp), _adef(0) { _init1(alg, rparameter, seed_threshold); }
72 fastjet::RecombinationScheme recom,
double rparameter)
73 :
JetAlg(fsp), _adef(0) { _init2(type, recom, rparameter); }
77 :
JetAlg(fsp), _adef(0) { _init3(plugin); }
80 :
JetAlg(fsp), _adef(0) { _init3(&plugin); }
85 : _adef(0) { _init1(alg, rparameter, seed_threshold); }
87 FastJets(fastjet::JetAlgorithm type, fastjet::RecombinationScheme recom,
double rparameter)
88 : _adef(0) { _init2(type, recom, rparameter); }
90 FastJets(fastjet::JetDefinition::Plugin* plugin)
91 : _adef(0) { _init3(plugin); }
93 FastJets(fastjet::JetDefinition::Plugin& plugin)
94 : _adef(0) { _init3(&plugin); }
118 size_t numJets(
double ptmin = 0.0)
const;
126 Jets _jets(
double ptmin = 0.0)
const;
154 if (_adef == 0)
return (fastjet::ClusterSequenceArea*) 0;
155 return dynamic_cast<fastjet::ClusterSequenceArea*
>(_cseq.get());
159 const fastjet::JetDefinition&
jetDef()
const {
164 const fastjet::AreaDefinition*
areaDef()
const {
169 vector<double>
ySubJet(
const fastjet::PseudoJet& jet)
const;
173 fastjet::PseudoJet
splitJet(fastjet::PseudoJet jet,
double& last_R)
const;
177 fastjet::PseudoJet
filterJet(fastjet::PseudoJet jet,
double& stingy_R,
const double def_R)
const;
184 void _init1(
JetAlgName alg,
double rparameter,
double seed_threshold);
185 void _init2(fastjet::JetAlgorithm type,
186 fastjet::RecombinationScheme recom,
double rparameter);
187 void _init3(fastjet::JetDefinition::Plugin* plugin);
206 fastjet::JetDefinition _jdef;
209 fastjet::AreaDefinition* _adef;
212 shared_ptr<fastjet::ClusterSequence> _cseq;
215 shared_ptr<fastjet::JetDefinition::Plugin> _plugin;
218 mutable map<int, vector<double> > _yscales;
222 map<int, Particle> _particles;