rivet is hosted by Hepforge, IPPP Durham
Rivet 4.0.0
GammaGammaLeptons.hh
1// -*- C++ -*-
2#ifndef RIVET_GammaGammaLeptons_HH
3#define RIVET_GammaGammaLeptons_HH
4
5#include "Rivet/Projections/Beam.hh"
6#include "Rivet/Projections/PromptFinalState.hh"
7#include "Rivet/Projections/HadronicFinalState.hh"
8#include "Rivet/Projections/LeptonFinder.hh"
9#include "Rivet/Projections/UndressBeamLeptons.hh"
10#include "Rivet/Particle.hh"
11#include "Rivet/Event.hh"
12
13namespace Rivet {
14
15
18 public:
19
22
24 GammaGammaLeptons(const Cut& cuts=Cuts::OPEN,
25 LeptonReco lreco=LeptonReco::ALL, ObjOrdering lsort=ObjOrdering::ENERGY,
26 double beamundresstheta=0.0, double isolDR=0.0, double dressDR=0.0)
27 : _isolDR(isolDR), _lsort(lsort)
28 {
29 setName("GammaGammaLeptons");
31
32 // Beam undressing
33 if (beamundresstheta > 0.0) {
34 declare(UndressBeamLeptons(beamundresstheta), "Beam");
35 } else {
36 declare(Beam(), "Beam");
37 }
38
39 // Lepton reco mode
40 switch (lreco) {
41 case LeptonReco::ALL:
42 declare(FinalState(cuts), "LFS");
43 break;
44 case LeptonReco::ALL_DRESSED:
45 declare(LeptonFinder(FinalState(), dressDR, cuts), "LFS");
46 break;
47 case LeptonReco::PROMPT_BARE:
48 declare(PromptFinalState(cuts), "LFS");
49 break;
50 case LeptonReco::PROMPT_DRESSED:
51 declare(LeptonFinder(PromptFinalState(), dressDR, cuts), "LFS");
52 break;
53 }
54 }
55
56
58 GammaGammaLeptons(Cut& cuts, LeptonReco lreco=LeptonReco::ALL,
59 double beamundresstheta=0.0, double isolDR=0.0, double dressDR=0.0)
60 : GammaGammaLeptons(cuts, lreco, ObjOrdering::ENERGY, beamundresstheta, isolDR, dressDR)
61 { }
62
64 GammaGammaLeptons(LeptonReco lreco, ObjOrdering lsort=ObjOrdering::ENERGY,
65 double beamundresstheta=0.0, double isolDR=0.0, double dressDR=0.0)
66 : GammaGammaLeptons(Cuts::OPEN, lreco, lsort, beamundresstheta, isolDR, dressDR)
67 { }
68
71 double beamundresstheta=0.0, double isolDR=0.0, double dressDR=0.0)
72 : GammaGammaLeptons(Cuts::OPEN, lreco, ObjOrdering::ENERGY, beamundresstheta, isolDR, dressDR)
73 { }
74
75
77 GammaGammaLeptons(const FinalState& leptoncandidates,
78 const Beam& beamproj=Beam(),
79 const FinalState& isolationfs=FinalState(),
80 double isolDR = 0.0, ObjOrdering lsort=ObjOrdering::ENERGY)
81 : _isolDR(isolDR), _lsort(lsort)
82 {
83 declare(leptoncandidates, "LFS");
84 declare(isolationfs, "IFS");
85 declare(beamproj, "Beam");
86 }
87
88
91
93
94
96 using Projection::operator =;
97
98
99 protected:
100
102 virtual void project(const Event& e);
103
105 virtual CmpState compare(const Projection& p) const;
106
107
108 public:
109
111 const ParticlePair & in() const { return _incoming; }
112
114 const ParticlePair & out() const { return _outgoing; }
115
116
117 protected:
118
120 ParticlePair _incoming;
121
123 ParticlePair _outgoing;
124
126 double _isolDR;
127
129 ObjOrdering _lsort;
130
131 };
132
133
134}
135
136#endif
Project out the incoming beams.
Definition Beam.hh:15
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
Get the incoming and outgoing leptons in a gamma gamma collision event in e+e-.
Definition GammaGammaLeptons.hh:17
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:111
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:58
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:77
const ParticlePair & out() const
The outgoing lepton.
Definition GammaGammaLeptons.hh:114
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:70
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:64
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:175
Base class for all Rivet projections.
Definition Projection.hh:29
void setName(const std::string &name)
Used by derived classes to set their name.
Definition Projection.hh:148
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
Definition MC_CENT_PPB_Projections.hh:10
std::pair< Particle, Particle > ParticlePair
Typedef for a pair of Particle objects.
Definition Particle.hh:38
LeptonReco
Reconstruction/dressing mode for leptons.
Definition DressedLepton.hh:15