Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:17

0001 //
0002 //
0003 // File: hitfit/Fit_Result.h
0004 // Purpose: Hold the result from a single kinematic fit.
0005 // Created: Jul, 2000, sss, based on run 1 mass analysis code.
0006 //
0007 // These objects are reference-counted.
0008 //
0009 // CMSSW File      : interface/Fit_Result.h
0010 // Original Author : Scott Stuart Snyder <snyder@bnl.gov> for D0
0011 // Imported to CMSSW by Haryo Sumowidagdo <Suharyo.Sumowidagdo@cern.ch>
0012 //
0013 
0014 /**
0015     @file Fit_Result.h
0016 
0017     @brief Hold the result of one kinematic fit.
0018 
0019     @author Scott Stuart Snyder <snyder@bnl.gov>
0020 
0021     @par Creation date:
0022     July 2000.
0023 
0024     @par Modification History:
0025     Apr 2009: Haryo Sumowidagdo <Suharyo.Sumowidagdo@cern.ch>:
0026     Imported to CMSSW.<br>
0027     Nov 2009: Haryo Sumowidagdo <Suharyo.Sumowidagdo@cern.ch>:
0028     Added Doxygen tags for automatic generation of documentation.
0029 
0030     @par Terms of Usage:
0031     With consent from the original author (Scott Snyder).
0032 
0033  */
0034 #ifndef HITFIT_FIT_RESULT_H
0035 #define HITFIT_FIT_RESULT_H
0036 
0037 #include "TopQuarkAnalysis/TopHitFit/interface/Lepjets_Event.h"
0038 #include "TopQuarkAnalysis/TopHitFit/interface/matutil.h"
0039 #include <iosfwd>
0040 #include <vector>
0041 
0042 namespace hitfit {
0043 
0044   /**
0045     @class Fit_Result
0046 
0047     @brief Hold the result of one kinematic fit.
0048 
0049  */
0050   class Fit_Result
0051   //
0052   // Purpose: Hold the result from a single kinematic fit.
0053   //
0054   {
0055   public:
0056     // Constructor.  Provide the results of the fit.
0057     /**
0058      @brief Constructor, provide the results of the fit.
0059 
0060      @param chisq The  \f$ \chi^{2} \f$  of the fit.
0061      @param ev The event kinematics after the fit.
0062      @param pullx Pull quantities for the well-measured variables.
0063      @param pully Pull quantities for the poorly-measured variables.
0064      @param umwhad The hadronic  \f$ W- \f$ boson mass before the fit.
0065      @param utmass The top quark mass before the fit, the average
0066      of leptonic and hadronic top mass.
0067      @param mt The top quark mass after the fit.
0068      @param sigmt The top quark mass uncertainty after the fit.
0069    */
0070     Fit_Result(double chisq,
0071                const Lepjets_Event& ev,
0072                const Column_Vector& pullx,
0073                const Column_Vector& pully,
0074                double umwhad,
0075                double utmass,
0076                double mt,
0077                double sigmt);
0078 
0079     // Get back the fit result.
0080     /**
0081      @brief Return the  \f$ \chi^{2} \f$  of the fit.
0082    */
0083     double chisq() const;
0084 
0085     /**
0086      @brief Return the hadronic  \f$ W- \f$ boson mass before the fit.
0087    */
0088     double umwhad() const;
0089 
0090     /**
0091      @brief Return the top quark mass before the fit.
0092    */
0093     double utmass() const;
0094 
0095     /**
0096      @brief Return the top quark mass after the fit.
0097    */
0098     double mt() const;
0099 
0100     /**
0101      @brief Return the top quark mass uncertainty after the fit.
0102    */
0103     double sigmt() const;
0104 
0105     /**
0106      @brief Return the pull quantities for the well-measured variables.
0107    */
0108     const Column_Vector& pullx() const;
0109 
0110     /**
0111      @brief Return the pull quantities for the poorly-measured variables.
0112    */
0113     const Column_Vector& pully() const;
0114 
0115     /**
0116      @brief Return the event kinematics quantities after the fit.
0117    */
0118     const Lepjets_Event& ev() const;
0119 
0120     // For sorting by chisq.
0121     friend bool operator<(const Fit_Result& a, const Fit_Result& b);
0122 
0123     // Print this object.
0124     friend std::ostream& operator<<(std::ostream& s, const Fit_Result& res);
0125 
0126     // Get the jet-types permutation
0127     /**
0128      @brief Return the list of jet types for this event.
0129 
0130    */
0131     std::vector<int> jet_types();
0132 
0133   private:
0134     // Store the results of the kinematic fit.
0135 
0136     /**
0137      The  \f$ \chi^{2} \f$  of the fit.
0138    */
0139     double _chisq;
0140 
0141     /**
0142      The hadronic  \f$ W- \f$ boson mass before the fit.
0143    */
0144     double _umwhad;
0145 
0146     /**
0147      The top quark mass before the fit.
0148    */
0149     double _utmass;
0150 
0151     /**
0152      The top quark mass after the fit.
0153    */
0154     double _mt;
0155 
0156     /**
0157      The top quark mass uncertainty after the fit.
0158    */
0159     double _sigmt;
0160 
0161     /**
0162      Pull quantities for the well-measured variables.
0163    */
0164     Column_Vector _pullx;
0165 
0166     /**
0167      Pull quantities for the poorly-measured variables.
0168    */
0169     Column_Vector _pully;
0170 
0171     /**
0172      The event kinematics after the fit.
0173    */
0174     Lepjets_Event _ev;
0175   };
0176 
0177 }  // namespace hitfit
0178 
0179 #endif  // not HITFIT_FIT_RESULT_H