HepEx0409040.hh

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #ifndef RIVET_HepEx0409040_HH
00003 #define RIVET_HepEx0409040_HH
00004 
00005 #include "Rivet/Analysis.hh"
00006 #include "Rivet/Projections/D0ILConeJets.hh"
00007 #include "Rivet/Projections/PVertex.hh"
00008 #include "Rivet/Projections/TotalVisibleMomentum.hh"
00009 #include "Rivet/RivetAIDA.fhh"
00010 
00011 
00012 
00013 namespace Rivet {  
00014 
00015   /// Analysis based on the D0 Run II jet analysis described in hep-ex/0409040.
00016   /// @author Lars Sonnenschein
00017   class HepEx0409040 : public Analysis {
00018 
00019   public:
00020 
00021     /// Default constructor.
00022     inline HepEx0409040()
00023       // NB. eta in [-3,3] cut specified via FinalState constructor
00024       : _fsproj(-3.0, 3.0), _vfsproj(_fsproj), 
00025     _conejetsproj(_fsproj), _calmetproj(_fsproj), _vertexproj()
00026     { 
00027 
00028       setBeams(PROTON, ANTIPROTON);
00029 
00030 
00031       // Add particle/antiparticle vetoing: 12=nu_e, 14=nu_mu, 16=nu_tau
00032       _vfsproj
00033         .addVetoPairId(12)
00034         .addVetoPairId(14)
00035         .addVetoPairId(16);
00036       
00037       // Veto muons (PDG code = 13) with pT above 1.0 GeV
00038       _vfsproj.addVetoDetail(13, 1.0, numeric_limits<double>::max());
00039 
00040       _calmetproj = TotalVisibleMomentum(_vfsproj);
00041 
00042 
00043       addProjection(_fsproj);
00044       addProjection(_vfsproj);
00045       addProjection(_conejetsproj);
00046       addProjection(_calmetproj);
00047       addProjection(_vertexproj);
00048       
00049     }
00050 
00051     /// Factory method
00052     static Analysis* create() { return new HepEx0409040(); }
00053 
00054     /// Return the name of this analysis.
00055     inline string getName() const {
00056       return "HepEx0409040";
00057     }
00058 
00059   public:
00060 
00061     void init();
00062     
00063     void analyze(const Event& event);
00064     
00065     void finalize();
00066 
00067   private:
00068 
00069     /// The final state projector used by this analysis.
00070     FinalState _fsproj;
00071 
00072     ///The vetoed final state projector needed by the jet algorithm
00073     VetoedFinalState _vfsproj; 
00074 
00075     /// The D0ILConeJets projector used by this analysis.
00076     D0ILConeJets _conejetsproj;
00077 
00078     /// The Calorimeter Missing Et projector
00079     TotalVisibleMomentum _calmetproj;
00080 
00081     /// The Primary Vertex projector
00082     PVertex _vertexproj;
00083 
00084     /// Hide the assignment operator
00085     HepEx0409040& operator=(const HepEx0409040& x);
00086 
00087     /// @name Histograms
00088     //@{
00089     AIDA::IHistogram1D* _histJetAzimuth_pTmax75_100;
00090     AIDA::IHistogram1D* _histJetAzimuth_pTmax100_130;
00091     AIDA::IHistogram1D* _histJetAzimuth_pTmax130_180;
00092     AIDA::IHistogram1D* _histJetAzimuth_pTmax180_;
00093     //@}
00094 
00095   };
00096 
00097 }
00098 
00099 #endif