CDF_1993_S2742446.cc
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #include "Rivet/Analysis.hh" 00003 #include "Rivet/Projections/FinalState.hh" 00004 #include "Rivet/Projections/FastJets.hh" 00005 #include "Rivet/Projections/LeadingParticlesFinalState.hh" 00006 #include "Rivet/Projections/VetoedFinalState.hh" 00007 00008 namespace Rivet { 00009 00010 00011 /// @brief CDF <what is this analysis doing?> 00012 class CDF_1993_S2742446 : public Analysis { 00013 public: 00014 00015 CDF_1993_S2742446() 00016 : Analysis("CDF_1993_S2742446") 00017 { } 00018 00019 00020 public: 00021 00022 void init() { 00023 00024 // The photon selection has been corrected to pTmin=22 GeV (vs. 23 in the trigger) 00025 LeadingParticlesFinalState photonfs(FinalState(-0.9, 0.9, 22.0*GeV)); 00026 photonfs.addParticleId(PID::PHOTON); 00027 addProjection(photonfs, "LeadingPhoton"); 00028 00029 // FS excluding the leading photon 00030 VetoedFinalState vfs(FinalState(-4.2, 4.2)); 00031 vfs.addVetoOnThisFinalState(photonfs); 00032 addProjection(vfs, "VFS"); 00033 00034 // Jets 00035 addProjection(FastJets(vfs, FastJets::CDFJETCLU, 0.7), "Jets"); 00036 00037 _h_costheta = bookHisto1D(1, 1, 1); 00038 00039 } 00040 00041 00042 void analyze(const Event& event) { 00043 00044 const double weight = event.weight(); 00045 00046 Particles photons = applyProjection<LeadingParticlesFinalState>(event, "LeadingPhoton").particles(); 00047 if (photons.size()!=1 || photons[0].pT()>45.0*GeV) { 00048 vetoEvent; 00049 } 00050 FourMomentum leadingPhoton = photons[0].momentum(); 00051 double eta_P = leadingPhoton.eta(); 00052 double phi_P = leadingPhoton.phi(); 00053 00054 // photon isolation: less than 2 GeV EM E_T 00055 double Etsum=0.0; 00056 foreach (const Particle& p, applyProjection<VetoedFinalState>(event, "VFS").particles()) { 00057 if (p.charge() != 0 && deltaR(eta_P, phi_P, p.eta(), p.phi()) < 0.7) Etsum += p.Et(); 00058 } 00059 if (Etsum > 2*GeV) vetoEvent; 00060 00061 // sum all jets in the opposite hemisphere in phi from the photon 00062 FourMomentum jetsum; 00063 foreach (const Jet& jet, applyProjection<FastJets>(event, "Jets").jets(Cuts::pT > 10*GeV)) { 00064 if (fabs(jet.phi()-phi_P) > M_PI) jetsum+=jet.momentum(); 00065 } 00066 00067 const double costheta = fabs(tanh((eta_P-jetsum.eta())/2.0)); 00068 _h_costheta->fill(costheta, weight); 00069 } 00070 00071 00072 void finalize() { 00073 /// @todo Take fixed norm direct from ref histo 00074 normalize(_h_costheta, 1.4271); // fixed norm ok 00075 } 00076 00077 00078 private: 00079 00080 Histo1DPtr _h_costheta; 00081 00082 }; 00083 00084 00085 00086 // The hook for the plugin system 00087 DECLARE_RIVET_PLUGIN(CDF_1993_S2742446); 00088 00089 } Generated on Tue Mar 24 2015 17:35:25 for The Rivet MC analysis system by ![]() |