rivet is hosted by Hepforge, IPPP Durham
MC_HKTSPLITTINGS.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   using namespace Cuts;
00009 
00010 
00011   /// @brief MC validation analysis for higgs [-> tau tau] + jets events
00012   class MC_HKTSPLITTINGS : public MC_JetSplittings {
00013   public:
00014 
00015     /// Default constructor
00016     MC_HKTSPLITTINGS()
00017       : MC_JetSplittings("MC_HKTSPLITTINGS", 4, "Jets")
00018     {    }
00019 
00020 
00021     /// @name Analysis methods
00022     //@{
00023 
00024     /// Book histograms
00025     void init() {
00026       /// @todo Urk, abuse! Need explicit HiggsFinder (and TauFinder?)
00027       Cut cut = etaIn(-3.5,3.5) & (pT >= 25.0*GeV);
00028       ZFinder hfinder(FinalState(), cut, PID::TAU, 115*GeV, 125*GeV, 0.0, ZFinder::NOCLUSTER);
00029       addProjection(hfinder, "Hfinder");
00030       FastJets jetpro(hfinder.remainingFinalState(), FastJets::KT, 0.6);
00031       addProjection(jetpro, "Jets");
00032 
00033       MC_JetSplittings::init();
00034     }
00035 
00036 
00037 
00038     /// Do the analysis
00039     void analyze(const Event & e) {
00040       const ZFinder& hfinder = applyProjection<ZFinder>(e, "Hfinder");
00041       if (hfinder.bosons().size() != 1) vetoEvent;
00042       MC_JetSplittings::analyze(e);
00043     }
00044 
00045 
00046     /// Finalize
00047     void finalize() {
00048       MC_JetSplittings::finalize();
00049     }
00050 
00051     //@}
00052 
00053   };
00054 
00055 
00056 
00057   // The hook for the plugin system
00058   DECLARE_RIVET_PLUGIN(MC_HKTSPLITTINGS);
00059 
00060 }