WFinder.hh
// -*- C++ -*-
#ifndef RIVET_WFinder_HH
#define RIVET_WFinder_HH
#include "Rivet/Tools/Logging.hh"
#include "Rivet/Rivet.hh"
#include "Rivet/Particle.hh"
#include "Rivet/Event.hh"
#include "Rivet/Projection.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
#include "Rivet/Projections/LeptonClusters.hh"
namespace Rivet {
class WFinder : public FinalState {
public:
WFinder(const FinalState& inputfs,
double etaMin, double etaMax,
double pTmin,
PdgId pid,
double minmass, double maxmass,
double missingET,
double dRmax, bool clusterPhotons=true, bool trackPhotons=false,
double masstarget=80.4,
bool useTransverseMass=false);
WFinder(const FinalState& inputfs,
const std::vector<std::pair<double, double> >& etaRanges,
double pTmin,
PdgId pid,
double minmass, const double maxmass,
double missingET,
double dRmax, bool clusterPhotons=true, bool trackPhotons=false,
double masstarget=80.4,
bool useTransverseMass=false);
WFinder(double, double, double, PdgId, double, double, double, double,
bool clusterPhotons=true, bool trackPhotons=false,
double masstarget=80.4, bool useTransverseMass=false);
WFinder(const std::vector<std::pair<double, double> >&, double,
PdgId, double, double, double, double,
bool clusterPhotons=true, bool trackPhotons=false,
double masstarget=80.4, bool useTransverseMass=false);
virtual const Projection* clone() const {
return new WFinder(*this);
}
const ParticleVector& bosons() const { return _bosons; }
const vector<Particle>& constituentLeptons() const { return _constituentLeptons; }
const vector<Particle>& constituentNeutrinos() const { return _constituentNeutrinos; }
const FinalState& remainingFinalState() const;
protected:
void project(const Event& e);
int compare(const Projection& p) const;
public:
void clear() {
_theParticles.clear();
_bosons.clear();
_constituentLeptons.clear();
_constituentNeutrinos.clear();
}
private:
void _init(const FinalState& inputfs,
const std::vector<std::pair<double, double> >& etaRanges,
double pTmin, PdgId pid,
double minmass, double maxmass,
double missingET,
double dRmax, bool clusterPhotons, bool trackPhotons,
double masstarget,
bool useTransverseMass);
private:
double _minmass, _maxmass, _masstarget;
bool _useTransverseMass;
double _etMiss;
bool _trackPhotons;
PdgId _pid;
PdgId _nu_pid;
ParticleVector _bosons;
ParticleVector _constituentLeptons;
ParticleVector _constituentNeutrinos;
};
}
#endif
Rivet::PdgId
int PdgId
Typedef for a PDG ID code.
Definition: Particle.fhh:29
Rivet::WFinder::compare
int compare(const Projection &p) const
Compare projections.
Definition: WFinder.cc:131
Rivet::WFinder
Convenience finder of leptonically decaying Ws.
Definition: WFinder.hh:20
Rivet::WFinder::constituentLeptons
const vector< Particle > & constituentLeptons() const
Definition: WFinder.hh:96
Rivet::WFinder::constituentNeutrinos
const vector< Particle > & constituentNeutrinos() const
Definition: WFinder.hh:100
Rivet::WFinder::remainingFinalState
const FinalState & remainingFinalState() const
Definition: WFinder.cc:127
Rivet::WFinder::project
void project(const Event &e)
Apply the projection on the supplied event.
Definition: WFinder.cc:143
Rivet::Event
Definition: Event.hh:22
Rivet::WFinder::bosons
const ParticleVector & bosons() const
Access to the found bosons (currently either 0 or 1)
Definition: WFinder.hh:92
Rivet::WFinder::WFinder
WFinder(const FinalState &inputfs, double etaMin, double etaMax, double pTmin, PdgId pid, double minmass, double maxmass, double missingET, double dRmax, bool clusterPhotons=true, bool trackPhotons=false, double masstarget=80.4, bool useTransverseMass=false)
Definition: WFinder.cc:15
Rivet::WFinder::clone
virtual const Projection * clone() const
Clone on the heap.
Definition: WFinder.hh:85
Rivet::FinalState
Project out all final-state particles in an event. Probably the most important projection in Rivet! ...
Definition: FinalState.hh:14
Rivet::ParticleVector
std::vector< Particle > ParticleVector
Typedef for a vector of Particle objects.
Definition: Particle.fhh:14
Rivet::Projection
Base class for all Rivet projections.
Definition: Projection.hh:28
Rivet::WFinder::clear
void clear()
Clear the projection.
Definition: WFinder.hh:119