CDF_2009_S8383952.cc
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #include "Rivet/Analysis.hh" 00003 #include "Rivet/RivetYODA.hh" 00004 #include "Rivet/Tools/Logging.hh" 00005 #include "Rivet/Projections/FinalState.hh" 00006 #include "Rivet/Projections/ZFinder.hh" 00007 00008 namespace Rivet { 00009 00010 00011 /// @brief CDF Z boson rapidity measurement 00012 class CDF_2009_S8383952 : public Analysis { 00013 public: 00014 00015 /// @name Constructors etc. 00016 //@{ 00017 00018 /// Constructor 00019 CDF_2009_S8383952() 00020 : Analysis("CDF_2009_S8383952") 00021 { } 00022 00023 //@} 00024 00025 00026 public: 00027 00028 /// @name Analysis methods 00029 //@{ 00030 00031 /// Book histograms and initialise projections before the run 00032 void init() { 00033 00034 /// Initialise and register projections here 00035 // this seems to have been corrected completely for all selection cuts, 00036 // i.e. eta cuts and pT cuts on leptons. 00037 FinalState fs; 00038 ZFinder zfinder(fs, -MAXRAPIDITY, MAXRAPIDITY, 0.0*GeV, ELECTRON, 00039 66.0*GeV, 116.0*GeV, 0.2, true, true); 00040 addProjection(zfinder, "ZFinder"); 00041 00042 00043 /// Book histograms here 00044 _h_xs = bookHisto1D(1, 1, 1); 00045 _h_yZ = bookHisto1D(2, 1, 1); 00046 00047 } 00048 00049 00050 /// Perform the per-event analysis 00051 void analyze(const Event& event) { 00052 const double weight = event.weight(); 00053 00054 const ZFinder& zfinder = applyProjection<ZFinder>(event, "ZFinder"); 00055 if (zfinder.bosons().size() == 1) { 00056 double yZ = fabs(zfinder.bosons()[0].momentum().rapidity()); 00057 _h_yZ->fill(yZ, weight); 00058 _h_xs->fill(1960.0, weight); 00059 } 00060 else { 00061 MSG_DEBUG("no unique lepton pair found."); 00062 } 00063 00064 } 00065 00066 00067 /// Normalise histograms etc., after the run 00068 void finalize() { 00069 scale(_h_xs, crossSection()/sumOfWeights()); 00070 // Data seems to have been normalized for the avg of the two sides 00071 // (+ve & -ve rapidity) rather than the sum, hence the 0.5: 00072 scale(_h_yZ, 0.5*crossSection()/sumOfWeights()); 00073 } 00074 00075 //@} 00076 00077 00078 private: 00079 00080 /// @name Histograms 00081 //@{ 00082 Histo1DPtr _h_yZ; 00083 Histo1DPtr _h_xs; 00084 //@} 00085 00086 }; 00087 00088 00089 00090 // The hook for the plugin system 00091 DECLARE_RIVET_PLUGIN(CDF_2009_S8383952); 00092 00093 } Generated on Fri Dec 21 2012 15:03:40 for The Rivet MC analysis system by ![]() |