UnstableFinalState Class Reference

Project out all physical-but-decayed particles in an event. More...

#include <UnstableFinalState.hh>

Inheritance diagram for UnstableFinalState:
Inheritance graph
[legend]
Collaboration diagram for UnstableFinalState:
Collaboration graph
[legend]

List of all members.

Public Types

typedef Particle entity_type
typedef ParticleVector collection_type

Public Member Functions

virtual const ParticleVectorparticles () const
 Access the projected final-state particles.
virtual bool empty () const
 Is this final state empty?
virtual bool isEmpty () const
template<typename F >
const ParticleVectorparticles (F sorter) const
 Get the final-state particles, ordered by supplied sorting function object.
const ParticleVectorparticlesByPt () const
 Get the final-state particles, ordered by decreasing $ p_T $.
const ParticleVectorparticlesByP () const
 Get the final-state particles, ordered by decreasing $ p $.
const ParticleVectorparticlesByE () const
 Get the final-state particles, ordered by decreasing $ E $.
const ParticleVectorparticlesByEt () const
 Get the final-state particles, ordered by decreasing $ E_T $.
const ParticleVectorparticlesByEta () const
 Get the final-state particles, ordered by increasing $ \eta $.
const ParticleVectorparticlesByModEta () const
 Get the final-state particles, ordered by increasing $ |\eta| $.
virtual size_t size () const
 Access the projected final-state particles.
virtual double ptMin () const
 Minimum-$ p_\perp $ requirement.
const collection_typeentities () const
 Template-usable interface common to JetAlg.
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.
Standard constructors and destructors.

 UnstableFinalState (double mineta=-MAXRAPIDITY, double maxeta=MAXRAPIDITY, double minpt=0.0 *GeV)
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

virtual void project (const Event &e)
 Apply the projection to the event.
virtual int compare (const Projection &p) const
 Compare projections.
bool accept (const Particle &p) const
 Decide if a particle is to be accepted or not.
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

double _etamin
 The minimum allowed pseudorapidity.
double _etamax
 The maximum allowed pseudorapidity.
double _ptmin
 The minimum allowed transverse momentum.
ParticleVector _theParticles
 The final-state particles.
vector< pair< double, double > > _etaRanges
 The ranges allowed for pseudorapidity.
bool _allowProjReg
 Flag to forbid projection registration in analyses until the init phase.

Friends

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

Detailed Description

Project out all physical-but-decayed particles in an event.

Definition at line 13 of file UnstableFinalState.hh.


Member Typedef Documentation

typedef ParticleVector collection_type [inherited]

Definition at line 93 of file FinalState.hh.

typedef Particle entity_type [inherited]

Definition at line 92 of file FinalState.hh.


Constructor & Destructor Documentation

UnstableFinalState ( double  mineta = -MAXRAPIDITY,
double  maxeta = MAXRAPIDITY,
double  minpt = 0.0*GeV 
) [inline]

The default constructor. May specify the minimum and maximum pseudorapidity $ \eta $ and the min $ p_T $ (in GeV).

Definition at line 20 of file UnstableFinalState.hh.

References Projection::setName().

Referenced by UnstableFinalState::clone().

00023       : _etamin(mineta), _etamax(maxeta), _ptmin(minpt)
00024     {
00025       setName("UnstableFinalState");
00026       // addCut("eta", MORE_EQ, mineta);
00027       // addCut("eta", LESS_EQ, maxeta);
00028       // addCut("pT",  MORE_EQ, minpt);
00029     }


Member Function Documentation

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, ProjectionApplier::getProjHandler(), ProjectionApplier::name(), Projection::name(), and ProjectionHandler::registerProjection().

Referenced by ProjectionApplier::addProjection().

00034                                                                              {
00035     if (!_allowProjReg) {
00036       cerr << "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   }

bool accept ( const Particle p  )  const [protected, inherited]

Decide if a particle is to be accepted or not.

Definition at line 99 of file FinalState.cc.

References FinalState::_etaRanges, FinalState::_ptmin, FourVector::eta(), Rivet::eta(), Particle::genParticle(), Particle::hasGenParticle(), Particle::momentum(), FourMomentum::pT(), and Rivet::pT().

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

00099                                                  {
00100     // Not having s.c. == 1 should never happen!
00101     assert(!p.hasGenParticle() || p.genParticle().status() == 1);
00102 
00103     // Check pT cut
00104     if (_ptmin > 0.0) {
00105       const double pT = p.momentum().pT();
00106       if (pT < _ptmin) return false;
00107     }
00108 
00109     // Check eta cuts
00110     if (!_etaRanges.empty()) {
00111       bool eta_pass = false;
00112       const double eta = p.momentum().eta();
00113       typedef pair<double,double> EtaPair;
00114       foreach (const EtaPair& etacuts, _etaRanges) {
00115         if (eta > etacuts.first && eta < etacuts.second) {
00116           eta_pass = true;
00117           break;
00118         }
00119       }
00120       if (!eta_pass) return false;
00121     }
00122  
00123     return true;
00124   }

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     }

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 113 of file ProjectionApplier.hh.

References ProjectionApplier::_addProjection().

Referenced by ZFinder::_init(), WFinder::_init(), VetoedFinalState::addVetoOnThisFinalState(), BeamThrust::BeamThrust(), 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(), FParameter::FParameter(), 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(), TASSO_1990_S2148048::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_WPOL::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(), LHCB_2010_S8758301::init(), JADE_OPAL_2000_S4300807::init(), JADE_1998_S3612880::init(), H1_2000_S4129130::init(), H1_1995_S3167097::init(), H1_1994_S2919893::init(), ExampleAnalysis::init(), E735_1998_S3905616::init(), DELPHI_2003_WUD_03_11::init(), DELPHI_2002_069_CONF_603::init(), DELPHI_1996_S3430090::init(), DELPHI_1995_S3137023::init(), D0_2010_S8821313::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_1996_S3324664::init(), D0_1996_S3214044::init(), CMS_2011_S8978280::init(), CMS_2011_S8968497::init(), CMS_2011_S8957746::init(), CMS_2011_S8884919::init(), CMS_2010_S8656010::init(), CMS_2010_S8547297::init(), CDF_2010_S8591881_QCD::init(), CDF_2010_S8591881_DY::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_1990_S2089246::init(), CDF_1988_S1865951::init(), BELLE_2006_S6265367::init(), ATLAS_2011_S9120807::init(), ATLAS_2011_S9019561::init(), ATLAS_2011_S9002537::init(), ATLAS_2011_S8994773::init(), ATLAS_2011_S8983313::init(), ATLAS_2011_S8971293::init(), ATLAS_2011_S8924791::init(), ATLAS_2011_CONF_2011_090::init(), ATLAS_2010_S8919674::init(), ATLAS_2010_S8918562::init(), ATLAS_2010_S8914702::init(), ATLAS_2010_S8894728::init(), ATLAS_2010_S8817804::init(), ATLAS_2010_S8591806::init(), ATLAS_2010_CONF_2010_049::init(), ALICE_2010_S8706239::init(), ALICE_2010_S8625980::init(), ALICE_2010_S8624100::init(), ALEPH_2004_S5765862::init(), ALEPH_1996_S3486095::init(), ALEPH_1996_S3196992::init(), ALEPH_1991_S2435284::init(), IsolationProjection< PROJ1, PROJ2, EST >::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LeptonClusters::LeptonClusters(), LossyFinalState< ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), MissingMomentum::MissingMomentum(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), ParisiTensor::ParisiTensor(), Sphericity::Sphericity(), Spherocity::Spherocity(), SVertex::SVertex(), Thrust::Thrust(), TotalVisibleMomentum::TotalVisibleMomentum(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), VetoedFinalState::VetoedFinalState(), and VisibleFinalState::VisibleFinalState().

00113                                                                        {
00114       const Projection& reg = _addProjection(proj, name);
00115       const PROJ& rtn = dynamic_cast<const PROJ&>(reg);
00116       return rtn;
00117     }

const PROJ& applyProjection ( const Event evt,
const std::string &  name 
) const [inline, inherited]

Apply the named projection on event.

Definition at line 81 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

00081                                                                                {
00082       return pcast<PROJ>(_applyProjection(evt, name));
00083     }

const PROJ& applyProjection ( const Event evt,
const Projection proj 
) const [inline, inherited]

Apply the supplied projection on event.

Definition at line 74 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

00074                                                                                 {
00075       return pcast<PROJ>(_applyProjection(evt, proj));
00076     }

const PROJ& applyProjection ( const Event evt,
const PROJ &  proj 
) const [inline, inherited]

Apply the supplied projection on event.

Definition at line 67 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

Referenced by HadronicFinalState::project(), and FinalStateHCM::project().

00067                                                                           {
00068       return pcast<PROJ>(_applyProjection(evt, proj));
00069     }

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   }

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   }

virtual const Projection* clone (  )  const [inline, virtual]

Clone on the heap.

Reimplemented from FinalState.

Definition at line 33 of file UnstableFinalState.hh.

References UnstableFinalState::UnstableFinalState().

00033                                             {
00034       return new UnstableFinalState(*this);
00035     }

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

Compare projections.

Reimplemented from FinalState.

Definition at line 12 of file UnstableFinalState.cc.

References UnstableFinalState::_etamax, UnstableFinalState::_etamin, UnstableFinalState::_ptmin, and Rivet::cmp().

00012                                                            {
00013     const UnstableFinalState& other = dynamic_cast<const UnstableFinalState&>(p);
00014     return \
00015       cmp(_etamin, other._etamin) ||
00016       cmp(_etamax, other._etamax) ||
00017       cmp(_ptmin, other._ptmin);
00018   }

virtual bool empty (  )  const [inline, virtual]

Is this final state empty?

Reimplemented from FinalState.

Definition at line 42 of file UnstableFinalState.hh.

References UnstableFinalState::_theParticles.

00042 { return _theParticles.empty(); }

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

Template-usable interface common to JetAlg.

Definition at line 96 of file FinalState.hh.

References FinalState::particles().

00096                                             {
00097       return particles();
00098     }

Log& getLog (  )  const [inline, inherited]
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 57 of file ProjectionApplier.hh.

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

00057                                                                  {
00058       return getProjHandler().getProjection(*this, name);
00059     }

const PROJ& getProjection ( const std::string &  name  )  const [inline, inherited]

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

Definition at line 49 of file ProjectionApplier.hh.

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

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

00049                                                            {
00050       const Projection& p = getProjHandler().getProjection(*this, name);
00051       return pcast<PROJ>(p);
00052     }

std::set<ConstProjectionPtr> getProjections (  )  const [inline, inherited]

Get the contained projections, including recursion.

Definition at line 42 of file ProjectionApplier.hh.

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

Referenced by Projection::beamPairs().

00042                                                       {
00043       return getProjHandler().getChildProjections(*this, ProjectionHandler::DEEP);
00044     }

ProjectionHandler& getProjHandler (  )  const [inline, protected, inherited]
virtual bool isEmpty (  )  const [inline, virtual]
Deprecated:
Is this final state empty?

Reimplemented from FinalState.

Definition at line 45 of file UnstableFinalState.hh.

References UnstableFinalState::_theParticles.

00045 { return _theParticles.empty(); }

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.

Definition at line 57 of file Projection.cc.

References Rivet::pcmp().

00058                                                                 {
00059     return pcmp(*this, otherparent, pname);
00060   }

virtual std::string name (  )  const [inline, virtual, inherited]
const ParticleVector& particles ( sorter  )  const [inline, inherited]

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

Definition at line 43 of file FinalState.hh.

References FinalState::_theParticles.

00043                                                     {
00044       std::sort(_theParticles.begin(), _theParticles.end(), sorter);
00045       return _theParticles;
00046     }

virtual const ParticleVector& particles (  )  const [inline, virtual]
const ParticleVector& particlesByE (  )  const [inline, inherited]

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

Definition at line 59 of file FinalState.hh.

References Rivet::cmpParticleByE(), and FinalState::particles().

00059                                                {
00060       return particles(cmpParticleByE);
00061     }

const ParticleVector& particlesByEt (  )  const [inline, inherited]

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

Definition at line 64 of file FinalState.hh.

References Rivet::cmpParticleByEt(), and FinalState::particles().

00064                                                 {
00065       return particles(cmpParticleByEt);
00066     }

const ParticleVector& particlesByEta (  )  const [inline, inherited]

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

Definition at line 69 of file FinalState.hh.

References Rivet::cmpParticleByAscPseudorapidity(), and FinalState::particles().

00069                                                  {
00070       return particles(cmpParticleByAscPseudorapidity);
00071     }

const ParticleVector& particlesByModEta (  )  const [inline, inherited]

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

Definition at line 74 of file FinalState.hh.

References Rivet::cmpParticleByAscAbsPseudorapidity(), and FinalState::particles().

00074                                                     {
00075       return particles(cmpParticleByAscAbsPseudorapidity);
00076     }

const ParticleVector& particlesByP (  )  const [inline, inherited]

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

Definition at line 54 of file FinalState.hh.

References Rivet::cmpParticleByP(), and FinalState::particles().

00054                                                {
00055       return particles(cmpParticleByP);
00056     }

const ParticleVector& particlesByPt (  )  const [inline, inherited]

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

Definition at line 49 of file FinalState.hh.

References Rivet::cmpParticleByPt(), and FinalState::particles().

Referenced by MC_PHOTONJETUE::analyze(), ATLAS_2011_S8994773::analyze(), and ATLAS_2010_S8894728::analyze().

00049                                                 {
00050       return particles(cmpParticleByPt);
00051     }

void project ( const Event e  )  [protected, virtual]

Apply the projection to the event.

Reimplemented from FinalState.

Definition at line 21 of file UnstableFinalState.cc.

References UnstableFinalState::_etamax, UnstableFinalState::_etamin, UnstableFinalState::_ptmin, UnstableFinalState::_theParticles, Event::genEvent(), Projection::getLog(), IS_PARTON_PDGID, Rivet::isZero(), MSG_DEBUG, MSG_TRACE, Rivet::particles(), and Log::TRACE.

00021                                                  {
00022     _theParticles.clear();
00023 
00024     foreach (GenParticle* p, Rivet::particles(e.genEvent())) {
00025       const int st = p->status();
00026       bool passed = \
00027         ( st == 1 || (st == 2 && abs(p->pdg_id()) != 22) ) &&
00028         !isZero(p->momentum().perp()) && p->momentum().perp() >= _ptmin &&
00029         p->momentum().eta() > _etamin && p->momentum().eta() < _etamax &&
00030         !IS_PARTON_PDGID(p->pdg_id());
00031 
00032       // DEBUGGING PRINTOUTS FOR HERWIG
00033       // if (p->status() == 2) {
00034       //   std::cout << "* "
00035       //             << "pid=" << p->pdg_id()
00036       //             << ", st=" << st
00037       //             << ", passed=" << std::boolalpha << passed
00038       //             << ", isparton=" << std::boolalpha << (IS_PARTON_PDGID(p->pdg_id())) << std::endl;
00039       // }
00040       // if (abs(p->pdg_id()) > 3000) {
00041       //   std::cout << "% "
00042       //             << "pid=" << p->pdg_id()
00043       //             << ", st=" << st
00044       //             << ", passed=" << std::boolalpha << passed
00045       //             << ", isparton=" << std::boolalpha << (IS_PARTON_PDGID(p->pdg_id())) << std::endl;
00046       // }
00047 
00048       // Avoid double counting by re-marking as unpassed if particle ID == parent ID
00049       const GenVertex* pv = p->production_vertex();
00050       const GenVertex* dv = p->end_vertex();
00051       if (passed && pv) {
00052         for (GenVertex::particles_in_const_iterator pp = pv->particles_in_const_begin() ;
00053              pp != pv->particles_in_const_end() ; ++pp) {
00054           if ( p->pdg_id() == (*pp)->pdg_id() ) {
00055             passed = false;
00056             break;
00057           }
00058         }
00059       }
00060 
00061       // Add to output particles collection
00062       if (passed) {
00063         _theParticles.push_back(Particle(*p));
00064       }
00065 
00066       // Log parents and children
00067       if (getLog().isActive(Log::TRACE)) {
00068         MSG_TRACE("ID = " << p->pdg_id()
00069                   << ", status = " << st
00070                   << ", pT = " << p->momentum().perp()
00071                   << ", eta = " << p->momentum().eta()
00072                   << ": result = " << std::boolalpha << passed);
00073         if (pv) {
00074           for (GenVertex::particles_in_const_iterator pp = pv->particles_in_const_begin() ;
00075                pp != pv->particles_in_const_end() ; ++pp) {
00076             MSG_TRACE("  parent ID = " << (*pp)->pdg_id());
00077           }
00078         }
00079         if (dv) {
00080           for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin() ;
00081                pp != dv->particles_out_const_end() ; ++pp) {
00082             MSG_TRACE("  child ID  = " << (*pp)->pdg_id());
00083           }
00084         }
00085       }
00086     }
00087     MSG_DEBUG("Number of final-state particles = " << _theParticles.size());
00088   }

virtual double ptMin (  )  const [inline, virtual, inherited]

Minimum-$ p_\perp $ requirement.

Definition at line 87 of file FinalState.hh.

References FinalState::_ptmin.

00087 { return _ptmin; }

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(), FastJets::_init1(), FastJets::_init2(), FastJets::_init3(), Beam::Beam(), BeamThrust::BeamThrust(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), ClusteredPhotons::ClusteredPhotons(), ConstLossyFinalState::ConstLossyFinalState(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), FinalState::FinalState(), FinalStateHCM::FinalStateHCM(), FoxWolframMoments::FoxWolframMoments(), FParameter::FParameter(), HadronicFinalState::HadronicFinalState(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), InitialQuarks::InitialQuarks(), IsolationProjection< PROJ1, PROJ2, EST >::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LeptonClusters::LeptonClusters(), LossyFinalState< ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), MissingMomentum::MissingMomentum(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), ParisiTensor::ParisiTensor(), PVertex::PVertex(), Sphericity::Sphericity(), Spherocity::Spherocity(), SVertex::SVertex(), Thrust::Thrust(), TotalVisibleMomentum::TotalVisibleMomentum(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), UnstableFinalState::UnstableFinalState(), VetoedFinalState::VetoedFinalState(), and VisibleFinalState::VisibleFinalState().

00120                                         {
00121       _name = name;
00122     }

virtual size_t size (  )  const [inline, virtual, inherited]

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 140 of file ProjectionApplier.hh.

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

double _etamax [protected]

The maximum allowed pseudorapidity.

Definition at line 63 of file UnstableFinalState.hh.

Referenced by UnstableFinalState::compare(), and UnstableFinalState::project().

double _etamin [protected]

The minimum allowed pseudorapidity.

Definition at line 60 of file UnstableFinalState.hh.

Referenced by UnstableFinalState::compare(), and UnstableFinalState::project().

vector<pair<double,double> > _etaRanges [protected, inherited]

The ranges allowed for pseudorapidity.

Definition at line 116 of file FinalState.hh.

Referenced by FinalState::accept(), FinalState::compare(), FinalState::FinalState(), and FinalState::project().

double _ptmin [protected]

The minimum allowed transverse momentum.

Reimplemented from FinalState.

Definition at line 66 of file UnstableFinalState.hh.

Referenced by UnstableFinalState::compare(), and UnstableFinalState::project().

The final-state particles.

Reimplemented from FinalState.

Definition at line 69 of file UnstableFinalState.hh.

Referenced by UnstableFinalState::empty(), UnstableFinalState::isEmpty(), UnstableFinalState::particles(), and UnstableFinalState::project().


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