00001
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/RivetAIDA.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
00015 class CDF_1993_S2742446 : public Analysis {
00016 public:
00017
00018 CDF_1993_S2742446()
00019 : Analysis("CDF_1993_S2742446")
00020 {
00021 setBeams(PROTON, ANTIPROTON);
00022 setNeedsCrossSection(false);
00023 }
00024
00025
00026 public:
00027
00028 void init() {
00029
00030
00031 LeadingParticlesFinalState photonfs(FinalState(-0.9, 0.9, 22.0*GeV));
00032 photonfs.addParticleId(PHOTON);
00033 addProjection(photonfs, "LeadingPhoton");
00034
00035
00036 VetoedFinalState vfs(FinalState(-4.2, 4.2));
00037 vfs.addVetoOnThisFinalState(photonfs);
00038 addProjection(vfs, "VFS");
00039
00040
00041 addProjection(FastJets(vfs, FastJets::CDFJETCLU, 0.7), "Jets");
00042
00043 _h_costheta = bookHistogram1D(1, 1, 1);
00044
00045 }
00046
00047
00048 void analyze(const Event& event) {
00049
00050 const double weight = event.weight();
00051
00052 ParticleVector photons = applyProjection<LeadingParticlesFinalState>(event, "LeadingPhoton").particles();
00053 if (photons.size()!=1 || photons[0].momentum().pT()>45.0*GeV) {
00054 vetoEvent;
00055 }
00056 FourMomentum leadingPhoton = photons[0].momentum();
00057 double eta_P = leadingPhoton.eta();
00058 double phi_P = leadingPhoton.phi();
00059
00060
00061 double Etsum=0.0;
00062 foreach (const Particle& p, applyProjection<VetoedFinalState>(event, "VFS").particles()) {
00063 if (PID::threeCharge(p.pdgId())!=0 &&
00064 deltaR(eta_P, phi_P, p.momentum().eta(), p.momentum().phi()) < 0.7) {
00065 Etsum += p.momentum().Et();
00066 }
00067 }
00068 if (Etsum > 2.0*GeV) {
00069 vetoEvent;
00070 }
00071
00072
00073 FourMomentum jetsum;
00074 foreach (const Jet& jet, applyProjection<FastJets>(event, "Jets").jets(10.0*GeV)) {
00075 if (fabs(jet.momentum().phi()-phi_P) > M_PI) {
00076 jetsum+=jet.momentum();
00077 }
00078 }
00079
00080 double costheta = fabs(tanh((eta_P-jetsum.eta())/2.0));
00081
00082 _h_costheta->fill(costheta, weight);
00083
00084 }
00085
00086
00087 void finalize() {
00088
00089 normalize(_h_costheta, 1.4271);
00090
00091 }
00092
00093
00094 private:
00095
00096 AIDA::IHistogram1D *_h_costheta;
00097
00098 };
00099
00100
00101
00102
00103 AnalysisBuilder<CDF_1993_S2742446> plugin_CDF_1993_S2742446;
00104
00105
00106 }