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