Rivet API documentation

Rivet 4.1.3
GammaGammaLeptons.hh
1// -*- C++ -*-
2#ifndef RIVET_GammaGammaLeptons_HH
3#define RIVET_GammaGammaLeptons_HH
4
5#include "Rivet/Event.hh"
6#include "Rivet/Particle.hh"
7#include "Rivet/Projections/Beam.hh"
8#include "Rivet/Projections/HadronicFinalState.hh"
9#include "Rivet/Projections/LeptonFinder.hh"
10#include "Rivet/Projections/PromptFinalState.hh"
11#include "Rivet/Projections/UndressBeamLeptons.hh"
12
13namespace Rivet {
14
15
18 public:
19
22
24 GammaGammaLeptons(const Cut& cuts = Cuts::OPEN,
25 LeptonReco lreco = LeptonReco::ALL,
26 ObjOrdering lsort = ObjOrdering::ENERGY,
27 double beamundresstheta = 0.0,
28 double isolDR = 0.0,
29 double dressDR = 0.0)
30 : _isolDR(isolDR), _lsort(lsort) {
31 setName("GammaGammaLeptons");
33
34 // Beam undressing
35 if (beamundresstheta > 0.0) {
36 declare(UndressBeamLeptons(beamundresstheta), "Beam");
37 }
38 else {
39 declare(Beam(), "Beam");
40 }
41
42 // Lepton reco mode
43 switch (lreco) {
44 case LeptonReco::ALL: declare(FinalState(cuts), "LFS"); break;
45 case LeptonReco::ALL_DRESSED: declare(LeptonFinder(FinalState(), dressDR, cuts), "LFS"); break;
46 case LeptonReco::PROMPT_BARE: declare(PromptFinalState(cuts), "LFS"); break;
47 case LeptonReco::PROMPT_DRESSED:
48 declare(LeptonFinder(PromptFinalState(), dressDR, cuts), "LFS");
49 break;
50 }
51 }
52
53
56 LeptonReco lreco = LeptonReco::ALL,
57 double beamundresstheta = 0.0,
58 double isolDR = 0.0,
59 double dressDR = 0.0)
60 : GammaGammaLeptons(cuts, lreco, ObjOrdering::ENERGY, beamundresstheta, isolDR, dressDR) { }
61
64 ObjOrdering lsort = ObjOrdering::ENERGY,
65 double beamundresstheta = 0.0,
66 double isolDR = 0.0,
67 double dressDR = 0.0)
68 : GammaGammaLeptons(Cuts::OPEN, lreco, lsort, beamundresstheta, isolDR, dressDR) { }
69
72 double beamundresstheta = 0.0,
73 double isolDR = 0.0,
74 double dressDR = 0.0)
75 : GammaGammaLeptons(Cuts::OPEN, lreco, ObjOrdering::ENERGY, beamundresstheta, isolDR, dressDR) { }
76
77
79 GammaGammaLeptons(const FinalState& leptoncandidates,
80 const Beam& beamproj = Beam(),
81 const FinalState& isolationfs = FinalState(),
82 double isolDR = 0.0,
83 ObjOrdering lsort = ObjOrdering::ENERGY)
84 : _isolDR(isolDR), _lsort(lsort) {
85 declare(leptoncandidates, "LFS");
86 declare(isolationfs, "IFS");
87 declare(beamproj, "Beam");
88 }
89
90
93
95
96
98 using Projection::operator=;
99
100
101 protected:
102
104 virtual void project(const Event& e);
105
107 virtual CmpState compare(const Projection& p) const;
108
109
110 public:
111
113 const ParticlePair& in() const {
114 return _incoming;
115 }
116
118 const ParticlePair& out() const {
119 return _outgoing;
120 }
121
122
123 protected:
124
126 ParticlePair _incoming;
127
129 ParticlePair _outgoing;
130
132 double _isolDR;
133
135 ObjOrdering _lsort;
136 };
137
138
139}
140
141#endif
Project out the incoming beams.
Definition Beam.hh:15
Project out all final-state particles in an event. Probably the most important projection in Rivet!
Definition FinalState.hh:12
virtual void project(const Event &e)
Perform the projection operation on the supplied event.
GammaGammaLeptons(const Cut &cuts=Cuts::OPEN, LeptonReco lreco=LeptonReco::ALL, ObjOrdering lsort=ObjOrdering::ENERGY, double beamundresstheta=0.0, double isolDR=0.0, double dressDR=0.0)
Constructor with optional cuts first.
Definition GammaGammaLeptons.hh:24
RIVET_DEFAULT_PROJ_CLONE(GammaGammaLeptons)
Clone on the heap.
const ParticlePair & in() const
The incoming lepton.
Definition GammaGammaLeptons.hh:113
GammaGammaLeptons(Cut &cuts, LeptonReco lreco=LeptonReco::ALL, double beamundresstheta=0.0, double isolDR=0.0, double dressDR=0.0)
Constructor without lepton-ordering spec, requiring cuts.
Definition GammaGammaLeptons.hh:55
GammaGammaLeptons(const FinalState &leptoncandidates, const Beam &beamproj=Beam(), const FinalState &isolationfs=FinalState(), double isolDR=0.0, ObjOrdering lsort=ObjOrdering::ENERGY)
Constructor from other constructors.
Definition GammaGammaLeptons.hh:79
const ParticlePair & out() const
The outgoing lepton.
Definition GammaGammaLeptons.hh:118
virtual CmpState compare(const Projection &p) const
Compare with other projections.
GammaGammaLeptons(LeptonReco lreco, double beamundresstheta=0.0, double isolDR=0.0, double dressDR=0.0)
Constructor without cuts or lepton-ordering spec, requiring lepton reco spec.
Definition GammaGammaLeptons.hh:71
GammaGammaLeptons(LeptonReco lreco, ObjOrdering lsort=ObjOrdering::ENERGY, double beamundresstheta=0.0, double isolDR=0.0, double dressDR=0.0)
Constructor without cuts, requiring lepton reco spec.
Definition GammaGammaLeptons.hh:63
Project only hadronic final state particles.
Definition HadronicFinalState.hh:16
Reconstruct leptons, generally including "dressing" with clustered photons.
Definition LeptonFinder.hh:29
const PROJ & declare(const PROJ &proj, const std::string &name) const
Register a contained projection (user-facing version).
Definition ProjectionApplier.hh:205
Projection()
The default constructor.
friend class Event
Event is a friend.
Definition Projection.hh:33
void setName(const std::string &name)
Used by derived classes to set their name.
Definition Projection.hh:146
Find final state particles directly connected to the hard process.
Definition PromptFinalState.hh:25
Incoming lepton beams with collinear photons subtracted.
Definition UndressBeamLeptons.hh:12
double p(const ParticleBase &p)
Unbound function access to p.
Definition ParticleBaseUtils.hh:819
Namespace used for ambiguous identifiers.
Definition Cuts.hh:58
Definition LHCbCommon.hh:9
std::pair< Particle, Particle > ParticlePair
Typedef for a pair of Particle objects.
Definition Particle.hh:43
LeptonReco
Reconstruction/dressing mode for leptons.
Definition DressedLepton.hh:15