|
||||
File indexing completed on 2024-04-06 12:31:17
0001 // 0002 // 0003 // File: hitfit/Top_Decaykin.h 0004 // Purpose: Calculate some kinematic quantities for ttbar events. 0005 // Created: Jul, 2000, sss, based on run 1 mass analysis code. 0006 // 0007 // CMSSW File : interface/Top_Decaykin.h 0008 // Original Author : Scott Stuart Snyder <snyder@bnl.gov> for D0 0009 // Imported to CMSSW by Haryo Sumowidagdo <Suharyo.Sumowidagdo@cern.ch> 0010 // 0011 0012 /** 0013 @file Top_Decaykin.h 0014 0015 @brief A class to hold functions to calculate kinematic quantities 0016 of interest in \f$ t\bar{t} \to \ell + 4 \mathrm{jets} \f$ events. 0017 0018 @author Scott Stuart Snyder <snyder@bnl.gov> 0019 0020 @par Creation date: 0021 Jul 2000. 0022 0023 @par Modification History: 0024 Apr 2009: Haryo Sumowidagdo <Suharyo.Sumowidagdo@cern.ch>: 0025 Imported to CMSSW.<br> 0026 Nov 2009: Haryo Sumowidagdo <Suharyo.Sumowidagdo@cern.ch>: 0027 Added doxygen tags for automatic generation of documentation. 0028 0029 @par Terms of Usage: 0030 With consent for the original author (Scott Snyder). 0031 0032 */ 0033 0034 #ifndef HITFIT_TOP_DECAYKIN_H 0035 #define HITFIT_TOP_DECAYKIN_H 0036 0037 #include "CLHEP/Vector/Boost.h" 0038 0039 #include "TopQuarkAnalysis/TopHitFit/interface/fourvec.h" 0040 #include <iosfwd> 0041 0042 namespace hitfit { 0043 0044 class Lepjets_Event; 0045 0046 /** 0047 @brief A class to hold functions to calculate kinematic quantities 0048 of interest in \f$ t\bar{t} \to \ell + 4 \mathrm{jets} \f$ events. 0049 This class has no state, only static member functions. 0050 */ 0051 class Top_Decaykin 0052 // 0053 // Purpose: Calculate some kinematic quantities for ttbar events. 0054 // This class has no state --- just static member functions. 0055 // 0056 { 0057 public: 0058 // Solve for the longitudinal z-momentum that makes the leptonic 0059 // top have mass TMASS. 0060 /** 0061 @brief Solve for the neutrino longitudinal \f$ z- \f$ momentum 0062 that makes the leptonic top have a certain value of mass. Returns 0063 <b>TRUE</b> if there were real solutions. Returns <b>FALSE</b> if there 0064 were only complex solutions. In case of complex solutions, the real 0065 components of the solutions are given. 0066 0067 @param ev Input:The event to solve. 0068 0069 @param tmass Input: The desired value of top quark mass in GeV. 0070 0071 @param nuz1 Output: The first solution (smaller absolute value). 0072 0073 @param nuz2 Output: The second solution. 0074 */ 0075 static bool solve_nu_tmass(const Lepjets_Event& ev, double tmass, double& nuz1, double& nuz2); 0076 0077 // Solve for the longitudinal z-momentum that makes the leptonic 0078 // top have mass TMASS, with imaginary component returned. 0079 /** 0080 @brief Solve for the neutrino longitudinal \f$ z- \f$ momentum 0081 that makes the leptonic top have a certain value of mass. The 0082 complex component of the solutions are also given. 0083 Returns <b>TRUE</b> if there were real solutions. 0084 Returns <b>FALSE</b> if there were only complex solutions. 0085 In case of real solutions, the first solution is the one which have 0086 smaller absolute value. In case of imaginary solutions (which are 0087 complex conjugate of each other), the first solution is the one 0088 which have imaginary component in the lower half of the complex plane, 0089 i.e., the one which have negative imaginary component). 0090 0091 @param ev Input:The event to solve. 0092 0093 @param tmass Input: The desired value of top quark mass in GeV. 0094 0095 @param re_nuz1 Output: Real component of the first solution. 0096 0097 @param im_nuz1 Output: Imaginary component of the first solution. 0098 0099 @param re_nuz2 Output: Real component of the second solution. 0100 0101 @param im_nuz2 Output: Imaginary component of the second solution. 0102 0103 */ 0104 static bool solve_nu_tmass( 0105 const Lepjets_Event& ev, double tmass, double& re_nuz1, double& im_nuz1, double& re_nuz2, double& im_nuz2); 0106 0107 // Solve for the longitudinal z-momentum that makes the leptonic 0108 // W have mass WMASS. 0109 /** 0110 @brief Solve for the longitudinal \f$ z- \f$ momentum that makes the 0111 leptonic \f$ W \f$ -boson to have a certain value of mass. Returns 0112 <b>TRUE</b> if there were real solutions. Returns <b>FALSE</b> if there 0113 were only complex solutions. In case of complex solutions, the real 0114 components of the solutions are given. 0115 0116 0117 @param ev Input: The event to solve. 0118 0119 @param wmass Input: The desired mass of the \f$ W- \f$ boson in GeV. 0120 0121 @param nuz1 Output: First solution (smaller absolute value). 0122 0123 @param nuz2 Output: Second solution. 0124 0125 */ 0126 static bool solve_nu(const Lepjets_Event& ev, double wmass, double& nuz1, double& nuz2); 0127 0128 // Solve for the longitudinal z-momentum that makes the leptonic 0129 // W have mass WMASS, with imaginary component returned. 0130 /** 0131 @brief Solve for the longitudinal \f$ z- \f$ momentum that makes the 0132 leptonic \f$ W \f$ -boson to have a certain value of mass. The 0133 complex component of the solutions are also given. 0134 Returns <b>TRUE</b> if there were real solutions. 0135 Returns <b>FALSE</b> if there were only complex solutions. 0136 In case of real solutions, the first solution is the one which have 0137 smaller absolute value. In case of imaginary solutions (which are 0138 complex conjugate of each other), the first solution is the one 0139 which have imaginary component in the lower half of the complex plane, 0140 i.e., the one which have negative imaginary component). 0141 0142 @param ev Input: The event to solve. 0143 0144 @param wmass Input: The desired mass of the \f$ W- \f$ boson in GeV. 0145 0146 @param re_nuz1 Output: Real component of the first solution. 0147 0148 @param im_nuz1 Output: Imaginary component of the first solution. 0149 0150 @param re_nuz2 Output: Real component of the second solution. 0151 0152 @param im_nuz2 Output: Imaginary component of the second solution. 0153 0154 */ 0155 static bool solve_nu( 0156 const Lepjets_Event& ev, double wmass, double& re_nuz1, double& im_nuz1, double& re_nuz2, double& im_nuz2); 0157 0158 // Sum up the appropriate 4-vectors to find the hadronic W. 0159 /** 0160 @brief Sum up the appropriate four-momenta to find the hadronic 0161 \f$ W- \f$ boson. 0162 0163 @param ev The event. 0164 */ 0165 static Fourvec hadw(const Lepjets_Event& ev); 0166 0167 // Find the higher pT jet from hadronic W 0168 /** 0169 @brief Return the hadronic \f$ W- \f$ boson jet which have higher 0170 \f$ p_{T} \f$ . 0171 0172 @param ev The event. 0173 */ 0174 static Fourvec hadw1(const Lepjets_Event& ev); 0175 0176 // Find the lower pT jet from hadronic W 0177 /** 0178 @brief Return the hadronic \f$ W- \f$ boson jet which have lower 0179 \f$ p_{T} \f$ . 0180 0181 @param ev The event. 0182 */ 0183 static Fourvec hadw2(const Lepjets_Event& ev); 0184 0185 // Sum up the appropriate 4-vectors to find the leptonic W. 0186 /** 0187 @brief Sum up the appropriate four-momenta to find the leptonic 0188 \f$ W- \f$ boson. 0189 0190 @param ev The event. 0191 */ 0192 static Fourvec lepw(const Lepjets_Event& ev); 0193 0194 // Sum up the appropriate 4-vectors to find the hadronic t. 0195 /** 0196 @brief Sum up the appropriate four-momenta to find the hadronic 0197 top quark. 0198 0199 @param ev The event. 0200 */ 0201 static Fourvec hadt(const Lepjets_Event& ev); 0202 0203 // Sum up the appropriate 4-vectors to find the leptonic t. 0204 /** 0205 @brief Sum up the appropriate four-momenta to find the leptonic 0206 top quark. 0207 0208 @param ev The event. 0209 */ 0210 static Fourvec lept(const Lepjets_Event& ev); 0211 0212 // Print kinematic information for EV. 0213 /** 0214 @brief Print the kinematic information for an event. 0215 0216 @param s The stream of which to write. 0217 0218 @param ev The event to be printed. 0219 */ 0220 static std::ostream& dump_ev(std::ostream& s, const Lepjets_Event& ev); 0221 0222 // Solve cos theta star 0223 /** 0224 @brief Calculate \f$ \cos \theta^{*} \f$ in top quark decay. 0225 0226 @param fermion The four-momentum of fermion from \f$ W- \f$ boson 0227 from top decay. 0228 0229 @param W The four-momentum of \f$ W \f$ boson from top decay. 0230 0231 @param top The four-momentum of top. 0232 */ 0233 static double cos_theta_star(const Fourvec& fermion, const Fourvec& W, const Fourvec& top); 0234 0235 // Solve cos theta star in lepton side of lepton+jets event 0236 /** 0237 @brief Calculate the lepton \f$ \cos \theta^{*} \f$ in top 0238 quark leptonic decay. 0239 0240 @param ev The event to solve. 0241 */ 0242 static double cos_theta_star(const Lepjets_Event& ev); 0243 0244 // Solve cos theta star in lepton side of lepton+jets event 0245 /** 0246 @brief Calculate the lepton \f$ \cos \theta^{*} \f$ in top 0247 quark leptonic decay. 0248 0249 @param ev The event to solve. 0250 */ 0251 static double cos_theta_star_lept(const Lepjets_Event& ev); 0252 0253 // Solve cos theta star in hadronic side of lepton+jets event 0254 /** 0255 @brief Calculate the hadronic \f$ \cos \theta^{*} \f$ in top 0256 quark leptonic decay. As there is no information on the weak 0257 isospin component of the fermion, the absolute value of 0258 \f$ \cos \theta^{*} \f$ will be returned (the solutions for 0259 up-type and down-type fermions will differ only in sign but not 0260 in magnitude). 0261 0262 @param ev The event to solve. 0263 */ 0264 static double cos_theta_star_hadt(const Lepjets_Event& ev); 0265 }; 0266 0267 } // namespace hitfit 0268 0269 #endif // not HITFIT_TOP_DECAYKIN_H
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |