rivet is hosted by Hepforge, IPPP Durham
Rivet 4.0.0
DileptonFinder.hh
1// -*- C++ -*-
2#ifndef RIVET_DileptonFinder_HH
3#define RIVET_DileptonFinder_HH
4
5#include "Rivet/Projections/FinalState.hh"
6#include "Rivet/Projections/LeptonFinder.hh"
7#include "Rivet/Projections/VetoedFinalState.hh"
8
9namespace Rivet {
10
11
15 class DileptonFinder : public FinalState {
16 public:
17
20
22 DileptonFinder(double masstarget,
23 double dRdress,
24 const Cut& lcuts=Cuts::OPEN,
25 const Cut& llcuts=Cuts::OPEN,
26 LeptonOrigin leptonOrigin=LeptonOrigin::PROMPT,
27 PhotonOrigin photonOrigin=PhotonOrigin::NODECAY,
28 TauDecaysAs tauDecays=TauDecaysAs::PROMPT,
29 MuDecaysAs muDecays=MuDecaysAs::PROMPT,
30 DressingType dressing=DressingType::CONE);
31
32
35 double masstarget,
36 double dRdress,
37 const Cut& lcuts=Cuts::OPEN,
38 const Cut& llcuts=Cuts::OPEN,
39 DressingType dressing=DressingType::CONE);
40
41
43 DileptonFinder(const FinalState& leptonfs,
44 const FinalState& photonfs,
45 double masstarget,
46 double dRmax,
47 const Cut& lcuts=Cuts::OPEN,
48 const Cut& llcuts=Cuts::OPEN,
49 DressingType dressing=DressingType::CONE);
50
51
56 const Cut& lcuts,
57 double masstarget,
58 PdgId pid,
59 double minmass, double maxmass,
60 double dRdress)
61 : DileptonFinder(allfs, masstarget, dRdress,
62 lcuts && Cuts::abspid == pid,
63 Cuts::mass >= minmass && Cuts::mass < maxmass)
64 { }
65
66
71 PdgId pid,
72 double masstarget,
73 double dRdress,
74 const Cut& lcuts=Cuts::OPEN,
75 double minmass=-DBL_MAX, double maxmass=DBL_MAX)
76 : DileptonFinder(allfs, masstarget, dRdress,
77 lcuts && Cuts::abspid == pid,
78 Cuts::mass >= minmass && Cuts::mass < maxmass)
79 { }
80
81
86 double masstarget,
87 double dRdress,
88 const Cut& lcuts=Cuts::OPEN,
89 double minmass=-DBL_MAX, double maxmass=DBL_MAX,
90 LeptonOrigin whichleptons=LeptonOrigin::PROMPT,
91 PhotonOrigin whichphotons=PhotonOrigin::NODECAY,
92 TauDecaysAs tauDecays=TauDecaysAs::PROMPT,
93 MuDecaysAs muDecays=MuDecaysAs::PROMPT,
94 DressingType dressing=DressingType::CONE)
95 : DileptonFinder(masstarget, dRdress,
96 lcuts && Cuts::abspid == pid,
97 Cuts::mass >= minmass && Cuts::mass < maxmass,
98 whichleptons, whichphotons, tauDecays, muDecays, dressing)
99 { }
100
101
105 DileptonFinder(double masstarget,
106 double dRdress,
107 const Cut& lcuts=Cuts::OPEN,
108 double minmass=-DBL_MAX, double maxmass=DBL_MAX,
109 LeptonOrigin whichleptons=LeptonOrigin::PROMPT,
110 PhotonOrigin whichphotons=PhotonOrigin::NODECAY,
111 TauDecaysAs tauDecays=TauDecaysAs::PROMPT,
112 MuDecaysAs muDecays=MuDecaysAs::PROMPT,
113 DressingType dressing=DressingType::CONE)
114 : DileptonFinder(masstarget, dRdress, lcuts,
115 Cuts::mass >= minmass && Cuts::mass < maxmass,
116 whichleptons, whichphotons, tauDecays, muDecays, dressing)
117 { }
118
119
124 double masstarget,
125 double dRdress,
126 const Cut& lcuts=Cuts::OPEN,
127 double minmass=-DBL_MAX, double maxmass=DBL_MAX)
128 : DileptonFinder(allfs, masstarget, dRdress, lcuts,
129 Cuts::mass >= minmass && Cuts::mass < maxmass)
130 { }
131
132
135
137
138
142 const Particles& bosons() const { return particles(); }
144 const Particle& boson() const { return bosons().front(); }
145
146
151 const Particles& constituents() const;
152
158 Particles leptons() const { return constituents(); }
159
160
165
166
167 protected:
168
170 void project(const Event& e);
171
173 CmpState compare(const Projection& p) const;
174
175
176 public:
177
179 void clear() { _theParticles.clear(); }
180
182 using Projection::operator =;
183
184
185 protected:
186
188 double _masstarget;
189
190 };
191
192
195 using LLFinder = DileptonFinder;
196
197
198}
199
200#endif
Convenience finder of leptonically decaying Zs.
Definition DileptonFinder.hh:15
const Particles & bosons() const
Access to the found bosons.
Definition DileptonFinder.hh:142
const VetoedFinalState & remainingFinalState() const
void project(const Event &e)
Apply the projection on the supplied event.
DileptonFinder(const FinalState &allfs, const Cut &lcuts, double masstarget, PdgId pid, double minmass, double maxmass, double dRdress)
Old constructor taking min and max ll masses.
Definition DileptonFinder.hh:55
Particles leptons() const
Access to the constituent clustered leptons (and photons)
Definition DileptonFinder.hh:158
DileptonFinder(const FinalState &allfs, PdgId pid, double masstarget, double dRdress, const Cut &lcuts=Cuts::OPEN, double minmass=-DBL_MAX, double maxmass=DBL_MAX)
Definition DileptonFinder.hh:70
const Particle & boson() const
Access to the found boson (assuming it exists).
Definition DileptonFinder.hh:144
DileptonFinder(const FinalState &allfs, double masstarget, double dRdress, const Cut &lcuts=Cuts::OPEN, const Cut &llcuts=Cuts::OPEN, DressingType dressing=DressingType::CONE)
Modern constructor with an explicit FS, explicit mass target and dressing dR up-front (PID and LL via...
RIVET_DEFAULT_PROJ_CLONE(DileptonFinder)
Clone on the heap.
DileptonFinder(double masstarget, double dRdress, const Cut &lcuts=Cuts::OPEN, double minmass=-DBL_MAX, double maxmass=DBL_MAX, LeptonOrigin whichleptons=LeptonOrigin::PROMPT, PhotonOrigin whichphotons=PhotonOrigin::NODECAY, TauDecaysAs tauDecays=TauDecaysAs::PROMPT, MuDecaysAs muDecays=MuDecaysAs::PROMPT, DressingType dressing=DressingType::CONE)
Definition DileptonFinder.hh:105
DileptonFinder(PdgId pid, double masstarget, double dRdress, const Cut &lcuts=Cuts::OPEN, double minmass=-DBL_MAX, double maxmass=DBL_MAX, LeptonOrigin whichleptons=LeptonOrigin::PROMPT, PhotonOrigin whichphotons=PhotonOrigin::NODECAY, TauDecaysAs tauDecays=TauDecaysAs::PROMPT, MuDecaysAs muDecays=MuDecaysAs::PROMPT, DressingType dressing=DressingType::CONE)
Definition DileptonFinder.hh:85
const Particles & constituents() const
Access to the constituent clustered leptons (and photons)
CmpState compare(const Projection &p) const
Compare projections.
DileptonFinder(const FinalState &allfs, double masstarget, double dRdress, const Cut &lcuts=Cuts::OPEN, double minmass=-DBL_MAX, double maxmass=DBL_MAX)
Definition DileptonFinder.hh:123
DileptonFinder(double masstarget, double dRdress, const Cut &lcuts=Cuts::OPEN, const Cut &llcuts=Cuts::OPEN, LeptonOrigin leptonOrigin=LeptonOrigin::PROMPT, PhotonOrigin photonOrigin=PhotonOrigin::NODECAY, TauDecaysAs tauDecays=TauDecaysAs::PROMPT, MuDecaysAs muDecays=MuDecaysAs::PROMPT, DressingType dressing=DressingType::CONE)
Modern constructor with a default FS, explicit mass target and dressing dR up-front (PID and LL via c...
DileptonFinder(const FinalState &leptonfs, const FinalState &photonfs, double masstarget, double dRmax, const Cut &lcuts=Cuts::OPEN, const Cut &llcuts=Cuts::OPEN, DressingType dressing=DressingType::CONE)
Modern constructor with two explicit FSes, explicit mass target and dressing dR up-front (PID and LL ...
void clear()
Clear the projection.
Definition DileptonFinder.hh:179
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
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
Specialised vector of Particle objects.
Definition Particle.hh:21
Base class for all Rivet projections.
Definition Projection.hh:29
FS modifier to exclude classes of particles from the final state.
Definition VetoedFinalState.hh:11
double mass(const FourMomentum &a, const FourMomentum &b)
Calculate mass of two 4-vectors.
Definition Vector4.hh:1461
int pid(const Particle &p)
Unbound function access to PID code.
Definition ParticleUtils.hh:23
int abspid(const Particle &p)
Unbound function access to abs PID code.
Definition ParticleUtils.hh:26
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