rivet is hosted by Hepforge, IPPP Durham
CDF_2000_S4155203.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   /// @brief CDF Run I Z \f$ p_\perp \f$ in Drell-Yan events
00009   /// @author Hendrik Hoeth
00010   class CDF_2000_S4155203 : public Analysis {
00011   public:
00012 
00013     /// Constructor
00014     CDF_2000_S4155203()
00015       : Analysis("CDF_2000_S4155203")
00016     {    }
00017 
00018 
00019     /// @name Analysis methods
00020     //@{
00021 
00022     void init() {
00023       // Set up projections
00024       ZFinder zfinder(FinalState(), Cuts::open(), PID::ELECTRON,
00025                       66*GeV, 116*GeV, 0.0, ZFinder::NOCLUSTER);
00026       addProjection(zfinder, "ZFinder");
00027 
00028       // Book histogram
00029       _hist_zpt = bookHisto1D(1, 1, 1);
00030     }
00031 
00032 
00033     /// Do the analysis
00034     void analyze(const Event& e) {
00035       const ZFinder& zfinder = applyProjection<ZFinder>(e, "ZFinder");
00036       if (zfinder.bosons().size() != 1) {
00037         MSG_DEBUG("Num e+ e- pairs found = " << zfinder.bosons().size());
00038         vetoEvent;
00039       }
00040 
00041       FourMomentum pZ = zfinder.bosons()[0].momentum();
00042       if (pZ.mass2() < 0) {
00043         MSG_DEBUG("Negative Z mass**2 = " << pZ.mass2()/GeV2 << "!");
00044         vetoEvent;
00045       }
00046 
00047       MSG_DEBUG("Dilepton mass = " << pZ.mass()/GeV << " GeV");
00048       MSG_DEBUG("Dilepton pT   = " << pZ.pT()/GeV << " GeV");
00049       _hist_zpt->fill(pZ.pT()/GeV, e.weight());
00050     }
00051 
00052 
00053     void finalize() {
00054       scale(_hist_zpt, crossSection()/picobarn/sumOfWeights());
00055     }
00056 
00057     //@}
00058 
00059 
00060   private:
00061 
00062     Histo1DPtr _hist_zpt;
00063 
00064   };
00065 
00066 
00067 
00068   // The hook for the plugin system
00069   DECLARE_RIVET_PLUGIN(CDF_2000_S4155203);
00070 
00071 }