CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 //
00002 // $Id: Top_Decaykin.h,v 1.1 2011/05/26 09:46:53 mseidel Exp $
00003 //
00004 // File: hitfit/Top_Decaykin.h
00005 // Purpose: Calculate some kinematic quantities for ttbar events.
00006 // Created: Jul, 2000, sss, based on run 1 mass analysis code.
00007 //
00008 // CMSSW File      : interface/Top_Decaykin.h
00009 // Original Author : Scott Stuart Snyder <snyder@bnl.gov> for D0
00010 // Imported to CMSSW by Haryo Sumowidagdo <Suharyo.Sumowidagdo@cern.ch>
00011 //
00012 
00013 
00036 #ifndef HITFIT_TOP_DECAYKIN_H
00037 #define HITFIT_TOP_DECAYKIN_H
00038 
00039 #include "CLHEP/Vector/Boost.h"
00040 
00041 #include "TopQuarkAnalysis/TopHitFit/interface/fourvec.h"
00042 #include <iosfwd>
00043 
00044 
00045 namespace hitfit {
00046 
00047 
00048 class Lepjets_Event;
00049 
00050 
00056 class Top_Decaykin
00057 //
00058 // Purpose: Calculate some kinematic quantities for ttbar events.
00059 //          This class has no state --- just static member functions.
00060 //
00061 {
00062 public:
00063   // Solve for the longitudinal z-momentum that makes the leptonic
00064   // top have mass TMASS.
00080   static bool solve_nu_tmass (const Lepjets_Event& ev, double tmass,
00081                               double& nuz1, double& nuz2);
00082 
00083   // Solve for the longitudinal z-momentum that makes the leptonic
00084   // top have mass TMASS, with imaginary component returned.
00110   static bool solve_nu_tmass (const Lepjets_Event& ev, double tmass,
00111                               double& re_nuz1, double& im_nuz1,
00112                               double& re_nuz2, double& im_nuz2);
00113 
00114   // Solve for the longitudinal z-momentum that makes the leptonic
00115   // W have mass WMASS.
00133   static bool solve_nu (const Lepjets_Event& ev, double wmass,
00134                         double& nuz1, double& nuz2);
00135 
00136   // Solve for the longitudinal z-momentum that makes the leptonic
00137   // W have mass WMASS, with imaginary component returned.
00163   static bool solve_nu (const Lepjets_Event& ev, double wmass,
00164                         double& re_nuz1, double& im_nuz1,
00165                         double& re_nuz2, double& im_nuz2);
00166 
00167   // Sum up the appropriate 4-vectors to find the hadronic W.
00174   static Fourvec hadw (const Lepjets_Event& ev);
00175 
00176   // Find the higher pT jet from hadronic W
00183   static Fourvec hadw1 (const Lepjets_Event& ev);
00184 
00185   // Find the lower pT jet from hadronic W
00192   static Fourvec hadw2 (const Lepjets_Event& ev);
00193 
00194   // Sum up the appropriate 4-vectors to find the leptonic W.
00201   static Fourvec lepw (const Lepjets_Event& ev);
00202 
00203   // Sum up the appropriate 4-vectors to find the hadronic t.
00210   static Fourvec hadt (const Lepjets_Event& ev);
00211 
00212   // Sum up the appropriate 4-vectors to find the leptonic t.
00219   static Fourvec lept (const Lepjets_Event& ev);
00220 
00221   // Print kinematic information for EV.
00229   static std::ostream& dump_ev (std::ostream& s, const Lepjets_Event& ev);
00230 
00231   // Solve cos theta star
00242   static double cos_theta_star(const Fourvec fermion,
00243                                const Fourvec W,
00244                                const Fourvec top);
00245 
00246   // Solve cos theta star in lepton side of lepton+jets event
00253   static double cos_theta_star(const Lepjets_Event& ev);
00254 
00255   // Solve cos theta star in lepton side of lepton+jets event
00262   static double cos_theta_star_lept(const Lepjets_Event& ev);
00263 
00264   // Solve cos theta star in hadronic side of lepton+jets event
00275   static double cos_theta_star_hadt(const Lepjets_Event& ev);
00276 
00277 
00278 };
00279 
00280 
00281 } // namespace hitfit
00282 
00283 
00284 #endif // not HITFIT_TOP_DECAYKIN_H
00285