![]() |
Rivet
3.1.0
|
Convenience finder of leptonically decaying W. More...
#include <WFinder.hh>
Public Types | |
enum | ChargedLeptons { PROMPT, ALL } |
enum | ClusterPhotons { NONE, NODECAY, ALL } |
enum | AddPhotons { NO, YES } |
enum | MassWindow { M, MT } |
Public Member Functions | |
const Particles & | bosons () const |
Access to the found bosons, equivalent to constituents() More... | |
const Particle & | boson () const |
const Particles & | constituentLeptons () const |
Access to the Ws' constituent clustered leptons. More... | |
const Particle & | constituentLepton () const |
const Particles & | constituentNeutrinos () const |
const Particle & | constituentNeutrino () const |
const VetoedFinalState & | remainingFinalState () const |
const MissingMomentum & | missingMom () const |
Access to the missing momentum projection used to find the "neutrino". | |
double | mT () const |
Calculate the transverse mass of the W, from the charged lepton and neutrino. More... | |
void | clear () |
Clear the projection. | |
virtual std::string | name () const |
Get the name of the projection. | |
bool | valid () const |
Get the state of the projetion. | |
bool | failed () const |
Get the state of the projetion. | |
void | markAsOwned () const |
Mark this object as owned by a proj-handler. | |
Constructors | |
WFinder (const FinalState &inputfs, const Cut &leptoncuts, PdgId pid, double minmass, double maxmass, double missingET, double dRmax=0.1, ChargedLeptons chLeptons=ChargedLeptons::PROMPT, ClusterPhotons clusterPhotons=ClusterPhotons::NODECAY, AddPhotons trackPhotons=AddPhotons::NO, MassWindow masstype=MassWindow::M, double masstarget=80.4 *GeV) | |
Constructor taking cuts object. More... | |
DEFAULT_RIVET_PROJ_CLONE (WFinder) | |
Clone on the heap. | |
Object lifetime management | |
virtual unique_ptr< Projection > | clone () const =0 |
Clone on the heap. | |
Particle accessors | |
size_t | size () const |
Count the final-state particles. | |
size_t | size (const Cut &c) const |
Count the final-state particles after a Cut is applied. | |
size_t | size (const ParticleSelector &s) const |
Count the final-state particles after a selection functor is applied. | |
bool | empty () const |
Is this final state empty? | |
bool | empty (const Cut &c) const |
Is this final state empty after a Cut is applied? | |
bool | empty (const ParticleSelector &s) const |
Is this final state empty after a selection functor is applied? | |
virtual const Particles & | particles () const |
Get the particles in no particular order, with no cuts. | |
Particles | particles (const Cut &c) const |
Get the particles with selection cuts. More... | |
Particles | particles (const ParticleSelector &selector) const |
Get the particles with selection cuts via a functor. More... | |
Particles | particles (const ParticleSorter &sorter, const Cut &c=Cuts::open()) const |
Particles | particles (const Cut &c, const ParticleSorter &sorter) const |
Particles | particles (const ParticleSelector &selector, const ParticleSorter &sorter) const |
Particles | particles (const ParticleSorter &sorter, const ParticleSelector &selector) const |
Particles | rawParticles () const |
Particles | particlesByPt (const Cut &c=Cuts::open()) const |
Particles | particlesByPt (const ParticleSelector &selector) const |
Particles | particlesByPt (double ptmin) const |
Projection operation and comparison | |
bool | before (const Projection &p) const |
Beam configuration | |
| |
virtual const std::set< PdgIdPair > | beamPairs () const |
Projection & | addPdgIdPair (PdgId beam1, PdgId beam2) |
Projection "getting" functions | |
std::set< ConstProjectionPtr > | getProjections () const |
Get the contained projections, including recursion. | |
bool | hasProjection (const std::string &name) const |
Does this applier have a projection registered under the name name? | |
template<typename PROJ > | |
const PROJ & | getProjection (const std::string &name) const |
const Projection & | getProjection (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. More... | |
template<typename PROJ > | |
const PROJ & | applyProjection (const Event &evt, const PROJ &proj) const |
Apply the supplied projection on event evt. More... | |
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 |
template<typename PROJ > | |
const PROJ & | apply (const std::string &name, const Event &evt) const |
Protected Member Functions | |
void | project (const Event &e) |
Apply the projection on the supplied event. | |
CmpState | compare (const Projection &p) const |
Compare projections. | |
Log & | getLog () const |
Get a Log object based on the getName() property of the calling projection object. | |
void | setName (const std::string &name) |
Used by derived classes to set their name. | |
void | fail () |
Set the projection in an unvalid state. | |
Cmp< Projection > | mkNamedPCmp (const Projection &otherparent, const std::string &pname) const |
Cmp< Projection > | mkPCmp (const Projection &otherparent, const std::string &pname) const |
ProjectionHandler & | getProjHandler () const |
Get a reference to the ProjectionHandler for this thread. | |
Projection registration functions | |
template<typename PROJ > | |
const PROJ & | declareProjection (const PROJ &proj, const std::string &name) |
Register a contained projection. More... | |
template<typename PROJ > | |
const PROJ & | declare (const PROJ &proj, const std::string &name) |
Register a contained projection (user-facing version) More... | |
template<typename PROJ > | |
const PROJ & | declare (const std::string &name, const PROJ &proj) |
Register a contained projection (user-facing, arg-reordered version) More... | |
For JetAlg compatibility | |
| |
typedef Particle | entity_type |
typedef Particles | collection_type |
const collection_type & | entities () const |
Template-usable interface common to JetAlg. | |
Convenience finder of leptonically decaying W.
Chain together different projections as convenience for finding one W from one lepton and the missing E 4-vector in the final state, including photon clustering.
Rivet::WFinder::WFinder | ( | const FinalState & | inputfs, |
const Cut & | leptoncuts, | ||
PdgId | pid, | ||
double | minmass, | ||
double | maxmass, | ||
double | missingET, | ||
double | dRmax = 0.1 , |
||
ChargedLeptons | chLeptons = ChargedLeptons::PROMPT , |
||
ClusterPhotons | clusterPhotons = ClusterPhotons::NODECAY , |
||
AddPhotons | trackPhotons = AddPhotons::NO , |
||
MassWindow | masstype = MassWindow::M , |
||
double | masstarget = 80.4 *GeV |
||
) |
Constructor taking cuts object.
inputfs | Input final state |
leptoncuts | Charged lepton cuts |
pid | Type of the charged lepton |
minmass,maxmass | (Transverse) mass window |
missingET | Minimal amount of missing ET (neutrinos) required |
dRmax | Maximum dR of photons around charged lepton to take into account for W reconstruction (only relevant if one of the following are true) |
chLeptons | Only use prompt charged leptons, or any charged leptons? |
clusterPhotons | Whether such photons are supposed to be clustered to the lepton object and thus W mom |
trackPhotons | Whether such photons should be added to _theParticles |
masstype | Whether mass window should be applied using m or mT |
masstarget | The expected (transverse) mass value, if resolving ambiguities |
|
inlineinherited |
Add a colliding beam pair.
|
inlineinherited |
Apply the supplied projection on event evt (user-facing alias).
Referenced by Rivet::ALICE::V0Trigger< MODE >::project().
|
inlineinherited |
Apply the supplied projection on event evt (user-facing alias).
|
inlineinherited |
Apply the supplied projection on event evt (user-facing alias).
References Rivet::ProjectionApplier::name().
|
inlineinherited |
Apply the supplied projection on event evt (convenience arg-reordering alias).
References Rivet::ProjectionApplier::name().
|
inlineinherited |
Apply the supplied projection on event evt.
|
inlineinherited |
Apply the supplied projection on event evt.
|
inlineinherited |
Apply the named projection on event evt.
|
virtualinherited |
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.
Referenced by Rivet::Projection::failed().
|
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.
Referenced by Rivet::Projection::fail(), and Rivet::Projection::failed().
|
inline |
Access to the found boson (assuming it exists)
References Rivet::ParticleFinder::particles().
|
inline |
Access to the found bosons, equivalent to constituents()
References Rivet::ParticleFinder::particles().
Referenced by mT().
|
inline |
|
inline |
Access to the Ws' constituent clustered leptons.
|
inline |
Access to the W's constituent neutrino (assuming it exists)
References missingMom(), and remainingFinalState().
Referenced by mT().
|
inline |
Access to the Ws' constituent neutrinos
|
inlineprotectedinherited |
Register a contained projection (user-facing version)
References Rivet::ProjectionApplier::declareProjection().
Referenced by Rivet::CentralityProjection::add(), Rivet::VetoedFinalState::addVetoOnThisFinalState(), Rivet::BeamThrust::BeamThrust(), Rivet::CentralEtHCM::CentralEtHCM(), Rivet::CentralityEstimator::CentralityEstimator(), Rivet::ChargedLeptons::ChargedLeptons(), Rivet::ALICE::CLMultiplicity< INNER >::CLMultiplicity(), Rivet::DISDiffHadron::DISDiffHadron(), Rivet::DISFinalState::DISFinalState(), Rivet::DISKinematics::DISKinematics(), Rivet::DISLepton::DISLepton(), Rivet::GammaGammaKinematics::GammaGammaKinematics(), Rivet::GammaGammaLeptons::GammaGammaLeptons(), Rivet::GeneratedCentrality::GeneratedCentrality(), Rivet::HadronicFinalState::HadronicFinalState(), Rivet::HeavyHadrons::HeavyHadrons(), Rivet::Hemispheres::Hemispheres(), Rivet::LeadingParticlesFinalState::LeadingParticlesFinalState(), Rivet::LossyFinalState< ConstRandomFilter >::LossyFinalState(), Rivet::MC_pPbMinBiasTrigger::MC_pPbMinBiasTrigger(), Rivet::MC_SumETFwdPbCentrality::MC_SumETFwdPbCentrality(), Rivet::ATLAS::MinBiasTrigger::MinBiasTrigger(), Rivet::MissingMomentum::MissingMomentum(), Rivet::NeutralFinalState::NeutralFinalState(), Rivet::NonHadronicFinalState::NonHadronicFinalState(), Rivet::ParisiTensor::ParisiTensor(), Rivet::PercentileProjection::PercentileProjection(), Rivet::PrimaryHadrons::PrimaryHadrons(), Rivet::CentralityBinner< T, MDist >::setProjection(), Rivet::SmearedJets::SmearedJets(), Rivet::SmearedMET::SmearedMET(), Rivet::SmearedParticles::SmearedParticles(), Rivet::Spherocity::Spherocity(), Rivet::ATLAS::SumET_PB_Centrality::SumET_PB_Centrality(), Rivet::ATLAS::SumET_PBPB_Centrality::SumET_PBPB_Centrality(), Rivet::TauFinder::TauFinder(), Rivet::Thrust::Thrust(), Rivet::TriggerCDFRun0Run1::TriggerCDFRun0Run1(), Rivet::TriggerCDFRun2::TriggerCDFRun2(), Rivet::UndressBeamLeptons::UndressBeamLeptons(), Rivet::ALICE::V0AndTrigger::V0AndTrigger(), Rivet::ALICE::V0Trigger< MODE >::V0Trigger(), Rivet::VetoedFinalState::VetoedFinalState(), and Rivet::VisibleFinalState::VisibleFinalState().
|
inlineprotectedinherited |
Register a contained projection (user-facing, arg-reordered version)
References Rivet::ProjectionApplier::declareProjection(), and Rivet::ProjectionApplier::name().
|
inlineprotectedinherited |
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.
Referenced by Rivet::ProjectionApplier::declare().
|
inlineinherited |
Get the named projection, specifying return type via a template argument (user-facing alias).
References Rivet::ProjectionApplier::name().
|
inlineinherited |
Get the named projection, specifying return type via a template argument.
References Rivet::ProjectionHandler::getProjection(), and Rivet::ProjectionApplier::getProjHandler().
Referenced by Rivet::pcmp().
|
inlineinherited |
Get the named projection (non-templated, so returns as a reference to a Projection base class).
References Rivet::ProjectionHandler::getProjection(), and Rivet::ProjectionApplier::getProjHandler().
|
protectedinherited |
Shortcut to make a named Cmp<Projection> comparison with the *this
object automatically passed as one of the parent projections.
Referenced by Rivet::FParameter::compare(), Rivet::STAR_BES_Centrality::compare(), Rivet::CentralEtHCM::compare(), Rivet::BeamThrust::compare(), Rivet::MC_SumETFwdPbCentrality::compare(), Rivet::ATLAS::SumET_PB_Centrality::compare(), Rivet::CentralityEstimator::compare(), Rivet::Spherocity::compare(), Rivet::GammaGammaFinalState::compare(), Rivet::LossyFinalState< ConstRandomFilter >::compare(), Rivet::BRAHMSCentrality::compare(), Rivet::Thrust::compare(), Rivet::DISFinalState::compare(), Rivet::MC_pPbMinBiasTrigger::compare(), Rivet::ATLAS::SumET_PBPB_Centrality::compare(), Rivet::Hemispheres::compare(), Rivet::HeavyHadrons::compare(), Rivet::PercentileProjection::compare(), Rivet::ATLAS::MinBiasTrigger::compare(), Rivet::EventMixingBase::compare(), Rivet::GeneratedCentrality::compare(), and Rivet::Projection::fail().
|
protectedinherited |
Shortcut to make a named Cmp<Projection> comparison with the *this
object automatically passed as one of the parent projections.
Referenced by Rivet::SmearedMET::compare(), Rivet::SmearedParticles::compare(), Rivet::SmearedJets::compare(), Rivet::Correlators::compare(), Rivet::ALICE::PrimaryParticles::compare(), and Rivet::Projection::fail().
|
inline |
Calculate the transverse mass of the W, from the charged lepton and neutrino.
Defined as sqrt(2 pT_l pT_nu (1.0 - cos(dphi_lnu))). Return -1 if no boson found.
References bosons(), compare(), constituentLepton(), constituentNeutrino(), Rivet::ParticleFinder::empty(), Rivet::mT(), and project().
|
inlineinherited |
Get the particles with selection cuts.
References Rivet::filter_select(), and Rivet::ParticleFinder::particles().
|
inlineinherited |
Get the particles with selection cuts via a functor.
References Rivet::filter_select(), and Rivet::ParticleFinder::particles().
|
inlineinherited |
Get the particles, ordered by supplied sorting function object
References Rivet::ParticleFinder::particles(), and Rivet::sortBy().
|
inlineinherited |
Get the particles, ordered by supplied sorting function object
References Rivet::ParticleFinder::particles(), and Rivet::sortBy().
|
inlineinherited |
Get the particles, ordered by a sorting functor and filtered by a selection functor
References Rivet::ParticleFinder::particles(), and Rivet::sortBy().
|
inlineinherited |
Get the particles, ordered by a sorting functor and filtered by a selection functor
References Rivet::ParticleFinder::particles(), and Rivet::sortBy().
|
inlineinherited |
Get the 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).
References Rivet::cmpMomByPt(), and Rivet::ParticleFinder::particles().
Referenced by Rivet::SmearedParticles::project(), and Rivet::SmearedParticles::truthParticles().
|
inlineinherited |
Get the 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(f, cmpMomByPt).
References Rivet::cmpMomByPt(), and Rivet::ParticleFinder::particles().
|
inlineinherited |
Get the 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).
References Rivet::cmpMomByPt(), and Rivet::ParticleFinder::particles().
|
inlineinherited |
Get the raw particles in no particular order, with no cuts
References Rivet::ParticleFinder::particles().
const VetoedFinalState& Rivet::WFinder::remainingFinalState | ( | ) | const |
Access to the particles other than the W leptons and clustered photons
Useful for e.g. input to a jet finder
Referenced by constituentNeutrino().