rivet is hosted by Hepforge, IPPP Durham

Get the highest-pT occurrences of FS particles with the specified PDG IDs. More...

#include <LeadingParticlesFinalState.hh>

Inheritance diagram for LeadingParticlesFinalState:
Collaboration diagram for LeadingParticlesFinalState:

List of all members.

Public Member Functions

 LeadingParticlesFinalState (const FinalState &fsp)
 Constructor: the supplied FinalState projection is assumed to live through the run.
 DEFAULT_RIVET_PROJ_CLONE (LeadingParticlesFinalState)
 Clone on the heap.
LeadingParticlesFinalStateaddParticleId (long id)
 Add a particle ID to the list of leading particles selected.
LeadingParticlesFinalStateaddParticleIdPair (long id)
 Add a particle ID to the list of leading particles selected.
void setLeadingOnly (const bool &leadingonly)
virtual bool accept (const Particle &p) const
 Decide if a particle is to be accepted or not.
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.
void markAsOwned () const
Standard constructors etc.
 DEFAULT_RIVET_PROJ_CLONE (FinalState)
 Clone on the heap.
Object lifetime management
virtual unique_ptr< Projectionclone () const =0
 Clone on the heap.
Particle accessors
virtual const Particlesparticles () const
 Get the final-state particles in no particular order, with no cuts.
Particles particles (const Cut &c) const
 Get the final-state particles, with optional cuts.
template<typename F >
Particles particles (F sorter, const Cut &c=Cuts::open()) const
template<typename F >
Particles particles (const Cut &c, F sorter) const
size_t size () const
 Access the projected final-state particles.
bool empty () const
 Is this final state empty?
bool isEmpty () const
Particles particlesByPt (const Cut &c=Cuts::open()) const
Particles particlesByPt (double ptmin) const
Little-used sorted accessors
Deprecated:
Use the versions with a sorter function argument
Particles particlesByP (const Cut &c=Cuts::open()) const
Particles particlesByE (const Cut &c=Cuts::open()) const
Particles particlesByEt (const Cut &c=Cuts::open()) const
Particles particlesByEta (const Cut &c=Cuts::open()) const
Particles particlesByModEta (const Cut &c=Cuts::open()) const
Particles particlesByRapidity (const Cut &c=Cuts::open()) const
Particles particlesByModRapidity (const Cut &c=Cuts::open()) const
Projection "getting" functions
std::set< ConstProjectionPtrgetProjections () const
 Get the contained projections, including recursion.
template<typename PROJ >
const PROJ & getProjection (const std::string &name) const
const ProjectiongetProjection (const std::string &name) const
template<typename PROJ >
const PROJ & get (const std::string &name) const
Projection applying functions
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const Projection &proj) const
 Apply the supplied projection on event evt.
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const PROJ &proj) const
 Apply the supplied projection on event evt.
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const std::string &name) const
template<typename PROJ >
const PROJ & apply (const Event &evt, const Projection &proj) const
template<typename PROJ >
const PROJ & apply (const Event &evt, const PROJ &proj) const
template<typename PROJ >
const PROJ & apply (const Event &evt, const std::string &name) const

Protected Member Functions

void project (const Event &e)
 Apply the projection on the supplied event.
int compare (const Projection &p) const
 Compare projections.
bool inList (const Particle &particle) const
 Check if the particle's ID is in the list.
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.
const Projection_applyProjection (const Event &evt, const std::string &name) const
const Projection_applyProjection (const Event &evt, const Projection &proj) const
Projection registration functions
template<typename PROJ >
const PROJ & declareProjection (const PROJ &proj, const std::string &name)
 Register a contained projection.
template<typename PROJ >
const PROJ & declare (const PROJ &proj, const std::string &name)
 Register a contained projection (user-facing version)
template<typename PROJ >
const PROJ & addProjection (const PROJ &proj, const std::string &name)
 Register a contained projection (user-facing version)
const Projection_declareProjection (const Projection &proj, const std::string &name)
 Untemplated function to do the work...

Protected Attributes

Cut _cuts
 The kinematic cuts cuts.
Particles _theParticles
 The found particles returned by the particles() methods.
bool _allowProjReg
 Flag to forbid projection registration in analyses until the init phase.

Private Attributes

std::set< long > _ids
 IDs of the leading particles to be selected.
bool _leading_only

Friends

class Event
 Event is a friend.
class Cmp< Projection >
 The Cmp specialization for Projection is a friend.

For JetAlg compatibility

Todo:
Replace with cuts() accessor virtual Cut cuts() const { return _cuts; }
const collection_typeentities () const
 Template-usable interface common to JetAlg.
typedef Particle entity_type
typedef Particles collection_type

Detailed Description

Get the highest-pT occurrences of FS particles with the specified PDG IDs.

Definition at line 13 of file LeadingParticlesFinalState.hh.


Member Typedef Documentation

typedef Particles collection_type [inherited]

Definition at line 173 of file ParticleFinder.hh.

typedef Particle entity_type [inherited]

Definition at line 172 of file ParticleFinder.hh.


Constructor & Destructor Documentation

LeadingParticlesFinalState ( const FinalState fsp) [inline]

Constructor: the supplied FinalState projection is assumed to live through the run.

Definition at line 18 of file LeadingParticlesFinalState.hh.

References ProjectionApplier::addProjection(), and Projection::setName().

      :  FinalState(), _leading_only(false)
    {
      setName("LeadingParticlesFinalState");
      addProjection(fsp, "FS");
    }

Member Function Documentation

const Projection & _applyProjection ( const Event evt,
const std::string &  name 
) const [protected, inherited]

Non-templated version of string-based applyProjection, to work around header dependency issue.

Definition at line 22 of file ProjectionApplier.cc.

References Event::applyProjection(), and ProjectionApplier::getProjection().

Referenced by ProjectionApplier::applyProjection().

                                                                                  {
    return evt.applyProjection(getProjection(name));
  }
const Projection & _applyProjection ( const Event evt,
const Projection proj 
) const [protected, inherited]

Non-templated version of proj-based applyProjection, to work around header dependency issue.

Definition at line 28 of file ProjectionApplier.cc.

References Event::applyProjection().

                                                                                      {
    return evt.applyProjection(proj);
  }
const Projection & _declareProjection ( const Projection proj,
const std::string &  name 
) [protected, inherited]

Untemplated function to do the work...

Definition at line 34 of file ProjectionApplier.cc.

References ProjectionApplier::_allowProjReg, ProjectionApplier::getProjHandler(), ProjectionApplier::name(), Projection::name(), and ProjectionHandler::registerProjection().

Referenced by ProjectionApplier::declareProjection().

                                                                             {
    if (!_allowProjReg) {
      cerr << "Trying to register projection '"
           << proj.name() << "' before init phase in '" << this->name() << "'." << endl;
      exit(2);
    }
    const Projection& reg = getProjHandler().registerProjection(*this, proj, name);
    return reg;
  }
bool accept ( const Particle p) const [virtual, inherited]

Decide if a particle is to be accepted or not.

Decide if a particle is to be accepted or not.

Todo:
Rename to _accept or acceptFinal?

Reimplemented in FinalPartons.

Definition at line 75 of file FinalState.cc.

References ParticleFinder::_cuts, and Particle::genParticle().

Referenced by InvMassFinalState::calc(), FinalState::project(), LeadingParticlesFinalState::project(), and DressedLeptons::project().

                                                 {
    // Not having status == 1 should never happen!
    assert(p.genParticle() == NULL || p.genParticle()->status() == 1);
    return _cuts->accept(p);
  }

Add a particle ID to the list of leading particles selected.

Definition at line 35 of file LeadingParticlesFinalState.hh.

References LeadingParticlesFinalState::_ids.

Referenced by D0_2001_S4674421::init(), MC_SUSY::init(), and ATLAS_2012_I1083318::init().

                                                           {
      _ids.insert(id);
      _ids.insert(-id);
      return *this;
    }
Projection& addPdgIdPair ( PdgId  beam1,
PdgId  beam2 
) [inline, inherited]

Add a colliding beam pair.

Definition at line 108 of file Projection.hh.

References Projection::_beamPairs.

Referenced by Projection::Projection().

                                                       {
      _beamPairs.insert(PdgIdPair(beam1, beam2));
      return *this;
    }
const PROJ& addProjection ( const PROJ &  proj,
const std::string &  name 
) [inline, protected, inherited]

Register a contained projection (user-facing version)

Deprecated:
Use declareProjection() or declare()
Todo:
Add SFINAE to require that PROJ inherit from Projection

Definition at line 157 of file ProjectionApplier.hh.

References ProjectionApplier::declareProjection().

Referenced by FastJets::_initBase(), VetoedFinalState::addVetoOnThisFinalState(), BeamThrust::BeamThrust(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), DISFinalState::DISFinalState(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), DressedLeptons::DressedLeptons(), FinalState::FinalState(), FoxWolframMoments::FoxWolframMoments(), FParameter::FParameter(), HadronicFinalState::HadronicFinalState(), HeavyHadrons::HeavyHadrons(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), ATLAS_2016_I1468168::init(), ATLAS_2015_I1393758::init(), ATLAS_2016_I1419070::init(), ATLAS_2016_I1457605::init(), CMS_2015_I1397174::init(), CMS_2016_I1473674::init(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState< ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), MissingMomentum::MissingMomentum(), NeutralFinalState::NeutralFinalState(), NonHadronicFinalState::NonHadronicFinalState(), NonPromptFinalState::NonPromptFinalState(), ParisiTensor::ParisiTensor(), PrimaryHadrons::PrimaryHadrons(), PromptFinalState::PromptFinalState(), SmearedJets::SmearedJets(), SmearedMET::SmearedMET(), SmearedParticles::SmearedParticles(), Sphericity::Sphericity(), Spherocity::Spherocity(), TauFinder::TauFinder(), Thrust::Thrust(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), VetoedFinalState::VetoedFinalState(), VisibleFinalState::VisibleFinalState(), WFinder::WFinder(), and ZFinder::ZFinder().

{ return declareProjection(proj, name); }
const PROJ& apply ( const Event evt,
const Projection proj 
) const [inline, inherited]

Apply the supplied projection on event evt (user-facing alias).

Todo:
Add SFINAE to require that PROJ inherit from Projection

Definition at line 80 of file ProjectionApplier.hh.

{ return applyProjection<PROJ>(evt, proj); }
const PROJ& apply ( const Event evt,
const PROJ &  proj 
) const [inline, inherited]

Apply the supplied projection on event evt (user-facing alias).

Todo:
Add SFINAE to require that PROJ inherit from Projection

Definition at line 92 of file ProjectionApplier.hh.

{ return applyProjection<PROJ>(evt, proj); }
const PROJ& apply ( const Event evt,
const std::string &  name 
) const [inline, inherited]

Apply the supplied projection on event evt (user-facing alias).

Todo:
Add SFINAE to require that PROJ inherit from Projection

Definition at line 104 of file ProjectionApplier.hh.

References ProjectionApplier::name().

{ return applyProjection<PROJ>(evt, name); }
const PROJ& applyProjection ( const Event evt,
const Projection proj 
) const [inline, inherited]

Apply the supplied projection on event evt.

Todo:
Add SFINAE to require that PROJ inherit from Projection

Definition at line 74 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

Referenced by DISFinalState::project().

                                                                                {
      return pcast<PROJ>(_applyProjection(evt, proj));
    }
const PROJ& applyProjection ( const Event evt,
const PROJ &  proj 
) const [inline, inherited]

Apply the supplied projection on event evt.

Todo:
Add SFINAE to require that PROJ inherit from Projection

Definition at line 86 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

                                                                          {
      return pcast<PROJ>(_applyProjection(evt, proj));
    }
const PROJ& applyProjection ( const Event evt,
const std::string &  name 
) const [inline, inherited]

Apply the named projection on event evt.

Todo:
Add SFINAE to require that PROJ inherit from Projection

Definition at line 98 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

                                                                               {
      return pcast<PROJ>(_applyProjection(evt, name));
    }
const set< PdgIdPair > beamPairs ( ) const [virtual, inherited]

Return the allowed beam pairs on which this projection can operate, not including recursion. Derived classes should ensure that all contained projections are registered in the _projections set for the beam constraint chaining to work.

Todo:
Remove the beam constraints system from projections.

Definition at line 35 of file Projection.cc.

References Projection::_beamPairs, Projection::beamPairs(), Projection::getLog(), ProjectionApplier::getProjections(), Rivet::intersection(), Rivet::p(), and Log::TRACE.

Referenced by Projection::beamPairs().

                                                   {
    set<PdgIdPair> ret = _beamPairs;
    set<ConstProjectionPtr> projs = getProjections();
    for (set<ConstProjectionPtr>::const_iterator ip = projs.begin(); ip != projs.end(); ++ip) {
      ConstProjectionPtr p = *ip;
      getLog() << Log::TRACE << "Proj addr = " << p << endl;
      if (p) ret = intersection(ret, p->beamPairs());
    }
    return ret;
  }
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 24 of file Projection.cc.

References Projection::compare(), and Rivet::p().

Referenced by less< const Rivet::Projection * >::operator()().

                                                   {
    const std::type_info& thisid = typeid(*this);
    const std::type_info& otherid = typeid(p);
    if (thisid == otherid) {
      return compare(p) < 0;
    } else {
      return thisid.before(otherid);
    }
  }
virtual unique_ptr<Projection> clone ( ) const [pure virtual, inherited]

Clone on the heap.

Implements Projection.

int compare ( const Projection p) const [protected, virtual]

Compare projections.

Reimplemented from FinalState.

Definition at line 7 of file LeadingParticlesFinalState.cc.

References LeadingParticlesFinalState::_ids, LeadingParticlesFinalState::_leading_only, Rivet::cmp(), Rivet::EQUIVALENT, Projection::mkNamedPCmp(), Rivet::ORDERED, Rivet::p(), and Rivet::UNORDERED.

                                                                   {
    // First compare the final states we are running on
    int fscmp = mkNamedPCmp(p, "FS");
    if (fscmp != EQUIVALENT) return fscmp;

    // Then compare the two as final states
    const LeadingParticlesFinalState& other = dynamic_cast<const LeadingParticlesFinalState&>(p);
    fscmp = FinalState::compare(other);
    if (fscmp != EQUIVALENT) return fscmp;

    int locmp = cmp(_leading_only, other._leading_only);
    if (locmp != EQUIVALENT) return locmp;

    // Finally compare the IDs
    if (_ids < other._ids) return ORDERED;
    else if (other._ids < _ids) return UNORDERED;
    return EQUIVALENT;
  }
const PROJ& declare ( const PROJ &  proj,
const std::string &  name 
) [inline, protected, inherited]

Register a contained projection (user-facing version)

Todo:
Add SFINAE to require that PROJ inherit from Projection

Definition at line 151 of file ProjectionApplier.hh.

References ProjectionApplier::declareProjection().

Referenced by CDF_2009_S8057893::CDF_2009_S8057893::init(), ATLAS_2010_S8894728::init(), CMS_2010_S8547297::init(), CMS_2010_S8656010::init(), ALICE_2012_I1181770::init(), CMS_2015_I1327224::init(), CMS_2012_PAS_QCD_11_010::init(), CMS_2015_I1356998::init(), ATLAS_2011_S8994773::init(), CMS_2011_S8950903::init(), CMS_2015_I1384119::init(), ATLAS_2014_I1298811::init(), ALICE_2014_I1300380::init(), ATLAS_2011_I894867::init(), CMS_2012_I1090423::init(), ATLAS_2015_I1387176::init(), ALICE_2011_S8909580::init(), CMSTOTEM_2014_I1294140::init(), TOTEM_2012_I1220862::init(), LHCB_2013_I1208105::init(), CMS_2011_S8968497::init(), CMS_2011_S8941262::init(), CMS_2011_S8973270::init(), CMS_2012_I1184941::init(), CMS_2012_I1193338::init(), ATLAS_2010_CONF_2010_049::init(), CMS_2011_S9086218::init(), CMS_2012_I1087342::init(), CMS_2011_S9215166::init(), ATLAS_2014_I1282441::init(), ATLAS_2014_I1315949::init(), ALICE_2011_S8945144::init(), ATLAS_2012_I1091481::init(), BABAR_2005_S6181155::init(), CDF_2007_S7057202::init(), TOTEM_2012_I1115294::init(), TOTEM_2014_I1328627::init(), ALICE_2015_I1357424::init(), ATLAS_2015_I1404878::init(), ARGUS_1993_S2789213::init(), BABAR_2007_S6895344::init(), LHCF_2012_I1115479::init(), MC_ELECTRONS::init(), BABAR_2013_I1238276::init(), MC_JETTAGS::init(), ATLAS_2011_I930220::init(), BELLE_2001_S4598261::init(), MC_MUONS::init(), MC_TAUS::init(), SFM_1984_S1178091::init(), ATLAS_2010_S8591806::init(), ATLAS_2011_S9002537::init(), CMS_2011_I954992::init(), CMS_2011_S8957746::init(), CMS_2011_S8978280::init(), CMS_2011_S9088458::init(), CMS_2013_I1122847::init(), CMS_2013_I1265659::init(), CMS_2015_I1346843::init(), ATLAS_2015_I1390114::init(), D0_2011_I895662::init(), BELLE_2015_I1397632::init(), ATLAS_2012_I1188891::init(), CDF_2012_NOTE10874::init(), ATLAS_2010_S8914702::init(), CMS_2013_I1208923::init(), CMS_2013_I1273574::init(), D0_2010_S8570965::init(), ATLAS_2015_I1397635::init(), ATLAS_2011_I925932::init(), EXAMPLE_CUTS::init(), ATLAS_2016_I1452559::init(), BABAR_2013_I1116411::init(), BABAR_2015_I1334693::init(), BELLE_2008_I786560::init(), MC_MET::init(), BELLE_2011_I878990::init(), BELLE_2013_I1238273::init(), ATLAS_2015_I1408516::init(), ATLAS_2016_I1424838::init(), BABAR_2007_S7266081::init(), ATLAS_2012_I1124167::init(), STAR_2006_S6500200::init(), STAR_2008_S7993412::init(), UA5_1987_S1640666::init(), CMS_2013_I1256943::init(), CMS_2015_I1310737::init(), CMS_QCD_10_024::init(), ATLAS_2011_I921594::init(), ATLAS_2015_I1394679::init(), ATLAS_2015_I1397637::init(), MC_HINC::init(), MC_JETS::init(), MC_KTSPLITTINGS::init(), CDF_1993_S2742446::init(), CDF_1997_S3541940::init(), CDF_2000_S4155203::init(), OPAL_2003_I599181::init(), CDF_2005_S6080774::init(), CDF_2006_S6450792::init(), ALEPH_1995_I382179::init(), ATLAS_2011_S9128077::init(), CMS_2013_I1258128::init(), CMS_2013_I1261026::init(), CMS_2014_I1298810::init(), ATLAS_2014_I1319490::init(), D0_1995_I398175::init(), D0_2000_S4480767::init(), EXAMPLE::init(), LHCB_2012_I1208102::init(), MC_HJETS::init(), MC_WWINC::init(), MC_ZZINC::init(), STAR_2006_S6870392::init(), ATLAS_2012_I1204447::init(), UA5_1982_S875503::init(), CDF_2008_S8093652::init(), UA5_1989_S1926373::init(), ATLAS_2013_I1190187::init(), ATLAS_2013_I1244522::init(), CMS_2012_I1107658::init(), CDF_2008_S7782535::init(), CMS_2013_I1209721::init(), CMS_2015_I1385107::init(), ATLAS_2014_I1307756::init(), D0_2008_S6879055::init(), DELPHI_2011_I890503::init(), E735_1998_S3905616::init(), L3_1992_I336180::init(), ATLAS_2016_I1444991::init(), ATLAS_2011_I928289_W::init(), MC_DIPHOTON::init(), MC_HHJETS::init(), ATLAS_2011_I928289_Z::init(), ALEPH_1991_S2435284::init(), ATLAS_2011_I944826::init(), ARGUS_1993_S2669951::init(), MC_WWKTSPLITTINGS::init(), MC_ZZJETS::init(), MC_ZZKTSPLITTINGS::init(), OPAL_1993_I342766::init(), ATLAS_2012_I1183818::init(), PDG_TAUS::init(), ATLAS_2012_I1204784::init(), ATLAS_2013_I1216670::init(), ATLAS_2011_S9035664::init(), ATLAS_2013_I1219109::init(), ATLAS_2013_I1243871::init(), CMS_2012_I1102908::init(), ATLAS_2014_I1268975::init(), CMS_2013_I1272853::init(), ATLAS_2014_I1325553::init(), D0_2000_I499943::init(), ATLAS_2014_I1327229::init(), ATLAS_2015_I1345452::init(), ATLAS_2015_I1376945::init(), EXAMPLE_SMEAR::init(), MC_HKTSPLITTINGS::init(), MC_ZKTSPLITTINGS::init(), MC_PHOTONINC::init(), CDF_1988_S1865951::init(), CDF_1990_S2089246::init(), MC_ZINC::init(), OPAL_1995_S3198391::init(), OPAL_1996_S3257789::init(), OPAL_1997_S3608263::init(), OPAL_1998_S3702294::init(), OPAL_1998_S3749908::init(), ATLAS_2011_S8924791::init(), OPAL_2000_S4418603::init(), CDF_2005_S6217184::init(), ALEPH_2002_S4823664::init(), D0_2007_S7075677::init(), D0_2009_S8202443::init(), ATLAS_2015_I1364361::init(), D0_2010_S8821313::init(), DELPHI_1999_S3960137::init(), MC_WKTSPLITTINGS::init(), ATLAS_2010_S8817804::init(), ATLAS_2011_S9120807::init(), D0_1996_S3324664::init(), UA5_1986_S1583476::init(), ALEPH_1996_S3196992::init(), MC_IDENTIFIED::init(), CDF_1994_S2952106::init(), ATLAS_2011_I954993::init(), MC_PHOTONJETS::init(), MC_PHOTONKTSPLITTINGS::init(), MC_WINC::init(), MC_ZJETS::init(), MC_WWJETS::init(), ATLAS_2012_I1199269::init(), ATLAS_2011_I945498::init(), D0_1996_S3214044::init(), D0_2008_S7554427::init(), D0_2008_S7863608::init(), D0_2010_S8671338::init(), ATLAS_2012_I1180197::init(), MC_LEADJETUE::init(), LHCB_2011_I919315::init(), MC_WJETS::init(), CDF_2008_S7540469::init(), ATLAS_2012_I1093738::init(), CDF_2008_S7828950::init(), H1_1995_S3167097::init(), D0_2001_S4674421::init(), UA1_1990_S2044935::init(), ATLAS_2011_S9131140::init(), ATLAS_2014_I1300647::init(), ATLAS_2011_S9212353::init(), ATLAS_2014_I1306615::init(), MC_TTBAR::init(), ATLAS_2012_CONF_2012_104::init(), ATLAS_2012_I1119557::init(), ATLAS_2016_I1458270::init(), ATLAS_2012_CONF_2012_105::init(), D0_2008_S7837160::init(), MC_GENERIC::init(), ATLAS_2011_I926145::init(), ALEPH_2004_S5765862::init(), JADE_1998_S3612880::init(), ATLAS_2015_I1351916::init(), ATLAS_2012_I1095236::init(), MC_QCD_PARTONS::init(), ALICE_2010_S8624100::init(), JADE_OPAL_2000_S4300807::init(), STAR_2009_UE_HELEN::init(), ATLAS_2011_S8983313::init(), ZEUS_2001_S4815815::init(), ATLAS_2013_I1217863_W::init(), ATLAS_2013_I1217863_Z::init(), ATLAS_2012_I1186556::init(), ATLAS_2012_CONF_2012_103::init(), ATLAS_2011_CONF_2011_098::init(), ATLAS_2012_CONF_2012_109::init(), ALEPH_1999_S4193598::init(), CDF_2008_S8095620::init(), H1_2000_S4129130::init(), STAR_2006_S6860818::init(), CMS_2012_I941555::init(), DELPHI_1995_S3137023::init(), CMS_2014_I1303894::init(), ATLAS_2012_I1126136::init(), OPAL_1997_S3396100::init(), ALICE_2010_S8625980::init(), ATLAS_2012_I1125575::init(), ATLAS_2012_I1112263::init(), CDF_2009_NOTE_9936::init(), LHCB_2013_I1218996::init(), ATLAS_2012_I1125961::init(), MC_HFJETS::init(), CDF_1996_S3108457::init(), ATLAS_2014_I1288706::init(), ALICE_2010_S8706239::init(), ATLAS_2012_I1190891::init(), ATLAS_2011_S9212183::init(), CMS_2013_I1218372::init(), ATLAS_2014_I1307243::init(), ATLAS_2012_CONF_2012_001::init(), UA5_1988_S1867512::init(), D0_2009_S8320160::init(), CDF_2001_S4563131::init(), CDF_2009_I856131::init(), ATLAS_2016_I1426695::init(), CDF_2009_S8436959::init(), CDF_2000_S4266730::init(), ATLAS_2013_I1230812::init(), CDF_1998_S3618439::init(), MC_SUSY::init(), D0_2009_S8349509::init(), ATLAS_2014_I1298023::init(), CDF_1996_S3349578::init(), ATLAS_2011_S8971293::init(), MC_VH2BB::init(), D0_2010_S8566488::init(), ATLAS_2012_I1082936::init(), ATLAS_2015_CONF_2015_041::init(), D0_2006_S6438750::init(), SLD_2002_S4869273::init(), DELPHI_2002_069_CONF_603::init(), MC_WPOL::init(), ALEPH_2001_S4656318::init(), CDF_2001_S4517016::init(), ATLAS_2010_S8919674::init(), CDF_1996_S3418421::init(), SLD_1996_S3398250::init(), LHCB_2014_I1281685::init(), LHCB_2012_I1119400::init(), MC_PHOTONS::init(), ATLAS_2014_I1326641::init(), LHCB_2011_I917009::init(), ATLAS_2011_S9108483::init(), ATLAS_2014_I1304688::init(), ATLAS_2014_I1306294::init(), CDF_2006_S6653332::init(), D0_2008_S7662670::init(), CDF_2008_S7541902::init(), H1_1994_S2919893::init(), ATLAS_2011_CONF_2011_090::init(), ATLAS_2011_S9225137::init(), ATLAS_2012_I1117704::init(), OPAL_2002_S5361494::init(), ATLAS_2012_I1082009::init(), ATLAS_2012_I946427::init(), ATLAS_2011_S9019561::init(), ATLAS_2012_I1084540::init(), TASSO_1990_S2148048::init(), DELPHI_2000_S4328825::init(), ATLAS_2012_I943401::init(), ATLAS_2012_I1083318::init(), CMS_2013_I1224539_WJET::init(), CMS_2013_I1224539_DIJET::init(), ATLAS_2012_CONF_2012_153::init(), ATLAS_2013_I1217867::init(), CDF_2009_S8233977::init(), CMS_2013_I1224539_ZJET::init(), CDF_2010_S8591881_DY::init(), ATLAS_2016_I1419652::init(), CDF_2010_S8591881_QCD::init(), CDF_2001_S4751469::init(), D0_2004_S5992206::init(), ATLAS_2014_I1312627::init(), D0_2008_S7719523::init(), ATLAS_2010_S8918562::init(), ATLAS_2012_I1094568::init(), ATLAS_2011_S9041966::init(), DELPHI_1996_S3430090::init(), ALEPH_1996_S3486095::init(), OPAL_2004_S6132243::init(), OPAL_1994_S2927284::init(), BELLE_2013_I1216515::init(), STAR_2008_S7869363::init(), ATLAS_2011_S9126244::init(), ATLAS_2011_I919017::init(), OPAL_2001_S4553896::init(), ATLAS_2012_I1203852::init(), CDF_2004_S5839831::init(), BABAR_2003_I593379::init(), CMS_2015_I1370682::init(), ARGUS_1993_S2653028::init(), ATLAS_2012_I1094061::init(), CLEO_2004_S5809304::init(), CMS_2014_I1305624::init(), OPAL_1998_S3780481::init(), ATLAS_2012_I1093734::init(), OPAL_1993_S2692198::init(), ATLAS_2014_I1279489::init(), ATLAS_2014_I1282447::init(), ATLAS_2012_I1094564::init(), SLD_2004_S5693039::init(), SLD_1999_S3743934::init(), PDG_HADRON_MULTIPLICITIES::init(), and PDG_HADRON_MULTIPLICITIES_RATIOS::init().

{ return declareProjection(proj, name); }
const PROJ& declareProjection ( 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.

Todo:
Add SFINAE to require that PROJ inherit from Projection

Definition at line 142 of file ProjectionApplier.hh.

References ProjectionApplier::_declareProjection().

Referenced by ProjectionApplier::addProjection(), and ProjectionApplier::declare().

                                                                           {
      const Projection& reg = _declareProjection(proj, name);
      const PROJ& rtn = dynamic_cast<const PROJ&>(reg);
      return rtn;
    }

Clone on the heap.

const collection_type& entities ( ) const [inline, inherited]

Template-usable interface common to JetAlg.

Definition at line 176 of file ParticleFinder.hh.

References ParticleFinder::particles().

                                            {
      return particles();
    }
const PROJ& get ( const std::string &  name) const [inline, inherited]

Get the named projection, specifying return type via a template argument (user-facing alias).

Todo:
Add SFINAE to require that PROJ inherit from Projection

Definition at line 57 of file ProjectionApplier.hh.

References ProjectionApplier::name().

Referenced by ProjectionHandler::_register().

{ return getProjection<PROJ>(name); }
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 115 of file Projection.hh.

References Projection::name().

Referenced by Projection::beamPairs(), InvMassFinalState::calc(), ChargedFinalState::project(), InitialQuarks::project(), NonPromptFinalState::project(), PromptFinalState::project(), LossyFinalState< ConstRandomFilter >::project(), UnstableFinalState::project(), and VetoedFinalState::project().

                        {
      string logname = "Rivet.Projection." + name();
      return Log::getLog(logname);
    }
const PROJ& getProjection ( const std::string &  name) const [inline, inherited]

Get the named projection, specifying return type via a template argument.

Todo:
Add SFINAE to require that PROJ inherit from Projection

Definition at line 50 of file ProjectionApplier.hh.

References ProjectionHandler::getProjection(), ProjectionApplier::getProjHandler(), and Rivet::p().

Referenced by ProjectionApplier::_applyProjection(), Rivet::pcmp(), and Hemispheres::project().

                                                           {
      const Projection& p = getProjHandler().getProjection(*this, name);
      return pcast<PROJ>(p);
    }
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 61 of file ProjectionApplier.hh.

References ProjectionHandler::getProjection(), and ProjectionApplier::getProjHandler().

                                                                 {
      return getProjHandler().getProjection(*this, name);
    }
std::set<ConstProjectionPtr> getProjections ( ) const [inline, inherited]

Get the contained projections, including recursion.

Definition at line 43 of file ProjectionApplier.hh.

References ProjectionHandler::DEEP, ProjectionHandler::getChildProjections(), and ProjectionApplier::getProjHandler().

Referenced by Projection::beamPairs().

bool inList ( const Particle particle) const [protected]

Check if the particle's ID is in the list.

Definition at line 78 of file LeadingParticlesFinalState.cc.

References LeadingParticlesFinalState::_ids, and Particle::pid().

Referenced by LeadingParticlesFinalState::project().

                                                                         {
    std::set < long >::const_iterator ilist = _ids.find(particle.pid());
    if (ilist != _ids.end()) return true;
    return false;
  }
bool isEmpty ( ) const [inline, inherited]
Deprecated:
Is this final state empty?

Definition at line 44 of file ParticleFinder.hh.

References ParticleFinder::particles().

{ return particles().empty(); }
void markAsOwned ( ) const [inline, inherited]

Mark object as owned by the _projhandler

Todo:
Huh? What's this for?

Definition at line 111 of file ProjectionApplier.hh.

References ProjectionApplier::_owned.

{ _owned = true; }
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.

Note:
Alias for mkNamedPCmp

Definition at line 51 of file Projection.cc.

References Rivet::pcmp().

Referenced by SmearedMET::compare(), SmearedParticles::compare(), and SmearedJets::compare().

                                                                                             {
    return pcmp(*this, otherparent, pname);
  }
virtual const Particles& particles ( ) const [inline, virtual, inherited]

Get the final-state particles in no particular order, with no cuts.

Definition at line 35 of file ParticleFinder.hh.

References ParticleFinder::_theParticles.

Referenced by ARGUS_1993_S2653028::analyze(), BABAR_2003_I593379::analyze(), CLEO_2004_S5809304::analyze(), BELLE_2013_I1216515::analyze(), OPAL_1994_S2927284::analyze(), ATLAS_2011_I894867::analyze(), PDG_HADRON_MULTIPLICITIES::analyze(), CMS_2012_I1193338::analyze(), PDG_HADRON_MULTIPLICITIES_RATIOS::analyze(), TOTEM_2012_I1220862::analyze(), OPAL_1993_S2692198::analyze(), BELLE_2001_S4598261::analyze(), BELLE_2008_I786560::analyze(), CMS_2015_I1384119::analyze(), SLD_2004_S5693039::analyze(), CMS_2012_I1184941::analyze(), OPAL_1998_S3780481::analyze(), CMS_2015_I1356998::analyze(), TOTEM_2012_I1115294::analyze(), TOTEM_2014_I1328627::analyze(), CMS_2010_S8656010::analyze(), CMS_2012_PAS_QCD_11_010::analyze(), ATLAS_2010_S8591806::analyze(), BABAR_2007_S6895344::analyze(), BABAR_2005_S6181155::analyze(), STAR_2008_S7993412::analyze(), ALICE_2014_I1300380::analyze(), LHCF_2012_I1115479::analyze(), SLD_1999_S3743934::analyze(), BABAR_2013_I1238276::analyze(), ALICE_2011_S8909580::analyze(), ALICE_2011_S8945144::analyze(), OPAL_1995_S3198391::analyze(), OPAL_1997_S3608263::analyze(), OPAL_2000_S4418603::analyze(), CMSTOTEM_2014_I1294140::analyze(), ARGUS_1993_S2669951::analyze(), ALEPH_2002_S4823664::analyze(), ALICE_2012_I1181770::analyze(), DELPHI_2011_I890503::analyze(), E735_1998_S3905616::analyze(), OPAL_1996_S3257789::analyze(), OPAL_1998_S3702294::analyze(), DELPHI_1999_S3960137::analyze(), OPAL_1993_I342766::analyze(), OPAL_2003_I599181::analyze(), BABAR_2007_S7266081::analyze(), ALEPH_1995_I382179::analyze(), CMS_QCD_10_024::analyze(), ALICE_2015_I1357424::analyze(), ATLAS_2011_S9002537::analyze(), DELPHI_1995_S3137023::analyze(), UA5_1982_S875503::analyze(), ALEPH_1999_S4193598::analyze(), CMS_2010_S8547297::analyze(), SLD_2002_S4869273::analyze(), L3_1992_I336180::analyze(), CDF_1990_S2089246::analyze(), ALEPH_2001_S4656318::analyze(), CDF_1988_S1865951::analyze(), ATLAS_2011_S9035664::analyze(), DELPHI_2002_069_CONF_603::analyze(), LHCB_2015_I1333223::analyze(), ATLAS_2011_I925932::analyze(), ALICE_2010_S8706239::analyze(), SFM_1984_S1178091::analyze(), CMS_2011_S8973270::analyze(), OPAL_2002_S5361494::analyze(), SLD_1996_S3398250::analyze(), DELPHI_2000_S4328825::analyze(), CDF_2008_S7540469::analyze(), CMS_2011_S9215166::analyze(), OPAL_1998_S3749908::analyze(), CMS_2013_I1272853::analyze(), LHCB_2011_I919315::analyze(), OPAL_1997_S3396100::analyze(), D0_2006_S6438750::analyze(), ALICE_2010_S8625980::analyze(), MC_PHOTONINC::analyze(), MC_IDENTIFIED::analyze(), MC_PHOTONKTSPLITTINGS::analyze(), STAR_2006_S6500200::analyze(), MC_LEADJETUE::analyze(), CDF_2009_S8233977::analyze(), UA5_1986_S1583476::analyze(), MC_PHOTONJETS::analyze(), CMS_2011_S8978280::analyze(), STAR_2006_S6860818::analyze(), CMS_2011_S8884919::analyze(), ATLAS_2012_I1082009::analyze(), ARGUS_1993_S2789213::analyze(), H1_1994_S2919893::analyze(), LHCB_2010_S8758301::analyze(), CDF_2008_S8095620::analyze(), CMS_2013_I1256943::analyze(), LHCB_2011_I917009::analyze(), CDF_2006_S6653332::analyze(), STAR_2009_UE_HELEN::analyze(), LHCB_2013_I1208105::analyze(), UA1_1990_S2044935::analyze(), LHCB_2014_I1281685::analyze(), CMS_2013_I1218372::analyze(), LHCB_2013_I1218996::analyze(), D0_2001_S4674421::analyze(), CDF_2008_S7541902::analyze(), ATLAS_2012_I1183818::analyze(), ATLAS_2016_I1424838::analyze(), H1_1995_S3167097::analyze(), JADE_1998_S3612880::analyze(), CDF_2010_S8591881_QCD::analyze(), CDF_2010_S8591881_DY::analyze(), ATLAS_2012_I1093738::analyze(), H1_2000_S4129130::analyze(), TASSO_1990_S2148048::analyze(), MC_GENERIC::analyze(), LHCB_2012_I1119400::analyze(), ATLAS_2012_I1084540::analyze(), STAR_2008_S7869363::analyze(), ATLAS_2016_I1444991::analyze(), ATLAS_2011_I926145::analyze(), D0_2008_S7719523::analyze(), ATLAS_2010_S8894728::analyze(), ATLAS_2015_I1404878::analyze(), MC_SUSY::analyze(), ATLAS_2012_I1091481::analyze(), ATLAS_2011_I944826::analyze(), ALEPH_1996_S3486095::analyze(), ALEPH_2004_S5765862::analyze(), ATLAS_2012_I1094061::analyze(), DELPHI_1996_S3430090::analyze(), ATLAS_2012_I1093734::analyze(), ATLAS_2014_I1282447::analyze(), BeamThrust::calc(), FParameter::calc(), Spherocity::calc(), Thrust::calc(), Sphericity::calc(), ParticleFinder::empty(), ParticleFinder::entities(), CMS_2013_I1261026::eventDecomp(), ATLAS_2012_I1084540::fillMap(), ATLAS_2014_I1288706::FillPlots(), ATLAS_2010_S8918562::fillPtEtaNch(), ATLAS_2016_I1419652::fillPtEtaNch(), ParticleFinder::isEmpty(), CMS_2013_I1258128::makePhotonCut(), ParticleFinder::particles(), ParticleFinder::particlesByE(), ParticleFinder::particlesByEt(), ParticleFinder::particlesByEta(), ParticleFinder::particlesByModEta(), ParticleFinder::particlesByModRapidity(), ParticleFinder::particlesByP(), ParticleFinder::particlesByPt(), ParticleFinder::particlesByRapidity(), ChargedLeptons::project(), CentralEtHCM::project(), TriggerCDFRun0Run1::project(), TriggerCDFRun2::project(), ChargedFinalState::project(), DISLepton::project(), MergedFinalState::project(), HadronicFinalState::project(), NonHadronicFinalState::project(), FinalState::project(), NonPromptFinalState::project(), TauFinder::project(), PrimaryHadrons::project(), VisibleFinalState::project(), NeutralFinalState::project(), PromptFinalState::project(), TriggerUA5::project(), LossyFinalState< ConstRandomFilter >::project(), FoxWolframMoments::project(), LeadingParticlesFinalState::project(), InvMassFinalState::project(), HeavyHadrons::project(), MissingMomentum::project(), DressedLeptons::project(), Hemispheres::project(), IdentifiedFinalState::project(), VetoedFinalState::project(), and ParticleFinder::size().

{ return _theParticles; }
Particles particles ( const Cut c) const [inline, inherited]

Get the final-state particles, with optional cuts.

Note:
Returns a copy rather than a reference, due to cuts
Todo:
Can't this be a const Cut& arg?

Definition at line 50 of file ParticleFinder.hh.

References Rivet::Cuts::open(), Rivet::p(), ParticleFinder::particles(), and ParticleFinder::size().

                                            {
      // Just return a copy of particles() if the cut is open
      if (c == Cuts::open()) return particles();
      // If there is a non-trivial cut...
      Particles rtn;
      rtn.reserve(size());
      foreach (const Particle& p, particles())
        if (c->accept(p)) rtn.push_back(p);
      return rtn;
    }
Particles particles ( sorter,
const Cut c = Cuts::open() 
) const [inline, inherited]
Todo:

Want to add a general filtering function, but that clashes with the sorting functor... SFINAE?

Use a std::function instead of typename F?

Get the final-state particles, ordered by supplied sorting function object.

Note:
Returns a copy rather than a reference, due to cuts and sorting
Todo:
Can't this be a const Cut& arg?
Todo:
Will the vector be efficiently std::move'd by value through this function chain?

Definition at line 70 of file ParticleFinder.hh.

References ParticleFinder::particles(), and Rivet::sortBy().

                                                                 {
      /// @todo Will the vector be efficiently std::move'd by value through this function chain?
      return sortBy(particles(c), sorter);
    }
Particles particles ( const Cut c,
sorter 
) const [inline, inherited]

Get the final-state particles, ordered by supplied sorting function object.

Note:
Returns a copy rather than a reference, due to cuts and sorting
Todo:

Can't this be a const Cut& arg?

Use a std::function instead of typename F?

Todo:
Will the vector be efficiently std::move'd by value through this function chain?

Definition at line 80 of file ParticleFinder.hh.

References ParticleFinder::particles(), and Rivet::sortBy().

                                                      {
      /// @todo Will the vector be efficiently std::move'd by value through this function chain?
      return sortBy(particles(c), sorter);
    }
Particles particlesByE ( const Cut c = Cuts::open()) const [inline, inherited]

Get the final-state particles, ordered by decreasing $ E $.

Todo:
Remove, since there is the templated method or sortByX methods available for these unusual cases?
Deprecated:
Use the version with a sorter function argument

Definition at line 116 of file ParticleFinder.hh.

References Rivet::cmpMomByE(), and ParticleFinder::particles().

                                                           {
      return particles(c, cmpMomByE);
    }
Particles particlesByEt ( const Cut c = Cuts::open()) const [inline, inherited]

Get the final-state particles, ordered by decreasing $ E_T $.

Todo:
Remove, since there is the templated method or sortByX methods available for these unusual cases?
Deprecated:
Use the version with a sorter function argument

Definition at line 124 of file ParticleFinder.hh.

References Rivet::cmpMomByEt(), and ParticleFinder::particles().

                                                            {
      return particles(c, cmpMomByEt);
    }
Particles particlesByEta ( const Cut c = Cuts::open()) const [inline, inherited]

Get the final-state particles, ordered by increasing $ \eta $.

Todo:
Remove, since there is the templated method or sortByX methods available for these unusual cases?
Deprecated:
Use the version with a sorter function argument

Definition at line 132 of file ParticleFinder.hh.

References Rivet::cmpMomByEta(), and ParticleFinder::particles().

                                                             {
      return particles(c, cmpMomByEta);
    }
Particles particlesByModEta ( const Cut c = Cuts::open()) const [inline, inherited]

Get the final-state particles, ordered by increasing $ |\eta| $.

Todo:
Remove, since there is the templated method or sortByX methods available for these unusual cases?
Deprecated:
Use the version with a sorter function argument

Definition at line 140 of file ParticleFinder.hh.

References Rivet::cmpMomByAbsEta(), and ParticleFinder::particles().

                                                                {
      return particles(c, cmpMomByAbsEta);
    }
Particles particlesByModRapidity ( const Cut c = Cuts::open()) const [inline, inherited]

Get the final-state particles, ordered by increasing $ |y| $.

Todo:
Remove, since there is the templated method or sortByX methods available for these unusual cases?
Deprecated:
Use the version with a sorter function argument

Definition at line 156 of file ParticleFinder.hh.

References Rivet::cmpMomByAbsRap(), and ParticleFinder::particles().

                                                                     {
      return particles(c, cmpMomByAbsRap);
    }
Particles particlesByP ( const Cut c = Cuts::open()) const [inline, inherited]

Get the final-state particles, ordered by decreasing $ p $.

Todo:
Remove, since there is the templated method or sortByX methods available for these unusual cases?
Deprecated:
Use the version with a sorter function argument

Definition at line 108 of file ParticleFinder.hh.

References Rivet::cmpMomByP(), and ParticleFinder::particles().

                                                           {
      return particles(c, cmpMomByP);
    }
Particles particlesByPt ( const Cut c = Cuts::open()) const [inline, inherited]

Get the final-state particles, ordered by decreasing $ p_T $ and with optional cuts.

This is a very common use-case, so is available as syntatic sugar for particles(c, cmpMomByPt).

Definition at line 88 of file ParticleFinder.hh.

References Rivet::cmpMomByPt(), and ParticleFinder::particles().

Referenced by ATLAS_2011_S8994773::analyze(), CDF_2012_NOTE10874::analyze(), MC_HHJETS::analyze(), ATLAS_2012_I1124167::analyze(), ATLAS_2010_S8894728::analyze(), ATLAS_2012_I1091481::analyze(), and SmearedParticles::project().

                                                           {
      return particles(c, cmpMomByPt);
    }
Particles particlesByPt ( double  ptmin) const [inline, inherited]

Get the final-state particles, ordered by decreasing $ p_T $ and with a cut on minimum $ p_T $.

This is a very common use-case, so is available as syntatic sugar for particles(Cuts::pT >= ptmin, cmpMomByPt).

Definition at line 95 of file ParticleFinder.hh.

References Rivet::cmpMomByPt(), ParticleFinder::particles(), and Rivet::Cuts::pT.

                                                {
      return particles(Cuts::pT >= ptmin, cmpMomByPt);
    }
Particles particlesByRapidity ( const Cut c = Cuts::open()) const [inline, inherited]

Get the final-state particles, ordered by increasing $ y $.

Todo:
Remove, since there is the templated method or sortByX methods available for these unusual cases?
Deprecated:
Use the version with a sorter function argument

Definition at line 148 of file ParticleFinder.hh.

References Rivet::cmpMomByRap(), and ParticleFinder::particles().

                                                                  {
      return particles(c, cmpMomByRap);
    }
void project ( const Event e) [protected, virtual]

Apply the projection on the supplied event.

Reimplemented from FinalState.

Definition at line 27 of file LeadingParticlesFinalState.cc.

References LeadingParticlesFinalState::_leading_only, ParticleFinder::_theParticles, FinalState::accept(), LeadingParticlesFinalState::inList(), MSG_DEBUG, Rivet::p(), ParticleFinder::particles(), and ParticleBase::pT().

                                                          {
    _theParticles.clear();
    const FinalState& fs = applyProjection<FinalState>(e, "FS");

    // Temporary container
    map<long, Particles::const_iterator> tmp;

    const Particles& particles = fs.particles();
    MSG_DEBUG("Original final state particles size " << particles.size());
    Particles::const_iterator ifs;
    for (ifs = particles.begin(); ifs != particles.end(); ++ifs) {
      if (inList(*ifs) && FinalState::accept(*ifs->genParticle())) {
        // Look for an existing particle in tmp container
        map < long, Particles::const_iterator >::const_iterator itmp = tmp.find(ifs->pid());
        if (itmp != tmp.end()) {  // if a particle with this type has been already selected
          // If the new pT is higher than the previous one, then substitute...
          if (ifs->pT() > itmp->second->pT()) {
            tmp[ifs->pid()] = ifs;
          }
          // ...otherwise insert in the container
        } else {
          tmp[ifs->pid()] = ifs;
        }
      }
    }

    // Loop on the tmp container and fill _theParticles
    map<long, Particles::const_iterator>::const_iterator i;
    for (i = tmp.begin(); i != tmp.end(); ++i) {
      MSG_DEBUG("LeadingParticlesFinalState is accepting particle ID " << i->second->pid()
               << " with momentum " << i->second->momentum());
      _theParticles.push_back(*(i->second));
    }

    if (_leading_only) {
      double ptmax=0.0;
      Particle pmax;

      foreach (const Particle& p, _theParticles) {
        if (p.pT() > ptmax) {
          ptmax = p.pT();
          pmax = p;
        }
      }

      _theParticles.clear();
      _theParticles.push_back(pmax);
    }
  }
void setLeadingOnly ( const bool &  leadingonly) [inline]

Toggle whether to keep track only of the leading particle of any ID, or the leading particle of all IDs separately Default is the latter (=false)

Definition at line 44 of file LeadingParticlesFinalState.hh.

References LeadingParticlesFinalState::_leading_only.

Referenced by ATLAS_2012_I1083318::init().

                                                 {
      _leading_only = leadingonly;
    }
void setName ( const std::string &  name) [inline, inherited]

Used by derived classes to set their name.

Definition at line 121 of file Projection.hh.

References Projection::_name, and Projection::name().

Referenced by FastJets::_initBase(), Beam::Beam(), BeamThrust::BeamThrust(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), ConstLossyFinalState::ConstLossyFinalState(), DISFinalState::DISFinalState(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), DressedLeptons::DressedLeptons(), FinalState::FinalState(), FoxWolframMoments::FoxWolframMoments(), FParameter::FParameter(), HadronicFinalState::HadronicFinalState(), HeavyHadrons::HeavyHadrons(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), InitialQuarks::InitialQuarks(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState< ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), MissingMomentum::MissingMomentum(), NeutralFinalState::NeutralFinalState(), NonHadronicFinalState::NonHadronicFinalState(), NonPromptFinalState::NonPromptFinalState(), ParisiTensor::ParisiTensor(), PrimaryHadrons::PrimaryHadrons(), PromptFinalState::PromptFinalState(), SmearedJets::SmearedJets(), SmearedMET::SmearedMET(), SmearedParticles::SmearedParticles(), Sphericity::Sphericity(), Spherocity::Spherocity(), TauFinder::TauFinder(), Thrust::Thrust(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), UnstableFinalState::UnstableFinalState(), VetoedFinalState::VetoedFinalState(), VisibleFinalState::VisibleFinalState(), WFinder::WFinder(), and ZFinder::ZFinder().

                                        {
      _name = name;
    }

Friends And Related Function Documentation

friend class Cmp< Projection > [friend, inherited]

The Cmp specialization for Projection is a friend.

Definition at line 36 of file Projection.hh.

friend class Event [friend, inherited]

Event is a friend.

Definition at line 33 of file Projection.hh.


Member Data Documentation

bool _allowProjReg [protected, inherited]

Flag to forbid projection registration in analyses until the init phase.

Definition at line 176 of file ProjectionApplier.hh.

Referenced by ProjectionApplier::_declareProjection(), and Analysis::Analysis().


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