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
00012 namespace Rivet {
00013
00014
00015
00016
00017 class WFinder : public FinalState {
00018 public:
00019
00020
00021
00022
00023
00024
00025
00026 WFinder(const ChargedFinalState& fs_l,
00027 PdgId pid,
00028 double m2_min, double m2_max,
00029 double missingET,
00030 double dRmax);
00031
00032
00033
00034
00035
00036 WFinder(double etaMin, double etaMax,
00037 double pTmin,
00038 PdgId pid,
00039 double m2_min, double m2_max,
00040 double missingET,
00041 double dRmax);
00042
00043
00044
00045
00046
00047 WFinder(const std::vector<std::pair<double, double> >& etaRanges,
00048 double pTmin,
00049 PdgId pid,
00050 double m2_min, const double m2_max,
00051 double missingET,
00052 double dRmax);
00053
00054
00055
00056 virtual const Projection* clone() const {
00057 return new WFinder(*this);
00058 }
00059
00060
00061
00062
00063
00064
00065 const FinalState& remainingFinalState() const;
00066
00067
00068 const FinalState& constituentsFinalState() const;
00069
00070
00071 const FinalState& constituentLeptonsFinalState() const;
00072
00073
00074 protected:
00075
00076
00077 void project(const Event& e);
00078
00079
00080 int compare(const Projection& p) const;
00081
00082
00083 public:
00084
00085
00086 void clear();
00087
00088
00089 private:
00090
00091
00092 void _init(const std::vector<std::pair<double, double> >& etaRanges,
00093 double pTmin, PdgId pid,
00094 double m2_min, double m2_max,
00095 double missingET,
00096 double dRmax);
00097
00098
00099 void _init(const ChargedFinalState& fs_l,
00100 PdgId pid,
00101 double m2_min, double m2_max,
00102 double missingET,
00103 double dRmax);
00104
00105
00106 private:
00107
00108
00109 double _m2_min, _m2_max;
00110
00111
00112 double _etMiss;
00113
00114 };
00115
00116
00117 }
00118
00119
00120 #endif