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