|
[Rivet-svn] r1857 - in trunk: . include/Rivet/Projections src/Analyses src/Projectionsblackhole at projects.hepforge.org blackhole at projects.hepforge.orgSun 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 |