ATLAS_2014_I1288706.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 #include "Rivet/Particle.fhh" 00006 00007 namespace Rivet { 00008 00009 00010 class ATLAS_2014_I1288706 : public Analysis { 00011 public: 00012 00013 /// Constructor 00014 ATLAS_2014_I1288706() 00015 : Analysis("ATLAS_2014_I1288706") 00016 { 00017 _sumw_ext_mu_dressed = 0; 00018 _sumw_mu_dressed = 0; 00019 _sumw_el_dressed = 0; 00020 } 00021 00022 00023 public: 00024 00025 /// @name Analysis methods 00026 //@{ 00027 00028 /// Book histograms and initialise projections before the run 00029 void init() { 00030 00031 // Set up projections 00032 FinalState fs; 00033 00034 ZFinder zfinder_ext_dressed_mu(fs, Cuts::abseta<2.4 && Cuts::pT>6.0*GeV, PID::MUON, 12.0*GeV, 66.0*GeV, 0.1); 00035 addProjection(zfinder_ext_dressed_mu, "ZFinder_ext_dressed_mu"); 00036 00037 ZFinder zfinder_dressed_mu(fs, Cuts::abseta<2.4 && Cuts::pT>12*GeV, PID::MUON, 26.0*GeV, 66.0*GeV, 0.1); 00038 addProjection(zfinder_dressed_mu, "ZFinder_dressed_mu"); 00039 00040 ZFinder zfinder_dressed_el(fs, Cuts::abseta<2.4 && Cuts::pT>12*GeV, PID::ELECTRON, 26.0*GeV, 66.0*GeV, 0.1); 00041 addProjection(zfinder_dressed_el, "ZFinder_dressed_el"); 00042 00043 _hist_ext_mu_dressed = bookHisto1D(1, 1, 1); // muon, dressed level, extended phase space 00044 _hist_mu_dressed = bookHisto1D(2, 1, 1); // muon, dressed level, nominal phase space 00045 _hist_el_dressed = bookHisto1D(2, 1, 2); // electron, dressed level, nominal phase space 00046 } 00047 00048 00049 /// Perform the per-event analysis 00050 void analyze(const Event& event) { 00051 const double weight = event.weight(); 00052 const ZFinder& zfinder_ext_dressed_mu = applyProjection<ZFinder>(event, "ZFinder_ext_dressed_mu"); 00053 const ZFinder& zfinder_dressed_mu = applyProjection<ZFinder>(event, "ZFinder_dressed_mu" ); 00054 const ZFinder& zfinder_dressed_el = applyProjection<ZFinder>(event, "ZFinder_dressed_el" ); 00055 00056 FillPlots(zfinder_ext_dressed_mu, _hist_ext_mu_dressed, 9.0, weight); 00057 FillPlots(zfinder_dressed_mu, _hist_mu_dressed, 15.0, weight); 00058 FillPlots(zfinder_dressed_el, _hist_el_dressed, 15.0, weight); 00059 } 00060 00061 00062 void FillPlots(const ZFinder& zfinder, Histo1DPtr hist, double leading_pT, double weight) { 00063 00064 if(zfinder.bosons().size() != 1) return; 00065 00066 const FourMomentum el1 = zfinder.particles()[0].momentum(); 00067 const FourMomentum el2 = zfinder.particles()[1].momentum(); 00068 00069 if (el1.pT() > leading_pT*GeV || el2.pT() > leading_pT*GeV) { 00070 double mass = zfinder.bosons()[0].mass()/GeV; 00071 hist->fill(mass, weight); 00072 } 00073 } 00074 00075 00076 /// Normalise histograms etc., after the run 00077 void finalize() { 00078 00079 scale(_hist_ext_mu_dressed, crossSection()/sumOfWeights()); 00080 scale(_hist_mu_dressed, crossSection()/sumOfWeights()); 00081 scale(_hist_el_dressed, crossSection()/sumOfWeights()); 00082 00083 } 00084 00085 //@} 00086 00087 00088 private: 00089 00090 // Data members like post-cuts event weight counters go here 00091 double _sumw_ext_mu_dressed; 00092 double _sumw_mu_dressed; 00093 double _sumw_el_dressed; 00094 00095 private: 00096 00097 /// @name Histograms 00098 //@{ 00099 Histo1DPtr _hist_ext_mu_dressed; 00100 Histo1DPtr _hist_mu_dressed; 00101 Histo1DPtr _hist_el_dressed; 00102 //@} 00103 00104 }; 00105 00106 00107 00108 // The hook for the plugin system 00109 DECLARE_RIVET_PLUGIN(ATLAS_2014_I1288706); 00110 00111 } Generated on Thu Mar 10 2016 08:29:47 for The Rivet MC analysis system by ![]() |