D0_2004_S5992206.cc
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #include "Rivet/Analysis.hh" 00003 #include "Rivet/Projections/FastJets.hh" 00004 #include "Rivet/Projections/VetoedFinalState.hh" 00005 #include "Rivet/Projections/VisibleFinalState.hh" 00006 #include "Rivet/Projections/MissingMomentum.hh" 00007 00008 namespace Rivet { 00009 00010 00011 /* @brief D0 Run II angular correlations in di-jet events 00012 * @author Lars Sonnenschein 00013 * 00014 * Measurement of angular correlations in di-jet events. 00015 * 00016 * @par Run conditions 00017 * 00018 * @arg \f$ \sqrt{s} = \f$ 1960 GeV 00019 * @arg Run with generic QCD events. 00020 * @arg Several \f$ p_\perp^\text{min} \f$ cutoffs are probably required to fill the histograms: 00021 * @arg \f$ p_\perp^\text{min} = \f$ 50, 75, 100, 150 GeV for the four pT ranges respecively 00022 * 00023 */ 00024 class D0_2004_S5992206 : public Analysis { 00025 00026 public: 00027 00028 /// @name Constructors etc. 00029 //@{ 00030 00031 /// Constructor. 00032 D0_2004_S5992206() 00033 : Analysis("D0_2004_S5992206") 00034 { } 00035 00036 //@} 00037 00038 00039 /// @name Analysis methods 00040 //@{ 00041 00042 void init() { 00043 // Final state for jets, mET etc. 00044 const FinalState fs(-3.0, 3.0); 00045 addProjection(fs, "FS"); 00046 // Veto neutrinos, and muons with pT above 1.0 GeV 00047 VetoedFinalState vfs(fs); 00048 vfs.vetoNeutrinos(); 00049 vfs.addVetoPairDetail(PID::MUON, 1.0*GeV, MAXDOUBLE); 00050 addProjection(vfs, "VFS"); 00051 addProjection(FastJets(vfs, FastJets::D0ILCONE, 0.7), "Jets"); 00052 addProjection(MissingMomentum(vfs), "CalMET"); 00053 00054 // Book histograms 00055 _histJetAzimuth_pTmax75_100 = bookHisto1D(1, 2, 1); 00056 _histJetAzimuth_pTmax100_130 = bookHisto1D(2, 2, 1); 00057 _histJetAzimuth_pTmax130_180 = bookHisto1D(3, 2, 1); 00058 _histJetAzimuth_pTmax180_ = bookHisto1D(4, 2, 1); 00059 } 00060 00061 00062 /// Do the analysis 00063 void analyze(const Event& event) { 00064 00065 // Analyse and print some info 00066 const JetAlg& jetpro = applyProjection<JetAlg>(event, "Jets"); 00067 MSG_DEBUG("Jet multiplicity before any pT cut = " << jetpro.size()); 00068 00069 const Jets jets = jetpro.jetsByPt(40.0*GeV); 00070 if (jets.size() >= 2) { 00071 MSG_DEBUG("Jet multiplicity after pT > 40 GeV cut = " << jets.size()); 00072 } else { 00073 vetoEvent; 00074 } 00075 const double rap1 = jets[0].rapidity(); 00076 const double rap2 = jets[1].rapidity(); 00077 if (fabs(rap1) > 0.5 || fabs(rap2) > 0.5) { 00078 vetoEvent; 00079 } 00080 MSG_DEBUG("Jet eta and pT requirements fulfilled"); 00081 const double pT1 = jets[0].pT(); 00082 00083 const MissingMomentum& caloMissEt = applyProjection<MissingMomentum>(event, "CalMET"); 00084 MSG_DEBUG("Missing vector Et = " << caloMissEt.vectorEt()/GeV << " GeV"); 00085 if (caloMissEt.vectorEt().mod() > 0.7*pT1) { 00086 MSG_DEBUG("Vetoing event with too much missing ET: " 00087 << caloMissEt.vectorEt()/GeV << " GeV > " 00088 << 0.7*pT1/GeV << " GeV"); 00089 vetoEvent; 00090 } 00091 00092 if (pT1/GeV >= 75.0) { 00093 const double weight = event.weight(); 00094 const double dphi = deltaPhi(jets[0].phi(), jets[1].phi()); 00095 if (inRange(pT1/GeV, 75.0, 100.0)) { 00096 _histJetAzimuth_pTmax75_100->fill(dphi, weight); 00097 } else if (inRange(pT1/GeV, 100.0, 130.0)) { 00098 _histJetAzimuth_pTmax100_130->fill(dphi, weight); 00099 } else if (inRange(pT1/GeV, 130.0, 180.0)) { 00100 _histJetAzimuth_pTmax130_180->fill(dphi, weight); 00101 } else if (pT1/GeV > 180.0) { 00102 _histJetAzimuth_pTmax180_->fill(dphi, weight); 00103 } 00104 } 00105 00106 } 00107 00108 00109 // Finalize 00110 void finalize() { 00111 // Normalize histograms to unit area 00112 normalize(_histJetAzimuth_pTmax75_100); 00113 normalize(_histJetAzimuth_pTmax100_130); 00114 normalize(_histJetAzimuth_pTmax130_180); 00115 normalize(_histJetAzimuth_pTmax180_); 00116 } 00117 00118 //@} 00119 00120 00121 private: 00122 00123 /// @name Histograms 00124 //@{ 00125 Histo1DPtr _histJetAzimuth_pTmax75_100; 00126 Histo1DPtr _histJetAzimuth_pTmax100_130; 00127 Histo1DPtr _histJetAzimuth_pTmax130_180; 00128 Histo1DPtr _histJetAzimuth_pTmax180_; 00129 //@} 00130 00131 }; 00132 00133 00134 00135 // The hook for the plugin system 00136 DECLARE_RIVET_PLUGIN(D0_2004_S5992206); 00137 00138 } Generated on Wed Oct 7 2015 12:09:12 for The Rivet MC analysis system by ![]() |