D0_2010_S8671338.cc
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #include "Rivet/Analysis.hh" 00003 #include "Rivet/Projections/FinalState.hh" 00004 #include "Rivet/Projections/ZFinder.hh" 00005 00006 namespace Rivet { 00007 00008 00009 00010 00011 /// @brief Measurement of Z(->muon muon) pT differential cross-section 00012 /// @author Flavia Dias 00013 class D0_2010_S8671338 : public Analysis { 00014 public: 00015 00016 /// Constructor 00017 D0_2010_S8671338() 00018 : Analysis("D0_2010_S8671338") 00019 { } 00020 00021 00022 ///@name Analysis methods 00023 //@{ 00024 00025 /// Add projections and book histograms 00026 void init() { 00027 Cut cut = Cuts::abseta < 1.7 && Cuts::pT > 15*GeV; 00028 ZFinder zfinder(FinalState(), cut, PID::MUON, 65*GeV, 115*GeV, 0.2, ZFinder::NOCLUSTER, ZFinder::TRACK); 00029 addProjection(zfinder, "ZFinder"); 00030 00031 _h_Z_pT_normalised = bookHisto1D(1, 1, 1); 00032 _h_Z_pT_xs = bookHisto1D(2, 1, 1); 00033 } 00034 00035 00036 // Do the analysis 00037 void analyze(const Event& e) { 00038 const double weight = e.weight(); 00039 const ZFinder& zfinder = applyProjection<ZFinder>(e, "ZFinder"); 00040 if (zfinder.bosons().size()==1) { 00041 double ZpT = zfinder.bosons()[0].pT()/GeV; 00042 _h_Z_pT_normalised->fill(ZpT, weight); 00043 _h_Z_pT_xs->fill(ZpT, weight); 00044 } 00045 } 00046 00047 00048 /// Finalize 00049 void finalize() { 00050 normalize(_h_Z_pT_normalised); 00051 scale(_h_Z_pT_xs, crossSection()/sumOfWeights()); 00052 } 00053 00054 //@} 00055 00056 00057 private: 00058 00059 /// @name Histogram 00060 Histo1DPtr _h_Z_pT_normalised; 00061 Histo1DPtr _h_Z_pT_xs; 00062 00063 }; 00064 00065 00066 00067 // The hook for the plugin system 00068 DECLARE_RIVET_PLUGIN(D0_2010_S8671338); 00069 00070 } Generated on Tue Mar 24 2015 17:35:26 for The Rivet MC analysis system by ![]() |