Rivet  3.1.0
ZFinder.hh
1 // -*- C++ -*-
2 #ifndef RIVET_ZFinder_HH
3 #define RIVET_ZFinder_HH
4 
5 #include "Rivet/Projections/FinalState.hh"
6 #include "Rivet/Projections/DressedLeptons.hh"
7 #include "Rivet/Projections/VetoedFinalState.hh"
8 
9 namespace Rivet {
10 
11 
18  class ZFinder : public ParticleFinder {
19  public:
20 
21  enum class ChargedLeptons { PROMPT, ALL };
22  enum class ClusterPhotons { NONE, NODECAY, ALL };
23  enum class AddPhotons { NO, YES };
24 
26 
27 
41  ZFinder(const FinalState& inputfs,
42  const Cut& cuts,
43  PdgId pid,
44  double minmass, double maxmass,
45  double dRmax=0.1,
46  ChargedLeptons chLeptons=ChargedLeptons::PROMPT,
47  ClusterPhotons clusterPhotons=ClusterPhotons::NODECAY,
48  AddPhotons trackPhotons=AddPhotons::NO,
49  double masstarget=91.2*GeV);
50 
53  ZFinder(const FinalState& inputfs,
54  const Cut& cuts,
55  PdgId pid,
56  double minmass, double maxmass,
57  double dRmax,
58  ClusterPhotons clusterPhotons,
59  AddPhotons trackPhotons=AddPhotons::NO,
60  double masstarget=91.2*GeV)
61  : ZFinder(inputfs, cuts, pid, minmass, maxmass,
62  dRmax, ChargedLeptons::PROMPT, clusterPhotons, trackPhotons, masstarget)
63  { }
64 
65 
68 
70 
71 
75  const Particles& bosons() const { return particles(); }
77  const Particle& boson() const { return bosons().front(); }
78 
79 
85  const Particles & constituentLeptons() const;
86  const Particles & constituents() const { return constituentLeptons(); }
87 
92 
93 
94  protected:
95 
97  void project(const Event& e);
98 
100  CmpState compare(const Projection& p) const;
101 
102 
103  public:
104 
106  void clear() { _theParticles.clear(); }
107 
108 
109  private:
110 
112  double _minmass, _maxmass, _masstarget;
113 
116  AddPhotons _trackPhotons;
117 
119  PdgId _pid;
120 
121  };
122 
123 
124 }
125 
126 #endif
Definition: MC_Cent_pPb.hh:10
Convenience finder of leptonically decaying Zs.
Definition: ZFinder.hh:18
virtual const Particles & particles() const
Get the particles in no particular order, with no cuts.
Definition: ParticleFinder.hh:49
const VetoedFinalState & remainingFinalState() const
Particle representation, either from a HepMC::GenEvent or reconstructed.
Definition: Particle.hh:18
Base class for projections which return subsets of an event's particles.
Definition: ParticleFinder.hh:11
int pid(const Particle &p)
Unbound function access to PID code.
Definition: ParticleUtils.hh:23
const Particles & constituentLeptons() const
const Particles & bosons() const
Definition: ZFinder.hh:75
FS modifier to exclude classes of particles from the final state.
Definition: VetoedFinalState.hh:11
void project(const Event &e)
Apply the projection on the supplied event.
ZFinder(const FinalState &inputfs, const Cut &cuts, PdgId pid, double minmass, double maxmass, double dRmax=0.1, ChargedLeptons chLeptons=ChargedLeptons::PROMPT, ClusterPhotons clusterPhotons=ClusterPhotons::NODECAY, AddPhotons trackPhotons=AddPhotons::NO, double masstarget=91.2 *GeV)
Constructor taking cuts object.
Representation of a HepMC event, and enabler of Projection caching.
Definition: Event.hh:22
const Particle & boson() const
Access to the found boson (assuming it exists).
Definition: ZFinder.hh:77
CmpState compare(const Projection &p) const
Compare projections.
Project out all final-state particles in an event. Probably the most important projection in Rivet! ...
Definition: FinalState.hh:12
Base class for all Rivet projections.
Definition: Projection.hh:29
DEFAULT_RIVET_PROJ_CLONE(ZFinder)
Clone on the heap.
void clear()
Clear the projection.
Definition: ZFinder.hh:106
ZFinder(const FinalState &inputfs, const Cut &cuts, PdgId pid, double minmass, double maxmass, double dRmax, ClusterPhotons clusterPhotons, AddPhotons trackPhotons=AddPhotons::NO, double masstarget=91.2 *GeV)
Definition: ZFinder.hh:53