ZFinder.hh
Go to the documentation of this file.00001
00002 #ifndef RIVET_ZFinder_HH
00003 #define RIVET_ZFinder_HH
00004
00005 #include "Rivet/Tools/Logging.hh"
00006 #include "Rivet/Rivet.hh"
00007 #include "Rivet/Particle.hh"
00008 #include "Rivet/Event.hh"
00009 #include "Rivet/Projection.hh"
00010 #include "Rivet/Projections/FinalState.hh"
00011 #include "Rivet/Projections/LeptonClusters.hh"
00012
00013 namespace Rivet {
00014
00015
00016
00017
00018
00019
00020 class ZFinder : public FinalState {
00021
00022 public:
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 ZFinder(double etaMin, double etaMax,
00034 double pTmin,
00035 PdgId pid,
00036 double minmass, double maxmass,
00037 double dRmax, bool clusterPhotons, bool trackPhotons,
00038 double masstarget=91.2*GeV);
00039
00040
00041
00042
00043
00044
00045
00046
00047 ZFinder(const std::vector<std::pair<double, double> >& etaRanges,
00048 double pTmin,
00049 PdgId pid,
00050 double minmass, const double maxmass,
00051 double dRmax, bool clusterPhotons, bool trackPhotons,
00052 double masstarget=91.2*GeV);
00053
00054
00055
00056 virtual const Projection* clone() const {
00057 return new ZFinder(*this);
00058 }
00059
00060
00061
00062
00063 const ParticleVector& bosons() const { return _bosons; }
00064
00065
00066
00067 const vector<Particle>& constituents() const { return _constituents; }
00068
00069
00070
00071
00072 const FinalState& remainingFinalState() const;
00073
00074
00075 protected:
00076
00077
00078 void project(const Event& e);
00079
00080
00081 int compare(const Projection& p) const;
00082
00083
00084 public:
00085
00086
00087 void clear() {
00088 _theParticles.clear();
00089 _bosons.clear();
00090 _constituents.clear();
00091 }
00092
00093
00094 private:
00095
00096 void _init(const std::vector<std::pair<double, double> >& etaRanges,
00097 double pTmin, PdgId pid,
00098 double minmass, double maxmass,
00099 double dRmax, bool clusterPhotons, bool trackPhotons,
00100 double masstarget);
00101
00102
00103 double _minmass, _maxmass, _masstarget;
00104
00105
00106
00107
00108
00109
00110
00111 bool _trackPhotons;
00112
00113
00114 PdgId _pid;
00115
00116
00117 ParticleVector _bosons;
00118
00119
00120 vector<Particle> _constituents;
00121
00122 };
00123
00124
00125 }
00126
00127
00128
00129 #endif