Rivet  1.8.0
ZFinder.hh
1 // -*- C++ -*-
2 #ifndef RIVET_ZFinder_HH
3 #define RIVET_ZFinder_HH
4 
5 #include "Rivet/Tools/Logging.hh"
6 #include "Rivet/Rivet.hh"
7 #include "Rivet/Particle.hh"
8 #include "Rivet/Event.hh"
9 #include "Rivet/Projection.hh"
10 #include "Rivet/Projections/FinalState.hh"
11 #include "Rivet/Projections/LeptonClusters.hh"
12 
13 namespace Rivet {
14 
15 
20  class ZFinder : public FinalState {
21 
22  public:
23 
25 
26 
38  ZFinder(const FinalState& inputfs,
39  double etaMin, double etaMax,
40  double pTmin,
41  PdgId pid,
42  double minmass, double maxmass,
43  double dRmax, bool clusterPhotons, bool trackPhotons,
44  double masstarget=91.2*GeV);
45 
46 
58  ZFinder(const FinalState& inputfs,
59  const std::vector<std::pair<double, double> >& etaRanges,
60  double pTmin,
61  PdgId pid,
62  double minmass, const double maxmass,
63  double dRmax, bool clusterPhotons, bool trackPhotons,
64  double masstarget=91.2*GeV);
65 
66 
68  ZFinder(double, double, double, PdgId, double, double, double,
69  bool, bool, double masstarget=91.2*GeV);
71  ZFinder(const std::vector<std::pair<double, double> >&, double, PdgId,
72  double, double, double, bool, bool, double masstarget=91.2*GeV);
73 
74 
76  virtual const Projection* clone() const {
77  return new ZFinder(*this);
78  }
80 
81 
83  const ParticleVector& bosons() const { return _bosons; }
84 
87  const vector<Particle>& constituents() const { return _constituents; }
88 
92  const FinalState& remainingFinalState() const;
93 
94 
95  protected:
96 
98  void project(const Event& e);
99 
101  int compare(const Projection& p) const;
102 
103 
104  public:
105 
107  void clear() {
108  _theParticles.clear();
109  _bosons.clear();
110  _constituents.clear();
111  }
112 
113 
114  private:
116  void _init(const FinalState& inputfs,
117  const std::vector<std::pair<double, double> >& etaRanges,
118  double pTmin, PdgId pid,
119  double minmass, double maxmass,
120  double dRmax, bool clusterPhotons, bool trackPhotons,
121  double masstarget);
122 
124  double _minmass, _maxmass, _masstarget;
125 
132  bool _trackPhotons;
133 
135  PdgId _pid;
136 
138  ParticleVector _bosons;
139 
141  vector<Particle> _constituents;
142 
143  };
144 
145 
146 }
147 
148 
149 
150 #endif