WFinder.hh
Go to the documentation of this file.00001
00002 #ifndef RIVET_WFinder_HH
00003 #define RIVET_WFinder_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/ChargedFinalState.hh"
00011 #include "Rivet/Projections/LeptonClusters.hh"
00012
00013 namespace Rivet {
00014
00015
00016
00017
00018
00019
00020 class WFinder : public FinalState {
00021 public:
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 WFinder(double etaMin, double etaMax,
00038 double pTmin,
00039 PdgId pid,
00040 double minmass, double maxmass,
00041 double missingET,
00042 double dRmax, bool clusterPhotons=true, bool trackPhotons=false,
00043 double masstarget=80.4,
00044 bool useTransverseMass=false,
00045 FinalState inputfs=FinalState());
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 WFinder(const std::vector<std::pair<double, double> >& etaRanges,
00060 double pTmin,
00061 PdgId pid,
00062 double minmass, const double maxmass,
00063 double missingET,
00064 double dRmax, bool clusterPhotons=true, bool trackPhotons=false,
00065 double masstarget=80.4,
00066 bool useTransverseMass=false,
00067 FinalState inputfs=FinalState());
00068
00069
00070
00071 virtual const Projection* clone() const {
00072 return new WFinder(*this);
00073 }
00074
00075
00076
00077
00078 const ParticleVector& bosons() const { return _bosons; }
00079
00080
00081
00082 const vector<Particle>& constituentLeptons() const { return _constituentLeptons; }
00083
00084
00085
00086 const vector<Particle>& constituentNeutrinos() const { return _constituentNeutrinos; }
00087
00088
00089
00090
00091 const FinalState& remainingFinalState() const;
00092
00093 protected:
00094
00095
00096 void project(const Event& e);
00097
00098
00099 int compare(const Projection& p) const;
00100
00101
00102 public:
00103
00104
00105 void clear() {
00106 _theParticles.clear();
00107 _bosons.clear();
00108 _constituentLeptons.clear();
00109 _constituentNeutrinos.clear();
00110 }
00111
00112
00113 private:
00114
00115
00116 void _init(const std::vector<std::pair<double, double> >& etaRanges,
00117 double pTmin, PdgId pid,
00118 double minmass, double maxmass,
00119 double missingET,
00120 double dRmax, bool clusterPhotons, bool trackPhotons,
00121 double masstarget,
00122 bool useTransverseMass,
00123 FinalState inputfs);
00124
00125
00126 private:
00127
00128
00129 double _minmass, _maxmass, _masstarget;
00130 bool _useTransverseMass;
00131
00132
00133 double _etMiss;
00134
00135
00136
00137
00138
00139
00140
00141 bool _trackPhotons;
00142
00143
00144 PdgId _pid;
00145
00146
00147 PdgId _nu_pid;
00148
00149
00150 ParticleVector _bosons;
00151
00152
00153 ParticleVector _constituentLeptons;
00154
00155
00156 ParticleVector _constituentNeutrinos;
00157
00158 };
00159
00160
00161 }
00162
00163
00164 #endif