|
[Rivet-svn] r2922 - trunk/src/Analysesblackhole at projects.hepforge.org blackhole at projects.hepforge.orgThu Feb 10 13:12:34 GMT 2011
Author: fsiegert Date: Thu Feb 10 13:12:34 2011 New Revision: 2922 Log: Corrections in two more Z+jets analyses: - Make D0_2008_S6879055 use the ZFinder, remove cuts on leptons (analysis has been corrected to 4pi) - CDF_2009_S8383952: Add dR=0.2 to mimic the correction to the Z propagator. Have validated them again, no big difference in CDF_2009, some differences in D0_2008, but should be more correct now. Modified: trunk/src/Analyses/CDF_2009_S8383952.cc trunk/src/Analyses/D0_2008_S6879055.cc Modified: trunk/src/Analyses/CDF_2009_S8383952.cc ============================================================================== --- trunk/src/Analyses/CDF_2009_S8383952.cc Thu Feb 10 08:38:43 2011 (r2921) +++ trunk/src/Analyses/CDF_2009_S8383952.cc Thu Feb 10 13:12:34 2011 (r2922) @@ -38,7 +38,7 @@ // this seems to have been corrected completely for all selection cuts, // i.e. eta cuts and pT cuts on leptons. ZFinder zfinder(-MAXRAPIDITY, MAXRAPIDITY, 0.0*GeV, ELECTRON, - 66.0*GeV, 116.0*GeV, 0.0, false, false); + 66.0*GeV, 116.0*GeV, 0.2, true, true); addProjection(zfinder, "ZFinder"); Modified: trunk/src/Analyses/D0_2008_S6879055.cc ============================================================================== --- trunk/src/Analyses/D0_2008_S6879055.cc Thu Feb 10 08:38:43 2011 (r2921) +++ trunk/src/Analyses/D0_2008_S6879055.cc Thu Feb 10 13:12:34 2011 (r2922) @@ -2,10 +2,7 @@ #include "Rivet/Analysis.hh" #include "Rivet/RivetAIDA.hh" #include "Rivet/Tools/Logging.hh" -#include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/LeadingParticlesFinalState.hh" -#include "Rivet/Projections/InvMassFinalState.hh" -#include "Rivet/Projections/VetoedFinalState.hh" +#include "Rivet/Projections/ZFinder.hh" #include "Rivet/Projections/FastJets.hh" namespace Rivet { @@ -27,30 +24,12 @@ // Book histograms void init() { - // Basic final state - FinalState fs(-5.0, 5.0); - addProjection(fs, "FS"); - - // Leading electrons in tracking acceptance - LeadingParticlesFinalState lpfs(FinalState(-1.1, 1.1, 25*GeV)); - lpfs.addParticleId(ELECTRON).addParticleId(POSITRON); - addProjection(lpfs, "LeadingElectronsFS"); - - // Invariant mass selection around Z pole - InvMassFinalState electronsFromZ(lpfs, make_pair(ELECTRON, POSITRON), 75*GeV, 105*GeV); - addProjection(electronsFromZ,"ElectronsFromZ"); - - // Vetoed FS for jets - VetoedFinalState vfs(fs); - // Add particle/antiparticle vetoing - vfs.vetoNeutrinos(); - // Veto the electrons from Z decay - vfs.addVetoOnThisFinalState(electronsFromZ); - addProjection(vfs, "JetFS"); - - // Jet finder - FastJets jets(vfs, FastJets::D0ILCONE, 0.5); - addProjection(jets, "Jets"); + ZFinder zfinder(-MAXRAPIDITY, MAXRAPIDITY, 0.0*GeV, ELECTRON, + 40.0*GeV, 200.0*GeV, 0.2, true, true); + addProjection(zfinder, "ZFinder"); + + FastJets conefinder(zfinder.remainingFinalState(), FastJets::D0ILCONE, 0.5); + addProjection(conefinder, "ConeFinder"); _crossSectionRatio = bookHistogram1D(1, 1, 1); _pTjet1 = bookHistogram1D(2, 1, 1); @@ -62,43 +41,33 @@ /// Do the analysis void analyze(const Event& event) { - // Skip if the event is empty - const FinalState& fs = applyProjection<FinalState>(event, "FS"); - if (fs.empty()) vetoEvent; const double weight = event.weight(); - // Find the Z candidates - const InvMassFinalState& invmassfs = applyProjection<InvMassFinalState>(event, "ElectronsFromZ"); - // If there is no Z candidate in the FinalState, skip the event - if (invmassfs.particles().size() != 2) { - getLog() << Log::DEBUG << "No Z candidate found" << endl; + + + const ZFinder& zfinder = applyProjection<ZFinder>(event, "ZFinder"); + if (zfinder.particles().size()!=1) { vetoEvent; } - // Now build the list of jets on a FS without the electrons from Z - // Additional cuts on jets: |eta| < 2.5 and dR(j,leading electron) > 0.4 - const JetAlg& jetpro = applyProjection<JetAlg>(event, "Jets"); - const Jets jets = jetpro.jetsByPt(20.0*GeV); + FourMomentum e0 = zfinder.constituentsFinalState().particles()[0].momentum(); + FourMomentum e1 = zfinder.constituentsFinalState().particles()[1].momentum(); + const double e0eta = e0.eta(); + const double e0phi = e0.phi(); + const double e1eta = e1.eta(); + const double e1phi = e1.phi(); + vector<FourMomentum> finaljet_list; - foreach (const Jet& j, jets) { + foreach (const Jet& j, applyProjection<JetAlg>(event, "ConeFinder").jetsByPt(20.0*GeV)) { const double jeta = j.momentum().eta(); const double jphi = j.momentum().phi(); - if (fabs(jeta) > 2.5) continue; - - FourMomentum e0 = invmassfs.particles()[0].momentum(); - FourMomentum e1 = invmassfs.particles()[1].momentum(); - const double e0eta = e0.pseudorapidity(); - const double e0phi = e0.azimuthalAngle(); - if (deltaR(e0eta, e0phi, jeta, jphi) < 0.4) continue; - - const double e1eta = e1.pseudorapidity(); - const double e1phi = e1.azimuthalAngle(); - if (deltaR(e1eta, e1phi, jeta, jphi) < 0.4) continue; - - // If we pass all cuts... - finaljet_list.push_back(j.momentum()); + if (fabs(jeta) < 2.5) { + if (deltaR(e0eta, e0phi, jeta, jphi) > 0.4 && + deltaR(e1eta, e1phi, jeta, jphi) > 0.4) { + finaljet_list.push_back(j.momentum()); + } + } } - getLog() << Log::DEBUG << "Num jets passing = " << finaljet_list.size() << endl; // For normalisation of crossSection data (includes events with no jets passing cuts) _crossSectionRatio->fill(0, weight);
More information about the Rivet-svn mailing list |