rivet is hosted by Hepforge, IPPP Durham
Rivet 4.0.0
LeptonFinder.hh
1// -*- C++ -*-
2#ifndef RIVET_LeptonFinder_HH
3#define RIVET_LeptonFinder_HH
4
5#include "Rivet/DressedLepton.hh"
6#include "Rivet/Projections/FinalState.hh"
7#include "Rivet/Projections/PromptFinalState.hh"
8#include "Rivet/Projections/IdentifiedFinalState.hh"
9#include "Rivet/Config/RivetCommon.hh"
10
11namespace Rivet {
12
13
29 class LeptonFinder : public FinalState {
30 public:
31
43 double dRdress,
44 const Cut& cut=Cuts::OPEN,
45 DressingType dressing=DressingType::CONE)
46 : LeptonFinder(allfs, allfs, dRdress, cut, dressing)
47 { }
48
49
62 const Cut& cut,
63 double dRdress,
64 DressingType dressing=DressingType::CONE)
65 : LeptonFinder(allfs, dRdress, cut, dressing)
66 { }
67
68
79 LeptonFinder(const Cut& cut,
80 double dRdress,
81 LeptonOrigin whichleptons=LeptonOrigin::NODECAY,
82 PhotonOrigin whichphotons=PhotonOrigin::NODECAY,
83 TauDecaysAs tauDecays=TauDecaysAs::PROMPT,
84 MuDecaysAs muDecays=MuDecaysAs::PROMPT,
85 DressingType dressing=DressingType::CONE)
86 : LeptonFinder(dRdress, cut, whichleptons, whichphotons, tauDecays, muDecays, dressing)
87 { }
88
89
100 LeptonFinder(const Cut& cut,
101 double dRdress,
102 DressingType dressing,
103 LeptonOrigin whichleptons=LeptonOrigin::NODECAY,
104 PhotonOrigin whichphotons=PhotonOrigin::NODECAY,
105 TauDecaysAs tauDecays=TauDecaysAs::PROMPT,
106 MuDecaysAs muDecays=MuDecaysAs::PROMPT)
107 : LeptonFinder(dRdress, cut, whichleptons, whichphotons, tauDecays, muDecays, dressing)
108 { }
109
110
121 LeptonFinder(double dRdress, const Cut& cut=Cuts::OPEN,
122 LeptonOrigin whichleptons=LeptonOrigin::NODECAY,
123 PhotonOrigin whichphotons=PhotonOrigin::NODECAY,
124 TauDecaysAs tauDecays=TauDecaysAs::PROMPT,
125 MuDecaysAs muDecays=MuDecaysAs::PROMPT,
126 DressingType dressing=DressingType::CONE);
127
128
139 LeptonFinder(double dRdress, const Cut& cut,
140 DressingType dressing,
141 LeptonOrigin whichleptons=LeptonOrigin::NODECAY,
142 PhotonOrigin whichphotons=PhotonOrigin::NODECAY,
143 TauDecaysAs tauDecays=TauDecaysAs::PROMPT,
144 MuDecaysAs muDecays=MuDecaysAs::PROMPT)
145 : LeptonFinder(dRdress, cut, whichleptons, whichphotons, tauDecays, muDecays, dressing)
146 { }
147
148
166 LeptonFinder(const FinalState& leptonfs, const FinalState& photonfs,
167 double dRdress, const Cut& cut=Cuts::OPEN,
168 DressingType dressing=DressingType::CONE);
169
170
188 LeptonFinder(const FinalState& leptonfs, const FinalState& photonfs,
189 const Cut& cut, double dRdress, DressingType dressing=DressingType::CONE)
190 : LeptonFinder(leptonfs, photonfs, dRdress, cut, dressing)
191 { }
192
193
196
198 using Projection::operator =;
199
200
205 DressedLeptons rtn;
206 for (const Particle& p : particles(cmpMomByPt))
207 rtn += DressedLepton(p); //static_cast<const DressedLepton>(p);
208 return rtn;
209 }
210
214 DressedLeptons dressedLeptons(const ParticleSorter& sorter) const {
215 DressedLeptons rtn;
216 for (const Particle& p : particles(sorter))
217 rtn += DressedLepton(p); //static_cast<const DressedLepton>(p);
218 return rtn;
219 }
220
221
222 protected:
223
225 void project(const Event& e);
226
228 CmpState compare(const Projection& p) const;
229
230
231 protected:
232
234 double _dRdress;
235
237 DressingType _dressMode;
238
239 };
240
241
242}
243
244#endif
A charged lepton meta-particle created by clustering photons close to the bare lepton.
Definition DressedLepton.hh:30
Representation of a HepMC event, and enabler of Projection caching.
Definition Event.hh:22
Project out all final-state particles in an event. Probably the most important projection in Rivet!
Definition FinalState.hh:12
Reconstruct leptons, generally including "dressing" with clustered photons.
Definition LeptonFinder.hh:29
DressedLeptons dressedLeptons(const ParticleSorter &sorter) const
Retrieve the dressed leptons ordered by supplied sorting functor.
Definition LeptonFinder.hh:214
LeptonFinder(const Cut &cut, double dRdress, DressingType dressing, LeptonOrigin whichleptons=LeptonOrigin::NODECAY, PhotonOrigin whichphotons=PhotonOrigin::NODECAY, TauDecaysAs tauDecays=TauDecaysAs::PROMPT, MuDecaysAs muDecays=MuDecaysAs::PROMPT)
Constructor with default input FinalState and deltaR.
Definition LeptonFinder.hh:100
LeptonFinder(double dRdress, const Cut &cut=Cuts::OPEN, LeptonOrigin whichleptons=LeptonOrigin::NODECAY, PhotonOrigin whichphotons=PhotonOrigin::NODECAY, TauDecaysAs tauDecays=TauDecaysAs::PROMPT, MuDecaysAs muDecays=MuDecaysAs::PROMPT, DressingType dressing=DressingType::CONE)
Constructor with default input FinalState.
LeptonFinder(double dRdress, const Cut &cut, DressingType dressing, LeptonOrigin whichleptons=LeptonOrigin::NODECAY, PhotonOrigin whichphotons=PhotonOrigin::NODECAY, TauDecaysAs tauDecays=TauDecaysAs::PROMPT, MuDecaysAs muDecays=MuDecaysAs::PROMPT)
Constructor with default input FinalState.
Definition LeptonFinder.hh:139
LeptonFinder(const FinalState &leptonfs, const FinalState &photonfs, const Cut &cut, double dRdress, DressingType dressing=DressingType::CONE)
Constructor with distinct photon and lepton finders.
Definition LeptonFinder.hh:188
RIVET_DEFAULT_PROJ_CLONE(LeptonFinder)
Clone this projection.
DressedLeptons dressedLeptons() const
Retrieve the dressed leptons.
Definition LeptonFinder.hh:204
void project(const Event &e)
Apply the projection on the supplied event.
LeptonFinder(const Cut &cut, double dRdress, LeptonOrigin whichleptons=LeptonOrigin::NODECAY, PhotonOrigin whichphotons=PhotonOrigin::NODECAY, TauDecaysAs tauDecays=TauDecaysAs::PROMPT, MuDecaysAs muDecays=MuDecaysAs::PROMPT, DressingType dressing=DressingType::CONE)
Constructor with default input FinalState and deltaR.
Definition LeptonFinder.hh:79
LeptonFinder(const FinalState &leptonfs, const FinalState &photonfs, double dRdress, const Cut &cut=Cuts::OPEN, DressingType dressing=DressingType::CONE)
Constructor with distinct photon and lepton finders.
LeptonFinder(const FinalState &allfs, const Cut &cut, double dRdress, DressingType dressing=DressingType::CONE)
Constructor with a single input FinalState and default dR.
Definition LeptonFinder.hh:61
LeptonFinder(const FinalState &allfs, double dRdress, const Cut &cut=Cuts::OPEN, DressingType dressing=DressingType::CONE)
Constructor with a single input FinalState (used for both photons and bare leptons)
Definition LeptonFinder.hh:42
CmpState compare(const Projection &p) const
Compare projections.
virtual const Particles & particles() const
Get the particles in no particular order, with no cuts.
Definition ParticleFinder.hh:65
Particle representation, either from a HepMC::GenEvent or reconstructed.
Definition Particle.hh:45
Base class for all Rivet projections.
Definition Projection.hh:29
bool cmpMomByPt(const FourMomentum &a, const FourMomentum &b)
Comparison to give a sorting by decreasing pT.
Definition Vector4.hh:1320
Definition MC_CENT_PPB_Projections.hh:10
PhotonOrigin
Accepted classes of lepton origin.
Definition DressedLepton.hh:24
DressingType
The approach taken to photon dressing of leptons.
Definition DressedLepton.hh:21
LeptonOrigin
Accepted classes of lepton origin.
Definition DressedLepton.hh:12
vector< DressedLepton > DressedLeptons
Alias for a list of dressed leptons, cf. Particles and Jets.
Definition DressedLepton.hh:56