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

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Wed Oct 7 16:59:07 BST 2009


Author: buckley
Date: Wed Oct  7 16:59:07 2009
New Revision: 1885

Log:
Use both m_ll definitions

Modified:
   trunk/src/Analyses/ExampleTree.cc
   trunk/src/Analyses/MC_LHC_SUSY.cc

Modified: trunk/src/Analyses/ExampleTree.cc
==============================================================================
--- trunk/src/Analyses/ExampleTree.cc	Wed Oct  7 15:58:17 2009	(r1884)
+++ trunk/src/Analyses/ExampleTree.cc	Wed Oct  7 16:59:07 2009	(r1885)
@@ -61,7 +61,7 @@
         .addVetoDetail(NU_E, 10.0*GeV, 50.0*GeV)
         .addVetoPairId(NU_MU)
         .addVetoPairId(NU_TAU)
-        .addVetoId(1000022); // LSP
+        .addVetoId(1000022); // Assumes that neutralino_1 is the LSP
       addProjection(vfs, "VFS");
       addProjection(TotalVisibleMomentum(vfs), "TotalVisMom");
       

Modified: trunk/src/Analyses/MC_LHC_SUSY.cc
==============================================================================
--- trunk/src/Analyses/MC_LHC_SUSY.cc	Wed Oct  7 15:58:17 2009	(r1884)
+++ trunk/src/Analyses/MC_LHC_SUSY.cc	Wed Oct  7 16:59:07 2009	(r1885)
@@ -93,7 +93,13 @@
       _hist_mll_ossf_mumu = bookHistogram1D("mll-ossf-mumu", 50, 0.0, 500);
       _hist_mll_osof_emu  = bookHistogram1D("mll-osof-mumu", 50, 0.0, 500);
 
-      // LSP eta, pT, phi, mass
+      _hist_mll_all_ossf_ee   = bookHistogram1D("mll-all-ossf-ee", 50, 0.0, 500);
+      _hist_mll_all_ossf_mumu = bookHistogram1D("mll-all-ossf-mumu", 50, 0.0, 500);
+      _hist_mll_all_osof_emu  = bookHistogram1D("mll-all-osof-mumu", 50, 0.0, 500);
+
+      /// @todo LSP eta, pT, phi, mass: no reliable cross-scenario LSP PID but
+      /// maybe plot for all of chi^0_1, gravitino, sneutrino, gluino, ... or
+      /// identify the LSP as any PID::isSUSY (?) particle with status = 1?
     }
 
 
@@ -191,74 +197,78 @@
       const TotalVisibleMomentum& met = applyProjection<TotalVisibleMomentum>(evt, "MET");
       _hist_met->fill(met.scalarET()/GeV);
 
-      // // Choose highest-pT leptons of each sign and flavour for dilepton mass edges
-      // const FinalState& lpfs = applyProjection<FinalState>(evt, "LeadingParticles");
-      // bool eplus_ok, eminus_ok, muplus_ok, muminus_ok;
-      // FourMomentum peplus, peminus, pmuplus, pmuminus;
-      // foreach (const Particle& p, lpfs.particles()) {
-      //   const PdgId pid = p.pdgId();
-      //   if (pid == ELECTRON) {
-      //     eminus_ok = true;
-      //     peminus = p.momentum();
-      //   } else if (pid == POSITRON) {
-      //     eplus_ok = true;
-      //     peplus = p.momentum();
-      //   } else if (pid == MUON) {
-      //     muminus_ok = true;
-      //     pmuminus = p.momentum();
-      //   } else if (pid == ANTIMUON) {
-      //     muplus_ok = true;
-      //     pmuplus = p.momentum();
-      //   } else {
-      //     throw Error("Unexpected particle type in leading particles FS!");
-      //   }
-      // }
-      // // m_ee
-      // if (eminus_ok && eplus_ok) {
-      //   const double m_ee = FourMomentum(peplus + peminus).mass();
-      //   _hist_mll_ossf_ee->fill(m_ee/GeV, weight);
-      // }
-      // // m_mumu
-      // if (muminus_ok && muplus_ok) {
-      //   const double m_mumu = FourMomentum(pmuplus + pmuminus).mass();
-      //   _hist_mll_ossf_mumu->fill(m_mumu/GeV, weight);
-      // }
-      // // m_emu (both configurations)
-      // if (eminus_ok && muplus_ok) {
-      //   const double m_emu = FourMomentum(pmuplus + peminus).mass();
-      //   _hist_mll_osof_emu->fill(m_emu/GeV, weight);
-      // }
-      // if (muminus_ok && eplus_ok) {
-      //   const double m_mue = FourMomentum(peplus + pmuminus).mass();
-      //   _hist_mll_osof_emu->fill(m_mue/GeV, weight);
-      // }
+      // Choose highest-pT leptons of each sign and flavour for dilepton mass edges
+      const FinalState& lpfs = applyProjection<FinalState>(evt, "LeadingParticles");
+      bool eplus_ok(false), eminus_ok(false), muplus_ok(false), muminus_ok(false);
+      FourMomentum peplus, peminus, pmuplus, pmuminus;
+      foreach (const Particle& p, lpfs.particles()) {
+        // Only use leptons above 20 GeV
+        if (p.momentum().pT()/GeV < 20) continue;
+        // Identify the PID
+        const PdgId pid = p.pdgId();
+        if (pid == ELECTRON) {
+          eminus_ok = true;
+          peminus = p.momentum();
+        } else if (pid == POSITRON) {
+          eplus_ok = true;
+          peplus = p.momentum();
+        } else if (pid == MUON) {
+          muminus_ok = true;
+          pmuminus = p.momentum();
+        } else if (pid == ANTIMUON) {
+          muplus_ok = true;
+          pmuplus = p.momentum();
+        } else {
+          throw Error("Unexpected particle type in leading particles FS!");
+        }
+      }
+      // m_ee
+      if (eminus_ok && eplus_ok) {
+        const double m_ee = FourMomentum(peplus + peminus).mass();
+        _hist_mll_ossf_ee->fill(m_ee/GeV, weight);
+      }
+      // m_mumu
+      if (muminus_ok && muplus_ok) {
+        const double m_mumu = FourMomentum(pmuplus + pmuminus).mass();
+        _hist_mll_ossf_mumu->fill(m_mumu/GeV, weight);
+      }
+      // m_emu (both configurations)
+      if (eminus_ok && muplus_ok) {
+        const double m_emu = FourMomentum(pmuplus + peminus).mass();
+        _hist_mll_osof_emu->fill(m_emu/GeV, weight);
+      }
+      if (muminus_ok && eplus_ok) {
+        const double m_mue = FourMomentum(peplus + pmuminus).mass();
+        _hist_mll_osof_emu->fill(m_mue/GeV, weight);
+      }
 
-      // Use all electrons, positrons, muons and antimuons for m_ll plots
+
+      // m_ll plots using *all* electrons, positrons, muons and antimuons
       // m_ee
       foreach (const FourMomentum& peplus, epluses) {
         foreach (const FourMomentum& peminus, eminuses) {
           const double m_ee = FourMomentum(peplus + peminus).mass();
-          _hist_mll_ossf_ee->fill(m_ee/GeV, weight);
+          _hist_mll_all_ossf_ee->fill(m_ee/GeV, weight);
         }
       }
       // m_mumu
       foreach (const FourMomentum& pmuplus, epluses) {
         foreach (const FourMomentum& pmuminus, eminuses) {
           const double m_mumu = FourMomentum(pmuplus + pmuminus).mass();
-          _hist_mll_ossf_mumu->fill(m_mumu/GeV, weight);
+          _hist_mll_all_ossf_mumu->fill(m_mumu/GeV, weight);
         }
       }
       // m_emu (both configurations)
       foreach (const FourMomentum& pmuplus, epluses) {
         foreach (const FourMomentum& peminus, eminuses) {
           const double m_emu = FourMomentum(pmuplus + peminus).mass();
-          _hist_mll_osof_emu->fill(m_emu/GeV, weight);
+          _hist_mll_all_osof_emu->fill(m_emu/GeV, weight);
         }
       }
       foreach (const FourMomentum& peplus, epluses) {
         foreach (const FourMomentum& pmuminus, eminuses) {
           const double m_mue = FourMomentum(peplus + pmuminus).mass();
-          _hist_mll_osof_emu->fill(m_mue/GeV, weight);
+          _hist_mll_all_osof_emu->fill(m_mue/GeV, weight);
         }
       }
 
@@ -281,8 +291,8 @@
     AIDA::IHistogram1D *_hist_n_gamma, *_hist_phi_gamma, *_hist_eta_gamma, *_hist_pt_gamma;
     AIDA::IHistogram1D *_hist_n_gammaiso, *_hist_phi_gammaiso, *_hist_eta_gammaiso, *_hist_pt_gammaiso;
     AIDA::IHistogram1D *_hist_met;
-    AIDA::IHistogram1D *_hist_mll_ossf_ee, *_hist_mll_ossf_mumu, *_hist_mll_osof_emu;
-    
+    AIDA::IHistogram1D *_hist_mll_ossf_ee, *_hist_mll_ossf_mumu, *_hist_mll_osof_emu;    
+    AIDA::IHistogram1D *_hist_mll_all_ossf_ee, *_hist_mll_all_ossf_mumu, *_hist_mll_all_osof_emu;
   };
   
   


More information about the Rivet-svn mailing list