CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/TopQuarkAnalysis/TopHitFit/interface/Constrained_Z.h

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