[Rivet-svn] r1857 - in trunk: . include/Rivet/Projections src/Analyses src/Projections

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Sun Oct 4 19:37:27 BST 2009


Author: buckley
Date: Sun Oct  4 19:37:26 2009
New Revision: 1857

Log:
Tweaks to UA5 analyses and trigger implementation (esp. UA5 1982, which compares pp and ppbar events, for which I think the different triggers previously implemented are actually corrected for in the paper)

Modified:
   trunk/ChangeLog
   trunk/include/Rivet/Projections/TriggerUA5.hh
   trunk/src/Analyses/UA5_1982_S875503.cc
   trunk/src/Projections/TriggerUA5.cc

Modified: trunk/ChangeLog
==============================================================================
--- trunk/ChangeLog	Sun Oct  4 18:34:58 2009	(r1856)
+++ trunk/ChangeLog	Sun Oct  4 19:37:26 2009	(r1857)
@@ -1,5 +1,10 @@
 2009-10-04  Andy Buckley  <andy at insectnation.org>
 
+	* Fixing definition of UA5 trigger to not be intrinscally
+	different for pp and ppbar: this is corrected for (although it
+	takes some readng to work this out) in the 1982 paper, which I
+	think is the only one to compare the two modes.
+
 	* Moving projection setup and registration into init() method for
 	remaining analyses.
 

Modified: trunk/include/Rivet/Projections/TriggerUA5.hh
==============================================================================
--- trunk/include/Rivet/Projections/TriggerUA5.hh	Sun Oct  4 18:34:58 2009	(r1856)
+++ trunk/include/Rivet/Projections/TriggerUA5.hh	Sun Oct  4 19:37:26 2009	(r1857)
@@ -40,7 +40,13 @@
 
     /// The trigger result for non-single diffractive (2 arm) trigger
     const bool nsdDecision() const {
-      return _decision_nsd;
+      return _decision_nsd_1;
+    }
+
+    /// The trigger result for non-single diffractive (2 arm) trigger 
+    /// with special ">= 2" trigger for ppbar bg rejection
+    const bool nsd2Decision() const {
+      return _decision_nsd_2;
     }
 
     /// The trigger result
@@ -68,7 +74,7 @@
   private:
 
     /// The min bias trigger decisions
-    bool _decision_sd, _decision_nsd;
+    bool _decision_sd, _decision_nsd_1, _decision_nsd_2;
 
     /// Is it a pp collision?
     bool _samebeams;

Modified: trunk/src/Analyses/UA5_1982_S875503.cc
==============================================================================
--- trunk/src/Analyses/UA5_1982_S875503.cc	Sun Oct  4 18:34:58 2009	(r1856)
+++ trunk/src/Analyses/UA5_1982_S875503.cc	Sun Oct  4 19:37:26 2009	(r1857)
@@ -35,29 +35,27 @@
       // Trigger
       const TriggerUA5& trigger = applyProjection<TriggerUA5>(event, "Trigger");
       if (!trigger.nsdDecision()) vetoEvent;
+
+      // Get tracks
       const double weight = event.weight(); 
-      
-      // Iterate over all tracks and fill histograms
       const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(event, "CFS");
-      foreach (const Particle& p, cfs.particles()) {
-        if (trigger.samebeams()) {
-          // PP collision
-          _hist_eta_pp->fill(fabs(p.momentum().pseudorapidity()), weight);
-        } else {
-          // PPbar collision
-          _hist_eta_ppbar->fill(fabs(p.momentum().pseudorapidity()), weight);
-        }
-      }
       
       // Fill mean charged multiplicity histos
-      if (trigger.samebeams()) {
-        // PP
-        _hist_nch_pp->fill(_hist_nch_pp->binMean(0), cfs.particles().size());
-      } else {
-        // PPbar 
-        _hist_nch_ppbar->fill(_hist_nch_ppbar->binMean(0), cfs.particles().size());
+      if (trigger.samebeams()) { // PP
+        _hist_nch_pp->fill(_hist_nch_pp->binMean(0), cfs.size());
+      } else { // PPbar 
+        _hist_nch_ppbar->fill(_hist_nch_ppbar->binMean(0), cfs.size());
       }
-      
+
+      // Iterate over all tracks and fill eta histograms
+      foreach (const Particle& p, cfs.particles()) {
+        if (trigger.samebeams()) { // PP
+          _hist_eta_pp->fill(fabs(p.momentum().eta()), weight);
+        } else { // PPbar
+          _hist_eta_ppbar->fill(fabs(p.momentum().eta()), weight);
+        }
+      }
+            
     }
     
     

Modified: trunk/src/Projections/TriggerUA5.cc
==============================================================================
--- trunk/src/Projections/TriggerUA5.cc	Sun Oct  4 18:34:58 2009	(r1856)
+++ trunk/src/Projections/TriggerUA5.cc	Sun Oct  4 19:37:26 2009	(r1857)
@@ -11,9 +11,14 @@
   void TriggerUA5::project(const Event& evt) {
     // Start with the assumption that the trigger fails
     _decision_sd = false;
-    _decision_nsd = false;
+    _decision_nsd_1 = false;
+    _decision_nsd_2 = false;
 
-    // Different trigger implementations for ppbar and pp!
+    // Triggers can be different for pp and ppbar running
+    const Beam& b = applyProjection<Beam>(evt, "Beam");
+    _samebeams = (b.beams().first.pdgId() == b.beams().second.pdgId());
+
+    // Count hodoscope hits
     const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(evt, "CFS");
     foreach (const Particle& p, cfs.particles()) {
       const double eta = p.momentum().pseudorapidity();
@@ -27,19 +32,10 @@
     _decision_sd = true;
 
     // Extra NSD trigger requirements
-    const Beam& b = applyProjection<Beam>(evt, "Beam");
-    _samebeams = (b.beams().first.pdgId() == b.beams().second.pdgId());
-    if (_samebeams) {
-      // PP
-      if (_n_minus == 0 || _n_plus == 0) return;
-    } else {
-      // PPbar
-      /// @todo Is this actually the exact trigger requirement?
-      if (_n_minus * _n_plus < 4) return;
-    }
-
-    // Trigger success:
-    _decision_nsd = true;
+    if (_n_minus == 0 || _n_plus == 0) return;
+    _decision_nsd_1 = true;    
+    if (_n_minus < 2 || _n_plus < 2) return;
+    _decision_nsd_2 = true;
   }
 
 


More information about the Rivet-svn mailing list