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 (PID::threeCharge(p.pdgId())!=0 && 00058 deltaR(eta_P, phi_P, p.eta(), p.momentum().phi()) < 0.7) { 00059 Etsum += p.momentum().Et(); 00060 } 00061 } 00062 if (Etsum > 2.0*GeV) { 00063 vetoEvent; 00064 } 00065 00066 // sum all jets in the opposite hemisphere in phi from the photon 00067 FourMomentum jetsum; 00068 foreach (const Jet& jet, applyProjection<FastJets>(event, "Jets").jets(10.0*GeV)) { 00069 if (fabs(jet.momentum().phi()-phi_P) > M_PI) { 00070 jetsum+=jet.momentum(); 00071 } 00072 } 00073 00074 double costheta = fabs(tanh((eta_P-jetsum.eta())/2.0)); 00075 00076 _h_costheta->fill(costheta, weight); 00077 00078 } 00079 00080 00081 void finalize() { 00082 00083 normalize(_h_costheta, 1.4271); // fixed norm ok 00084 00085 } 00086 00087 00088 private: 00089 00090 Histo1DPtr _h_costheta; 00091 00092 }; 00093 00094 00095 00096 // The hook for the plugin system 00097 DECLARE_RIVET_PLUGIN(CDF_1993_S2742446); 00098 00099 } Generated on Thu Feb 6 2014 17:38:42 for The Rivet MC analysis system by ![]() |