rivet is hosted by Hepforge, IPPP Durham
MC_ZKTSPLITTINGS.cc
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #include "Rivet/Analyses/MC_JetSplittings.hh"
00003 #include "Rivet/Projections/ZFinder.hh"
00004 #include "Rivet/Projections/FastJets.hh"
00005 
00006 namespace Rivet {
00007 
00008 
00009   /// @brief MC validation analysis for Z + jets events
00010   class MC_ZKTSPLITTINGS : public MC_JetSplittings {
00011   public:
00012 
00013     /// Default constructor
00014     MC_ZKTSPLITTINGS()
00015       : MC_JetSplittings("MC_ZKTSPLITTINGS", 4, "Jets")
00016     {    }
00017 
00018 
00019     /// @name Analysis methods
00020     //@{
00021 
00022     /// Book histograms
00023     void init() {
00024       FinalState fs;
00025       Cut cut = EtaIn(-3.5,3.5) & (Cuts::pT >= 25.0*GeV);
00026       ZFinder zfinder(fs, cut, PID::ELECTRON, 65*GeV, 115*GeV, 0.2, ZFinder::CLUSTERNODECAY, ZFinder::TRACK);
00027       addProjection(zfinder, "ZFinder");
00028       FastJets jetpro(zfinder.remainingFinalState(), FastJets::KT, 0.6);
00029       addProjection(jetpro, "Jets");
00030 
00031       MC_JetSplittings::init();
00032     }
00033 
00034 
00035 
00036     /// Do the analysis
00037     void analyze(const Event & e) {
00038       const ZFinder& zfinder = applyProjection<ZFinder>(e, "ZFinder");
00039       if (zfinder.bosons().size() != 1) vetoEvent;
00040 
00041       MC_JetSplittings::analyze(e);
00042     }
00043 
00044 
00045     /// Finalize
00046     void finalize() {
00047       MC_JetSplittings::finalize();
00048     }
00049 
00050     //@}
00051 
00052   };
00053 
00054 
00055 
00056   // The hook for the plugin system
00057   DECLARE_RIVET_PLUGIN(MC_ZKTSPLITTINGS);
00058 
00059 }