WFinder.hh
Go to the documentation of this file.
00001 // -*- C++ -*- 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 /// @brief Convenience finder of leptonically decaying Ws 00017 /// 00018 /// Chain together different projections as convenience for finding W's 00019 /// from two leptons in the final state, including photon clustering. 00020 class WFinder : public FinalState { 00021 public: 00022 00023 /// @name Constructors 00024 //@{ 00025 00026 /// Constructor taking single eta/pT bounds 00027 /// @param inputfs Input final state 00028 /// @param etaMin,etaMax,pTmin charged lepton cuts 00029 /// @param pid type of the charged lepton 00030 /// @param minmass,maxmass (transverse) mass window 00031 /// @param missingET minimal amount of missing ET (neutrinos) required 00032 /// @param dRmax maximum dR of photons around charged lepton to take into account 00033 /// for W reconstruction (only relevant if one of the following are true) 00034 /// @param clusterPhotons whether such photons are supposed to be 00035 /// clustered to the lepton object and thus W mom 00036 /// @param trackPhotons whether such photons should be added to _theParticles 00037 /// (cf. _trackPhotons) 00038 /// @param useTransverseMass whether mass window should be applied using mT 00039 WFinder(const FinalState& inputfs, 00040 double etaMin, double etaMax, 00041 double pTmin, 00042 PdgId pid, 00043 double minmass, double maxmass, 00044 double missingET, 00045 double dRmax, bool clusterPhotons=true, bool trackPhotons=false, 00046 double masstarget=80.4, 00047 bool useTransverseMass=false); 00048 00049 00050 /// Constructor taking multiple eta/pT bounds 00051 /// @param inputfs Input final state 00052 /// @param etaRanges,pTmin charged lepton cuts 00053 /// @param pid type of the charged lepton 00054 /// @param minmass,maxmass (transverse) mass window 00055 /// @param missingET minimal amount of missing ET (neutrinos) required 00056 /// @param dRmax maximum dR of photons around charged lepton to take into account 00057 /// for W reconstruction (only relevant if one of the following are true) 00058 /// @param clusterPhotons whether such photons are supposed to be 00059 /// clustered to the lepton object and thus W mom 00060 /// @param trackPhotons whether such photons should be added to _theParticles 00061 /// (cf. _trackPhotons) 00062 /// @param useTransverseMass whether mass window should be applied using mT 00063 WFinder(const FinalState& inputfs, 00064 const std::vector<std::pair<double, double> >& etaRanges, 00065 double pTmin, 00066 PdgId pid, 00067 double minmass, const double maxmass, 00068 double missingET, 00069 double dRmax, bool clusterPhotons=true, bool trackPhotons=false, 00070 double masstarget=80.4, 00071 bool useTransverseMass=false); 00072 00073 00074 /// @deprecated Constructors without inputfs -- only for backwards compatibility 00075 WFinder(double, double, double, PdgId, double, double, double, double, 00076 bool clusterPhotons=true, bool trackPhotons=false, 00077 double masstarget=80.4, bool useTransverseMass=false); 00078 /// @deprecated Constructors without inputfs -- only for backwards compatibility 00079 WFinder(const std::vector<std::pair<double, double> >&, double, 00080 PdgId, double, double, double, double, 00081 bool clusterPhotons=true, bool trackPhotons=false, 00082 double masstarget=80.4, bool useTransverseMass=false); 00083 00084 /// Clone on the heap. 00085 virtual const Projection* clone() const { 00086 return new WFinder(*this); 00087 } 00088 //@} 00089 00090 00091 /// Access to the found bosons (currently either 0 or 1) 00092 const Particles& bosons() const { return _bosons; } 00093 00094 /// Access to the W constituent clustered leptons (currently either of 00095 /// size 0 if no boson was found or 1 if one boson was found) 00096 const vector<Particle>& constituentLeptons() const { return _constituentLeptons; } 00097 00098 /// Access to the W constituent neutrinos (currently either of size 0 if no 00099 /// boson was found or 1 if one boson was found) 00100 const vector<Particle>& constituentNeutrinos() const { return _constituentNeutrinos; } 00101 00102 /// Access to the remaining particles, after the W and clustered photons 00103 /// have been removed from the full final state 00104 /// (e.g. for running a jet finder on it) 00105 const FinalState& remainingFinalState() const; 00106 00107 protected: 00108 00109 /// Apply the projection on the supplied event. 00110 void project(const Event& e); 00111 00112 /// Compare projections. 00113 int compare(const Projection& p) const; 00114 00115 00116 public: 00117 00118 /// Clear the projection 00119 void clear() { 00120 _theParticles.clear(); 00121 _bosons.clear(); 00122 _constituentLeptons.clear(); 00123 _constituentNeutrinos.clear(); 00124 } 00125 00126 00127 private: 00128 00129 /// Common implementation of constructor operation, taking FS params. 00130 void _init(const FinalState& inputfs, 00131 const std::vector<std::pair<double, double> >& etaRanges, 00132 double pTmin, PdgId pid, 00133 double minmass, double maxmass, 00134 double missingET, 00135 double dRmax, bool clusterPhotons, bool trackPhotons, 00136 double masstarget, 00137 bool useTransverseMass); 00138 00139 00140 private: 00141 00142 /// Transverse mass cuts 00143 double _minmass, _maxmass, _masstarget; 00144 bool _useTransverseMass; 00145 00146 /// Missing ET cut 00147 double _etMiss; 00148 00149 /// Switch for tracking of photons (whether to add them to _theParticles) 00150 /// This is relevant when the ZFinder::_theParticles are to be excluded 00151 /// from e.g. the input to a jet finder, to specify whether the clustered 00152 /// photons are to be excluded as well. 00153 /// (Yes, some experiments make a difference between clusterPhotons and 00154 /// trackPhotons!) 00155 bool _trackPhotons; 00156 00157 /// Lepton flavour 00158 PdgId _pid; 00159 00160 /// Neutrino flavour 00161 PdgId _nu_pid; 00162 00163 /// list of found bosons (currently either 0 or 1) 00164 Particles _bosons; 00165 00166 /// Constituent leptons (currently either 0 or 1) 00167 Particles _constituentLeptons; 00168 00169 /// Constituent neutrinos (currently either 0 or 1) 00170 Particles _constituentNeutrinos; 00171 00172 }; 00173 00174 00175 } 00176 00177 00178 #endif Generated on Fri Oct 25 2013 12:41:48 for The Rivet MC analysis system by ![]() |