CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_7_hltpatch2/src/TopQuarkAnalysis/TopHitFit/interface/gentop.h

Go to the documentation of this file.
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