LHCB_2012_I1208102.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 /// Differential cross-sections of $\mathrm{Z}/\gamma^* \to e^{+}e^{-}$ vs rapidity and $\phi^*$ 00009 class LHCB_2012_I1208102 : public Analysis { 00010 public: 00011 00012 00013 /// Constructor 00014 LHCB_2012_I1208102() 00015 : Analysis("LHCB_2012_I1208102") 00016 { } 00017 00018 00019 /// @name Analysis methods 00020 //@{ 00021 00022 /// Book histograms 00023 void init() { 00024 ZFinder zeefinder(FinalState(), Cuts::etaIn(2.0, 4.5) && Cuts::pT > 20*GeV, PID::ELECTRON, 60*GeV, 120*GeV); 00025 addProjection(zeefinder, "ZeeFinder"); 00026 00027 _h_sigma_vs_y = bookHisto1D(2, 1, 1); 00028 _h_sigma_vs_phi = bookHisto1D(3, 1, 1); 00029 } 00030 00031 00032 /// Do the analysis 00033 void analyze(const Event& e) { 00034 const ZFinder& zeefinder = applyProjection<ZFinder>(e, "ZeeFinder"); 00035 if (zeefinder.empty()) vetoEvent; 00036 if (zeefinder.bosons().size() > 1) 00037 MSG_WARNING("Found multiple (" << zeefinder.bosons().size() << ") Z -> e+ e- decays!"); 00038 00039 // Z momenta 00040 const FourMomentum& zee = zeefinder.bosons()[0].momentum(); 00041 const Particle& pozitron = zeefinder.constituents()[0]; 00042 const Particle& electron = zeefinder.constituents()[1]; 00043 00044 // Calculation of the angular variable 00045 const double diffphi = deltaPhi(pozitron, electron); 00046 const double diffpsd = deltaEta(pozitron, electron); 00047 const double accphi = M_PI - diffphi; 00048 const double angular = tan(accphi/2) / cosh(diffpsd/2); 00049 00050 // Fill histograms 00051 _h_sigma_vs_y->fill(zee.rapidity(), e.weight()); 00052 _h_sigma_vs_phi->fill(angular, e.weight()); 00053 } 00054 00055 00056 /// Finalize 00057 void finalize() { 00058 const double xs = crossSection()/picobarn; 00059 scale(_h_sigma_vs_y, xs/sumOfWeights()); 00060 scale(_h_sigma_vs_phi, xs/sumOfWeights()); 00061 } 00062 00063 //@} 00064 00065 00066 private: 00067 00068 /// @name Histograms 00069 //@{ 00070 Histo1DPtr _h_sigma_vs_y, _h_sigma_vs_phi; 00071 //@} 00072 00073 }; 00074 00075 00076 // The hook for the plugin system 00077 DECLARE_RIVET_PLUGIN(LHCB_2012_I1208102); 00078 00079 } Generated on Thu Mar 10 2016 08:29:51 for The Rivet MC analysis system by ![]() |