00001 // 00002 // $Id: gentop.h,v 1.1 2011/05/26 09:46:53 mseidel Exp $ 00003 // 00004 // File: hitfit/gentop.h 00005 // Purpose: Toy ttbar event generator for testing. 00006 // Created: Jul, 2000, sss. 00007 // 00008 // This is a very simple event generator for ttbar events, to allow some 00009 // basic tests of the mass fitting code. We generate random ttbars, 00010 // with kinematics pulled out of a hat, and then decay them into l+jets 00011 // events. No radiation or other such luxuries, and, as mentioned, any 00012 // kinematic distribuions will certainly be wrong. But the generated 00013 // events should satisfy the l+jets mass constraints. 00014 // 00015 // CMSSW File : interface/gentop.h 00016 // Original Author : Scott Stuart Snyder <snyder@bnl.gov> for D0 00017 // Imported to CMSSW by Haryo Sumowidagdo <Suharyo.Sumowidagdo@cern.ch> 00018 // 00019 00020 00056 #include <string> 00057 #include <iosfwd> 00058 00059 #include "CLHEP/Random/Random.h" 00060 00061 00062 namespace hitfit { 00063 00064 00065 class Defaults; 00066 class Lepjets_Event; 00067 00068 00074 class Gentop_Args 00075 // 00076 // Hold on to parameters for the toy event generator. 00077 // float mt - Generated top mass. 00078 // float sigma_mt - Width of top mass distribution. 00079 // 00080 // float mh - Generated Higgs mass. 00081 // float sigma_mh - Width of Higgs mass distribution. 00082 // 00083 // float mw - Generated W mass. 00084 // float sigma_mw - Width of W mass distribution. 00085 // 00086 // float mb - Generated b mass. 00087 // float sigma_mb - Width of b mass distribution. 00088 // 00089 // float t_pt_mean - Mean pt of the generated top quarks. 00090 // (It will be drawn from an exponential distribution.) 00091 // float recoil_pt_mean-Mean pt of ttbar system. 00092 // (It will be drawn from an exponential distribution.) 00093 // float boost_sigma - Width of z-boost of ttbar system. 00094 // float m_boost - Mass of z-boost of ttbar system. 00095 // float sxv_tageff - Assumed efficiency of SVX b-tag. 00096 // bool smear - If true, smear the event. 00097 // bool smear_dir - If false, smear only energies, not directions. 00098 // bool muon - If false, decay leptonic ts into electrons. 00099 // Otherwise, decay into muons. 00100 // string ele_res_str - Electron resolution, for Vector_Resolution. 00101 // string muo_res_str - Muon resolution, for Vector_Resolution. 00102 // string jet_res_str - Jet resolution, for Vector_Resolution. 00103 // string kt_res_str - Kt resolution, for Resolution. 00104 // 00105 { 00106 public: 00107 // Constructor. Initialize from a Defaults object. 00136 Gentop_Args (const Defaults& defs); 00137 00138 // Retrieve parameter values. 00139 00143 double t_pt_mean () const; 00144 00148 double mt () const; 00149 00153 double sigma_mt () const; 00154 00158 double mh () const; 00159 00163 double sigma_mh () const; 00164 00168 double recoil_pt_mean () const; 00169 00173 double boost_sigma () const; 00174 00178 double m_boost () const; 00179 00183 double mb () const; 00184 00188 double sigma_mb () const; 00189 00193 double mw () const; 00194 00198 double sigma_mw () const; 00199 00203 double svx_tageff () const; 00204 00208 bool smear () const; 00209 00213 bool smear_dir () const; 00214 00218 bool muon () const; 00219 00223 std::string ele_res_str () const; 00224 00228 std::string muo_res_str () const; 00229 00233 std::string jet_res_str () const; 00234 00238 std::string kt_res_str () const; 00239 00240 private: 00241 // Hold on to parameter values. 00242 00247 double _t_pt_mean; 00248 00252 double _mt; 00253 00257 double _sigma_mt; 00258 00262 double _mh; 00263 00267 double _sigma_mh; 00268 00273 double _recoil_pt_mean; 00274 00278 double _boost_sigma; 00279 00283 double _m_boost; 00284 00288 double _mb; 00289 00293 double _sigma_mb; 00294 00298 double _mw; 00299 00303 double _sigma_mw; 00304 00309 double _svx_tageff; 00310 00315 bool _smear; 00316 00321 bool _smear_dir; 00322 00327 bool _muon; 00328 00332 std::string _ele_res_str; 00333 00337 std::string _muo_res_str; 00338 00342 std::string _jet_res_str; 00343 00348 std::string _kt_res_str; 00349 }; 00350 00351 00352 // Generate a ttbar -> ljets event. 00360 Lepjets_Event gentop (const Gentop_Args& args, 00361 CLHEP::HepRandomEngine& engine); 00362 00363 // Generate a ttH -> ljets+bb event. 00372 Lepjets_Event gentth (const Gentop_Args& args, 00373 CLHEP::HepRandomEngine& engine); 00374 00375 00376 } // namespace hitfit