CDF_2000_S4266730.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/FastJets.hh" 00005 00006 namespace Rivet { 00007 00008 00009 /// @brief CDF dijet cross-section, differential in dijet mass 00010 class CDF_2000_S4266730 : public Analysis { 00011 public: 00012 00013 /// @name Constructors etc. 00014 //@{ 00015 00016 /// Constructor 00017 CDF_2000_S4266730() 00018 : Analysis("CDF_2000_S4266730") 00019 { } 00020 00021 //@} 00022 00023 00024 public: 00025 00026 /// @name Analysis methods 00027 //@{ 00028 00029 /// Book histograms and initialise projections before the run 00030 void init() { 00031 FinalState fs(-4.2, 4.2); 00032 addProjection(FastJets(fs, FastJets::CDFJETCLU, 0.7), "Jets"); 00033 _h_mjj = bookHisto1D(1, 1, 1); 00034 } 00035 00036 00037 /// Perform the per-event analysis 00038 void analyze(const Event& event) { 00039 Jets jets = applyProjection<FastJets>(event, "Jets").jets(cmpMomByEt); 00040 if (jets.size() < 2) vetoEvent; 00041 FourMomentum jet1 = jets[0].momentum(); 00042 FourMomentum jet2 = jets[1].momentum(); 00043 double eta1 = jet1.eta(); 00044 double eta2 = jet2.eta(); 00045 if (fabs(eta1) > 2.0 || fabs(eta2) > 2.0) vetoEvent; 00046 if (fabs(tanh((eta1-eta2)/2)) > 2.0/3.0) vetoEvent; 00047 double mjj = FourMomentum(jet1+jet2).mass()/GeV; 00048 if (mjj < 180) vetoEvent; 00049 _h_mjj->fill(mjj, event.weight()); 00050 } 00051 00052 00053 /// Normalise histograms etc., after the run 00054 void finalize() { 00055 scale(_h_mjj, crossSection()/picobarn/sumOfWeights()); 00056 } 00057 00058 //@} 00059 00060 00061 private: 00062 00063 /// Histogram 00064 Histo1DPtr _h_mjj; 00065 00066 }; 00067 00068 00069 00070 // The hook for the plugin system 00071 DECLARE_RIVET_PLUGIN(CDF_2000_S4266730); 00072 00073 00074 } Generated on Wed Oct 7 2015 12:09:11 for The Rivet MC analysis system by ![]() |