FastJets Class Reference

#include <FastJets.hh>

Inheritance diagram for FastJets:

Inheritance graph
[legend]

Collaboration diagram for FastJets:

Collaboration graph
[legend]

List of all members.


Detailed Description

Project out jets found using the FastJet package jet algorithms.

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 $ p_\perp $ cut.
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 $ p_T $.
Jets jetsByE (double ptmin=0.0) const
 Get the jets, ordered by $ E $.
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 $ p_T $.
PseudoJets pseudoJetsByE (double ptmin=0.0) const
 Get the pseudo jets, ordered by $ E $.
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 $ E_T $.
collection_type entities () const
 Template-usable interface common to FinalState.
bool before (const Projection &p) const
virtual const std::set< PdgIdPairbeamPairs () const
virtual std::string name () const
 Get the name of the projection.
ProjectionaddPdgIdPair (PdgId beam1, PdgId beam2)
 Add a colliding beam pair.
LoggetLog () 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 Projectionclone () const
 Clone on the heap.
Projection "getting" functions
std::set< ConstProjectionPtrgetProjections () 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 ProjectiongetProjection (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< ProjectionmkNamedPCmp (const Projection &otherparent, const std::string &pname) const
Cmp< ProjectionmkPCmp (const Projection &otherparent, const std::string &pname) const
ProjectionHandlergetProjHandler () 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

Member Typedef Documentation

typedef Jet entity_type [inherited]

Definition at line 108 of file JetAlg.hh.

typedef Jets collection_type [inherited]

Definition at line 109 of file JetAlg.hh.


Member Enumeration Documentation

enum JetAlgName

Wrapper enum for selected Fastjet jet algorithms.

Enumerator:
KT 
CAM 
SISCONE 
ANTIKT 
PXCONE 
CDFJETCLU 
CDFMIDPOINT 
D0ILCONE 
JADE 
DURHAM 
TRACKJET 

Definition at line 45 of file FastJets.hh.


Constructor & Destructor Documentation

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.

Todo:
Should we be copying the 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   }


Member Function Documentation

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.

Todo:
_cseq = fastjet::ClusterSequence();

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.

Warning:
adef is NOT copied, the user must ensure that it remains valid! Provide an adef null pointer to re-disable jet area calculation

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 $ p_\perp $ 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

Jets jetsByE ( double  ptmin = 0.0  )  const

Get the jets, ordered by $ E $.

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

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

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]

const fastjet::ClusterSequenceArea* clusterSeqArea (  )  const [inline]

Return the cluster sequence (FastJet-specific).

Todo:
Throw error if no area def? Or just blindly call dynamic_cast?

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 ( 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 $ E_T $.

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]

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]

void setName ( const std::string &  name  )  [inline, inherited]

Cmp<Projection> mkNamedPCmp ( const Projection otherparent,
const std::string &  pname 
) const [protected, inherited]

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   }


Friends And Related Function Documentation

friend class Event [friend, inherited]

Event is a friend.

Definition at line 33 of file Projection.hh.

friend class Cmp< Projection > [friend, inherited]

The Cmp specialization for Projection is a friend.

Definition at line 36 of file Projection.hh.

friend class Projectionhandler [friend, inherited]

Definition at line 38 of file ProjectionApplier.hh.


Member Data Documentation

fastjet::JetDefinition _jdef [private]

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]

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


The documentation for this class was generated from the following files: