[Rivet-svn] r2922 - trunk/src/Analyses

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Thu 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