ATLAS_2011_S9131140.cc
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #include "Rivet/Analysis.hh" 00003 #include "Rivet/Projections/ZFinder.hh" 00004 00005 namespace Rivet { 00006 00007 00008 /// @brief ATLAS Z pT in Drell-Yan events at 7 TeV 00009 /// @author Elena Yatsenko, Judith Katzy 00010 class ATLAS_2011_S9131140 : public Analysis { 00011 public: 00012 00013 /// Constructor 00014 ATLAS_2011_S9131140() 00015 : Analysis("ATLAS_2011_S9131140") 00016 { 00017 _sumw_el_bare = 0; 00018 _sumw_el_dressed = 0; 00019 _sumw_mu_bare = 0; 00020 _sumw_mu_dressed = 0; 00021 } 00022 00023 00024 /// @name Analysis methods 00025 //@{ 00026 00027 void init() { 00028 00029 // Set up projections 00030 FinalState fs; 00031 Cut cut = Cuts::abseta < 2.4 && Cuts::pT > 20*GeV; 00032 00033 ZFinder zfinder_dressed_el(fs, cut, PID::ELECTRON, 66.0*GeV, 116.0*GeV, 0.1, ZFinder::CLUSTERNODECAY); 00034 addProjection(zfinder_dressed_el, "ZFinder_dressed_el"); 00035 ZFinder zfinder_bare_el(fs, cut, PID::ELECTRON, 66.0*GeV, 116.0*GeV, 0.0, ZFinder::NOCLUSTER); 00036 addProjection(zfinder_bare_el, "ZFinder_bare_el"); 00037 ZFinder zfinder_dressed_mu(fs, cut, PID::MUON, 66.0*GeV, 116.0*GeV, 0.1, ZFinder::CLUSTERNODECAY); 00038 addProjection(zfinder_dressed_mu, "ZFinder_dressed_mu"); 00039 ZFinder zfinder_bare_mu(fs, cut, PID::MUON, 66.0*GeV, 116.0*GeV, 0.0, ZFinder::NOCLUSTER); 00040 addProjection(zfinder_bare_mu, "ZFinder_bare_mu"); 00041 00042 // Book histograms 00043 _hist_zpt_el_dressed = bookHisto1D(1, 1, 2); // electron "dressed" 00044 _hist_zpt_el_bare = bookHisto1D(1, 1, 3); // electron "bare" 00045 _hist_zpt_mu_dressed = bookHisto1D(2, 1, 2); // muon "dressed" 00046 _hist_zpt_mu_bare = bookHisto1D(2, 1, 3); // muon "bare" 00047 } 00048 00049 00050 /// Do the analysis 00051 void analyze(const Event& evt) { 00052 const double weight = evt.weight(); 00053 00054 const ZFinder& zfinder_dressed_el = applyProjection<ZFinder>(evt, "ZFinder_dressed_el"); 00055 if (!zfinder_dressed_el.bosons().empty()) { 00056 _sumw_el_dressed += weight; 00057 const FourMomentum pZ = zfinder_dressed_el.bosons()[0].momentum(); 00058 _hist_zpt_el_dressed->fill(pZ.pT()/GeV, weight); 00059 } 00060 00061 const ZFinder& zfinder_bare_el = applyProjection<ZFinder>(evt, "ZFinder_bare_el"); 00062 if (!zfinder_bare_el.bosons().empty()) { 00063 _sumw_el_bare += weight; 00064 const FourMomentum pZ = zfinder_bare_el.bosons()[0].momentum(); 00065 _hist_zpt_el_bare->fill(pZ.pT()/GeV, weight); 00066 } 00067 00068 const ZFinder& zfinder_dressed_mu = applyProjection<ZFinder>(evt, "ZFinder_dressed_mu"); 00069 if (!zfinder_dressed_mu.bosons().empty()) { 00070 _sumw_mu_dressed += weight; 00071 const FourMomentum pZ = zfinder_dressed_mu.bosons()[0].momentum(); 00072 _hist_zpt_mu_dressed->fill(pZ.pT()/GeV, weight); 00073 } 00074 00075 const ZFinder& zfinder_bare_mu = applyProjection<ZFinder>(evt, "ZFinder_bare_mu"); 00076 if (!zfinder_bare_mu.bosons().empty()) { 00077 _sumw_mu_bare += weight; 00078 const FourMomentum pZ = zfinder_bare_mu.bosons()[0].momentum(); 00079 _hist_zpt_mu_bare->fill(pZ.pT()/GeV, weight); 00080 } 00081 00082 } 00083 00084 00085 void finalize() { 00086 if (_sumw_el_dressed != 0) scale(_hist_zpt_el_dressed, 1/_sumw_el_dressed); 00087 if (_sumw_el_bare != 0) scale(_hist_zpt_el_bare, 1/_sumw_el_bare); 00088 if (_sumw_mu_dressed != 0) scale(_hist_zpt_mu_dressed, 1/_sumw_mu_dressed); 00089 if (_sumw_mu_bare != 0) scale(_hist_zpt_mu_bare, 1/_sumw_mu_bare); 00090 } 00091 00092 //@} 00093 00094 00095 private: 00096 00097 double _sumw_el_bare, _sumw_el_dressed; 00098 double _sumw_mu_bare, _sumw_mu_dressed; 00099 00100 Histo1DPtr _hist_zpt_el_dressed; 00101 Histo1DPtr _hist_zpt_el_bare; 00102 Histo1DPtr _hist_zpt_mu_dressed; 00103 Histo1DPtr _hist_zpt_mu_bare; 00104 }; 00105 00106 00107 // Hook for the plugin system 00108 DECLARE_RIVET_PLUGIN(ATLAS_2011_S9131140); 00109 00110 } Generated on Thu Mar 10 2016 08:29:46 for The Rivet MC analysis system by ![]() |