Rivet: /Users/chrisg/software/rivet/include/Rivet/Projections/DressedLeptons.hh Source File

| Rivet 3.1.9

DressedLeptons.hh
1// -*- C++ -*-
2#ifndef RIVET_DressedLeptons_HH
3#define RIVET_DressedLeptons_HH
4
5#include "Rivet/Projection.hh"
6#include "Rivet/Projections/FinalState.hh"
7#include "Rivet/Projections/IdentifiedFinalState.hh"
8#include "Rivet/Config/RivetCommon.hh"
9
10namespace Rivet {
11
12
17 class DressedLepton : public Particle {
18 public:
19
21 DressedLepton(const Particle& dlepton);
22
25 DressedLepton(const Particle& lepton, const Particles& photons, bool momsum=true);
26
29 void addPhoton(const Particle& p, bool momsum=true);
30
32 const Particle& bareLepton() const;
35 const Particle& constituentLepton() const { return bareLepton(); }
36
38 const Particles photons() const { return slice(constituents(), 1); }
41 const Particles constituentPhotons() const { return photons(); }
42
43 };
44
45
61 class DressedLeptons : public FinalState {
62 public:
63
74 DressedLeptons(const FinalState& allfs,
75 double dRmax, const Cut& cut=Cuts::open(),
76 bool useDecayPhotons=false,
77 bool useJetClustering=false);
78
89 DressedLeptons(double dRmax, const Cut& cut=Cuts::open(),
90 bool useDecayPhotons=false,
91 bool useJetClustering=false)
92 : DressedLeptons(FinalState(), dRmax, cut, useDecayPhotons, useJetClustering)
93 { }
94
110 DressedLeptons(const FinalState& photons, const FinalState& bareleptons,
111 double dRmax, const Cut& cut=Cuts::open(),
112 bool useDecayPhotons=false,
113 bool useJetClustering=false);
114
115
117 DEFAULT_RIVET_PROJ_CLONE(DressedLeptons);
118
120 using Projection::operator =;
121
122
126 vector<DressedLepton> dressedLeptons() const {
127 vector<DressedLepton> rtn;
128 for (const Particle& p : particles(cmpMomByPt))
129 rtn += DressedLepton(p); //static_cast<const DressedLepton>(p);
130 return rtn;
131 }
132
136 vector<DressedLepton> dressedLeptons(const ParticleSorter& sorter) const {
137 vector<DressedLepton> rtn;
138 for (const Particle& p : particles(sorter))
139 rtn += DressedLepton(p); //static_cast<const DressedLepton>(p);
140 return rtn;
141 }
142
143
144 protected:
145
147 void project(const Event& e);
148
150 CmpState compare(const Projection& p) const;
151
152
153 protected:
154
156 double _dRmax;
157
159 bool _fromDecay;
160
162 bool _useJetClustering;
163
164
165 };
166
167
168
169}
170
171
172#endif
Rivet::DressedLepton
A charged lepton meta-particle created by clustering photons close to the bare lepton.
Definition DressedLeptons.hh:17
Rivet::DressedLepton::bareLepton
const Particle & bareLepton() const
Retrieve the bare lepton.
Rivet::DressedLepton::DressedLepton
DressedLepton(const Particle &lepton, const Particles &photons, bool momsum=true)
Rivet::DressedLepton::addPhoton
void addPhoton(const Particle &p, bool momsum=true)
Rivet::DressedLepton::photons
const Particles photons() const
Retrieve the clustered photons.
Definition DressedLeptons.hh:38
Rivet::DressedLepton::DressedLepton
DressedLepton(const Particle &dlepton)
Copy constructor (from Particle)
Rivet::DressedLepton::constituentPhotons
const Particles constituentPhotons() const
Definition DressedLeptons.hh:41
Rivet::DressedLepton::constituentLepton
const Particle & constituentLepton() const
Definition DressedLeptons.hh:35
Rivet::DressedLeptons
Cluster photons from a given FS to all charged particles (typically leptons)
Definition DressedLeptons.hh:61
Rivet::DressedLeptons::dressedLeptons
vector< DressedLepton > dressedLeptons() const
Retrieve the dressed leptons.
Definition DressedLeptons.hh:126
Rivet::DressedLeptons::project
void project(const Event &e)
Apply the projection on the supplied event.
Rivet::DressedLeptons::compare
CmpState compare(const Projection &p) const
Compare projections.
Rivet::DressedLeptons::dressedLeptons
vector< DressedLepton > dressedLeptons(const ParticleSorter &sorter) const
Retrieve the dressed leptons ordered by supplied sorting functor.
Definition DressedLeptons.hh:136
Rivet::DressedLeptons::DressedLeptons
DressedLeptons(const FinalState &photons, const FinalState &bareleptons, double dRmax, const Cut &cut=Cuts::open(), bool useDecayPhotons=false, bool useJetClustering=false)
Constructor with distinct photon and lepton finders.
Rivet::DressedLeptons::DEFAULT_RIVET_PROJ_CLONE
DEFAULT_RIVET_PROJ_CLONE(DressedLeptons)
Clone this projection.
Rivet::DressedLeptons::DressedLeptons
DressedLeptons(const FinalState &allfs, double dRmax, const Cut &cut=Cuts::open(), bool useDecayPhotons=false, bool useJetClustering=false)
Constructor with a single input FinalState (used for both photons and bare leptons)
Rivet::DressedLeptons::DressedLeptons
DressedLeptons(double dRmax, const Cut &cut=Cuts::open(), bool useDecayPhotons=false, bool useJetClustering=false)
Constructor with default input FinalState.
Definition DressedLeptons.hh:89
Rivet::Event
Representation of a HepMC event, and enabler of Projection caching.
Definition Event.hh:22
Rivet::FinalState
Project out all final-state particles in an event. Probably the most important projection in Rivet!
Definition FinalState.hh:12
Rivet::ParticleBase::p
double p() const
Get the 3-momentum magnitude directly.
Definition ParticleBase.hh:110
Rivet::ParticleFinder::particles
virtual const Particles & particles() const
Get the particles in no particular order, with no cuts.
Definition ParticleFinder.hh:52
Rivet::Particle
Particle representation, either from a HepMC::GenEvent or reconstructed.
Definition Particle.hh:53
Rivet::Particle::constituents
const Particles & constituents() const
Direct constituents of this particle, returned by reference.
Definition Particle.hh:285
Rivet::Particles
Specialised vector of Particle objects.
Definition Particle.hh:25
Rivet::Projection
Base class for all Rivet projections.
Definition Projection.hh:29
Rivet::slice
CONTAINER slice(const CONTAINER &c, int i, int j)
Slice of the container elements cf. Python's [i:j] syntax.
Definition Utils.hh:720
Rivet::cmpMomByPt
bool cmpMomByPt(const FourMomentum &a, const FourMomentum &b)
Comparison to give a sorting by decreasing pT.
Definition Vector4.hh:1356
Rivet::Kin::p
double p(const ParticleBase &p)
Unbound function access to p.
Definition ParticleBaseUtils.hh:684
Rivet::Cuts::open
const Cut & open()
Fully open cut singleton, accepts everything.
Rivet
Definition MC_Cent_pPb.hh:10