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