rivet is hosted by Hepforge, IPPP Durham
Rivet  2.7.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 ChargedLeptons { PROMPTCHLEPTONS=0, ALLCHLEPTONS };
22  enum ClusterPhotons { NOCLUSTER=0, CLUSTERNODECAY=1, CLUSTERALL };
23  enum PhotonTracking { NOTRACK=0, TRACK=1 };
24 
26 
27 
39  ZFinder(const FinalState& inputfs,
40  const Cut& cuts,
41  PdgId pid,
42  double minmass, double maxmass,
43  double dRmax=0.1,
44  ChargedLeptons chLeptons=PROMPTCHLEPTONS,
45  ClusterPhotons clusterPhotons=CLUSTERNODECAY,
46  PhotonTracking trackPhotons=NOTRACK,
47  double masstarget=91.2*GeV);
48 
51  ZFinder(const FinalState& inputfs,
52  const Cut& cuts,
53  PdgId pid,
54  double minmass, double maxmass,
55  double dRmax,
56  ClusterPhotons clusterPhotons,
57  PhotonTracking trackPhotons=NOTRACK,
58  double masstarget=91.2*GeV)
59  : ZFinder(inputfs, cuts, pid, minmass, maxmass,
60  dRmax, PROMPTCHLEPTONS, clusterPhotons, trackPhotons, masstarget)
61  { }
62 
63 
66 
68 
69 
73  const Particles& bosons() const { return particles(); }
75  const Particle& boson() const { return bosons().front(); }
76 
77 
83  const Particles & constituentLeptons() const;
84  const Particles & constituents() const { return constituentLeptons(); }
85 
90 
91 
92  protected:
93 
95  void project(const Event& e);
96 
98  int compare(const Projection& p) const;
99 
100 
101  public:
102 
104  void clear() { _theParticles.clear(); }
105 
106 
107  private:
108 
110  double _minmass, _maxmass, _masstarget;
111 
114  PhotonTracking _trackPhotons;
115 
117  PdgId _pid;
118 
119  };
120 
121 
122 }
123 
124 #endif
Definition: ALICE_2010_I880049.cc:13
Convenience finder of leptonically decaying Zs.
Definition: ZFinder.hh:18
ZFinder(const FinalState &inputfs, const Cut &cuts, PdgId pid, double minmass, double maxmass, double dRmax=0.1, ChargedLeptons chLeptons=PROMPTCHLEPTONS, ClusterPhotons clusterPhotons=CLUSTERNODECAY, PhotonTracking trackPhotons=NOTRACK, double masstarget=91.2 *GeV)
Definition: ZFinder.cc:10
virtual const Particles & particles() const
Get the particles in no particular order, with no cuts.
Definition: ParticleFinder.hh:49
int compare(const Projection &p) const
Compare projections.
Definition: ZFinder.cc:71
Particle representation, either from a HepMC::GenEvent or reconstructed.
Definition: Particle.hh:18
int pid(const Particle &p)
Unbound function access to PID code.
Definition: ParticleUtils.hh:20
Base class for projections which return subsets of an event's particles.
Definition: ParticleFinder.hh:11
const Particles & bosons() const
Definition: ZFinder.hh:73
FS modifier to exclude classes of particles from the final state.
Definition: VetoedFinalState.hh:11
ZFinder(const FinalState &inputfs, const Cut &cuts, PdgId pid, double minmass, double maxmass, double dRmax, ClusterPhotons clusterPhotons, PhotonTracking trackPhotons=NOTRACK, double masstarget=91.2 *GeV)
Definition: ZFinder.hh:51
void project(const Event &e)
Apply the projection on the supplied event.
Definition: ZFinder.cc:83
const Particles & constituentLeptons() const
Definition: ZFinder.cc:60
Definition: Event.hh:22
const Particle & boson() const
Access to the found boson (assuming it exists).
Definition: ZFinder.hh:75
Project out all final-state particles in an event. Probably the most important projection in Rivet! ...
Definition: FinalState.hh:12
const VetoedFinalState & remainingFinalState() const
Definition: ZFinder.cc:66
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:104