00001 // 00002 // $Id: Constrained_Z.h,v 1.1 2011/05/26 09:46:53 mseidel Exp $ 00003 // 00004 // File: Constrained_Z.h 00005 // Purpose: Do kinematic fitting for a (Z->ll)+jets event. 00006 // Created: Apr, 2004, sss 00007 // 00008 // CMSSW File : interface/Constrained_Z.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 00036 #ifndef HITFIT_CONSTRAINED_Z_H 00037 #define HITFIT_CONSTRAINED_Z_H 00038 00039 00040 #include "TopQuarkAnalysis/TopHitFit/interface/Fourvec_Constrainer.h" 00041 #include "TopQuarkAnalysis/TopHitFit/interface/matutil.h" 00042 #include <iosfwd> 00043 00044 00045 namespace hitfit { 00046 00047 00048 class Defaults; 00049 class Lepjets_Event; 00050 00051 00056 class Constrained_Z_Args 00057 // 00058 // Purpose: Hold on to parameters for the Constrained_Z class. 00059 // 00060 // Parameters controlling the operation of the fitter: 00061 // float zmass - The mass to which the Z should be fixed. 00062 // 00063 { 00064 public: 00065 // Constructor. Initialize from a Defaults object. 00074 Constrained_Z_Args (const Defaults& defs); 00075 00076 // Retrieve parameter values. 00080 double zmass () const; 00081 00082 // Arguments for subobjects. 00086 const Fourvec_Constrainer_Args& fourvec_constrainer_args () const; 00087 00088 private: 00089 // Hold on to parameter values. 00093 double _zmass; 00094 00099 Fourvec_Constrainer_Args _fourvec_constrainer_args; 00100 }; 00101 00102 00103 //************************************************************************* 00104 00105 00111 class Constrained_Z 00112 // 00113 // Purpose: Do kinematic fitting for a (Z->ll)+jets event. 00114 // 00115 { 00116 public: 00117 // Constructor. 00123 Constrained_Z (const Constrained_Z_Args& args); 00124 00125 // Do a constrained fit. 00146 double constrain (Lepjets_Event& ev, Column_Vector& pull); 00147 00148 // Dump out our state. 00149 friend std::ostream& operator<< (std::ostream& s, const Constrained_Z& cz); 00150 00151 00152 private: 00153 // Parameter settings. 00157 const Constrained_Z_Args& _args; 00158 00159 // The guy that actually does the work. 00163 Fourvec_Constrainer _constrainer; 00164 }; 00165 00166 00167 } // namespace hitfit 00168 00169 00170 #endif // not HITFIT_CONSTRAINED_Z_H