[Rivet-svn] r3836 - in schools/2012-YETI: . handouts setups setups/rivet-plugin setups/sherpa setups/sherpa/4l setups/sherpa/HZZ setups/sherpa/HZZ_MEPS setups/sherpa/HZZ_Powheg setups/sherpa/ZZ

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Tue Jul 17 15:05:19 BST 2012


Author: hoeth
Date: Tue Jul 17 15:05:19 2012
New Revision: 3836

Log:
YETI 2012

Added:
   schools/2012-YETI/
   schools/2012-YETI/handouts/
   schools/2012-YETI/handouts/VBoxStartInstructions.tex
   schools/2012-YETI/setups/
   schools/2012-YETI/setups/rivet-plugin/
   schools/2012-YETI/setups/rivet-plugin/MC_HZZ.cc
   schools/2012-YETI/setups/rivet-plugin/MC_HZZ.plot
   schools/2012-YETI/setups/rivet-plugin/Makefile
   schools/2012-YETI/setups/sherpa/
   schools/2012-YETI/setups/sherpa/4l/
   schools/2012-YETI/setups/sherpa/4l/Run.dat
   schools/2012-YETI/setups/sherpa/HZZ/
   schools/2012-YETI/setups/sherpa/HZZ/Run.dat
   schools/2012-YETI/setups/sherpa/HZZ_MEPS/
   schools/2012-YETI/setups/sherpa/HZZ_MEPS/Run.dat
   schools/2012-YETI/setups/sherpa/HZZ_Powheg/
   schools/2012-YETI/setups/sherpa/HZZ_Powheg/Run.dat
   schools/2012-YETI/setups/sherpa/ZZ/
   schools/2012-YETI/setups/sherpa/ZZ/Run.dat

Added: schools/2012-YETI/handouts/VBoxStartInstructions.tex
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ schools/2012-YETI/handouts/VBoxStartInstructions.tex	Tue Jul 17 15:05:19 2012	(r3836)
@@ -0,0 +1,22 @@
+\documentclass[a4paper,12pt]{article}
+\usepackage{mathpazo}
+\pagestyle{empty}
+
+\begin{document}
+\begin{itemize}
+  \item Unzip the disk image (3 GB needed!)
+  \item Start VirtualBox, click ``New'' \\
+        Name: MCTutorials             \\
+        OS Type: Linux - Ubuntu
+  \item Memory: $\ge$ 1024 MB
+  \item Virtual Hard Disk: Use existing hard disk \\
+        Click folder symbol, choose the disk image ``MCnetTutorial.vdi''
+  \item Check the summary, then ``Create''
+  \item In the ``VirtualBox Manager'', select ``MCTutorials'' and click 
+        ``Start'' in the top row.
+  \item Once the machine is up, run LXkeymap to choose your 
+        keyboard layout.
+  \item The setups and instructions for the individual tutorials will
+        be distributed at the school.
+\end{itemize}
+\end{document}

Added: schools/2012-YETI/setups/rivet-plugin/MC_HZZ.cc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ schools/2012-YETI/setups/rivet-plugin/MC_HZZ.cc	Tue Jul 17 15:05:19 2012	(r3836)
@@ -0,0 +1,201 @@
+// -*- C++ -*-
+#include "Rivet/Analysis.hh"
+#include "Rivet/RivetAIDA.hh"
+#include "Rivet/Tools/Logging.hh"
+#include "Rivet/Projections/FinalState.hh"
+#include "Rivet/Projections/IdentifiedFinalState.hh"
+#include "Rivet/Projections/ChargedFinalState.hh"
+#include "Rivet/Projections/FinalState.hh"
+#include "Rivet/Projections/FastJets.hh"
+
+namespace Rivet {
+
+
+  class MC_HZZ : public Analysis {
+  public:
+
+
+    /// Constructor
+    MC_HZZ() : Analysis("MC_HZZ")
+    { }
+
+
+  public:
+
+
+    /// Book histograms and initialise projections before the run
+    void init() {
+      // Select electrons and muons within |eta| < 2.5 and pT > 5 GeV
+      IdentifiedFinalState Leptons(-2.5, 2.5, 5.0*GeV);
+      Leptons.acceptIdPair(ELECTRON);
+      Leptons.acceptIdPair(MUON);
+      addProjection(Leptons,"leptons");
+
+      // All charged particles within |eta| < 2.5 and pT > 50 MeV
+      ChargedFinalState CFS(-2.5, 2.5, 0.05*GeV);
+      addProjection(CFS,"tracks");
+
+      // All charged and neutral particles, |eta| < 2.5
+      FinalState FS(-2.5, 2.5, 0.0*GeV);
+      addProjection(FS,"calo");
+
+      // Jet reconstruction, based on particles within |eta| < 3.0
+      // We actually should exclude the leptons here, but we don't.
+      addProjection(FastJets(FinalState(-3.0, 3.0, 0.0*GeV), FastJets::ANTIKT, 0.5), "AntiKtJets05");
+
+      // Book histograms
+      _h_cuts   = bookHistogram1D("cuts", 4, 0.5, 4.5);
+      _h_mZ1    = bookHistogram1D("m_Z1", 50, 0, 150);
+      _h_mZ2    = bookHistogram1D("m_Z2", 50, 0, 150);
+      _h_mH     = bookHistogram1D("m_H",  50, 50, 250);
+      _h_pTH    = bookHistogram1D("pT_H", 50, 0, 150);
+      _h_yH     = bookHistogram1D("y_H",  60, -15, 15);
+      _h_dphiZZ = bookHistogram1D("dphi_ZZ", 50, 0, M_PI);
+      _h_njets  = bookHistogram1D("njets", 9, -0.5, 8.5);
+      _h_pTj1   = bookHistogram1D("pT_j1", 70, 0, 350);
+    }
+
+
+    /// Perform the per-event analysis
+    void analyze(const Event& event) {
+      // Get the event weight from the generator
+      const double weight = event.weight();
+
+      // Cut flow, before all cuts
+      _h_cuts->fill(1, weight);
+
+      // Get leptons, sorted by pT
+      const ParticleVector leptons = applyProjection<IdentifiedFinalState>(event, "leptons").particlesByPt();
+
+      // Require exactly four leptons with pT[0] >= 20 GeV, pT[1] >= 10 GeV
+      if (leptons.size() != 4 ||
+          leptons[0].momentum().pT() < 20.*GeV ||
+          leptons[1].momentum().pT() < 10.*GeV) {
+        vetoEvent;
+      }
+
+      _h_cuts->fill(2, weight);
+
+      // Get all charged and neutral particles, needed for lepton isolation cut
+      const ParticleVector tracks = applyProjection<ChargedFinalState>(event, "tracks").particles();
+      const ParticleVector calo = applyProjection<FinalState>(event, "calo").particles();
+
+      // Lepton isolation:
+      // sumpT + sumE of tracks and charged+neutral particles within a cone of 0.3 around the
+      // lepton needs to be less than 15% of the lepton pT
+      foreach (Particle l, leptons) {
+        FourMomentum testmom = l.momentum();
+        double cutoff = 0.15*testmom.pT();
+        double sum(-2*testmom.pT()); // We don't want to count the lepton itself in the sum
+        foreach (Particle p, tracks+calo) {
+          FourMomentum mom = p.momentum();
+          if (deltaR(testmom, mom)<0.3) {
+            sum += mom.pT();
+            if (sum > cutoff) {
+              vetoEvent;  // If any lepton fails the cut, veto the event
+            }
+          }
+        }
+      }
+
+      _h_cuts->fill(3, weight);
+      
+      // Now we look at all combinations of the leptons to reconstruct the Z bosons
+      int combinations[3][4] = {{0, 1, 2, 3}, {0, 2, 1, 3}, {0, 3, 1, 2}};
+      FourMomentum Z1(0., 0., 0., 0.);
+      FourMomentum Z2(0., 0., 0., 0.);
+      bool success = false;
+      for (int c=0; c<3; c++) {
+        Particle l1, l2, l3, l4;
+        l1 = leptons[combinations[c][0]];
+        l2 = leptons[combinations[c][1]];
+        l3 = leptons[combinations[c][2]];
+        l4 = leptons[combinations[c][3]];
+
+        // Only combine leptons with matching flavour
+        if (l1.pdgId() != -l2.pdgId()) continue;
+        if (l3.pdgId() != -l4.pdgId()) continue;
+
+        FourMomentum ll1, ll2;
+        ll1 = l1.momentum() + l2.momentum();
+        ll2 = l3.momentum() + l4.momentum();
+
+        // We cut on the mass difference between m_ll and the Z-mass.
+        // dm1 will be the smaller difference, dm2 the larger one.
+        double dm1, dm2;
+        dm1 = 90 - ll1.mass()/GeV;
+        dm2 = 90 - ll2.mass()/GeV;
+        if (fabs(dm1) > fabs(dm2)) {
+          double foo = dm1; dm1 = dm2; dm2 = foo;
+          FourMomentum bar = ll1; ll1 = ll2; ll2 = bar;
+        }
+
+        // Apply the Z mass cut:
+        // Z1 within 50-110 GeV
+        // Z2 within 20-120 GeV
+        if (fabs(dm1) < fabs(90 - Z1.mass()/GeV)) {
+          if (dm1 < 40 && dm1 > -20 &&
+              dm2 < 70 && dm2 > -30 ) {
+            success = true;
+            Z1 = ll1;
+            Z2 = ll2;
+          }
+        }
+      }
+      if (!success) {
+        vetoEvent;
+      }
+
+      _h_cuts->fill(4, weight);
+
+
+      // Reconstruct jets above 30 GeV.
+      const Jets jets = applyProjection<FastJets>(event, "AntiKtJets05").jetsByPt(30.*GeV);
+
+      // Fill the histograms
+      _h_mZ1->fill(Z1.mass(), weight);
+      _h_mZ2->fill(Z2.mass(), weight);
+      _h_mH->fill((Z1+Z2).mass(), weight);
+      _h_pTH->fill((Z1+Z2).pT(), weight);
+      _h_yH->fill((Z1+Z2).y(), weight);
+      _h_dphiZZ->fill(deltaPhi(Z1, Z2), weight);
+      _h_njets->fill(jets.size(), weight);
+      if (jets.size() > 0) {
+        _h_pTj1->fill(jets[0].momentum().pT(), weight);
+      }
+
+    }
+
+
+    /// Normalise histograms etc., after the run
+    void finalize() {
+      scale(_h_cuts,   1./sumOfWeights());
+      scale(_h_mZ1,    1./sumOfWeights());
+      scale(_h_mZ2,    1./sumOfWeights());
+      scale(_h_mH,     1./sumOfWeights());
+      scale(_h_pTH,    1./sumOfWeights());
+      scale(_h_yH,     1./sumOfWeights());
+      scale(_h_dphiZZ, 1./sumOfWeights());
+      scale(_h_njets,  1./sumOfWeights());
+      scale(_h_pTj1,   1./sumOfWeights());
+    }
+
+
+  private:
+
+    AIDA::IHistogram1D *_h_cuts;
+    AIDA::IHistogram1D *_h_mZ1;
+    AIDA::IHistogram1D *_h_mZ2;
+    AIDA::IHistogram1D *_h_mH;
+    AIDA::IHistogram1D *_h_pTH;
+    AIDA::IHistogram1D *_h_yH;
+    AIDA::IHistogram1D *_h_dphiZZ;
+    AIDA::IHistogram1D *_h_njets;
+    AIDA::IHistogram1D *_h_pTj1;
+
+  };
+
+
+  // The hook for the plugin system
+  DECLARE_RIVET_PLUGIN(MC_HZZ);
+}

Added: schools/2012-YETI/setups/rivet-plugin/MC_HZZ.plot
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ schools/2012-YETI/setups/rivet-plugin/MC_HZZ.plot	Tue Jul 17 15:05:19 2012	(r3836)
@@ -0,0 +1,43 @@
+# BEGIN PLOT /MC_HZZ/
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /MC_HZZ/cuts
+Title=cut flow
+XLabel=cut no.
+LogY=0
+XMinorTickMarks=0
+XMajorTickMarks=10
+# END PLOT
+
+# BEGIN PLOT /MC_HZZ/njets
+XLabel=njets
+LogY=0
+XMinorTickMarks=0
+XMajorTickMarks=10
+# END PLOT
+
+# BEGIN PLOT /MC_HZZ/m_Z
+XLabel=$m(ll)$ [GeV]
+# END PLOT
+
+# BEGIN PLOT /MC_HZZ/m_H
+XLabel=$m(4l)$ [GeV]
+# END PLOT
+
+# BEGIN PLOT /MC_HZZ/y_H
+XLabel=$y(4l)$
+# END PLOT
+
+# BEGIN PLOT /MC_HZZ/pT_H
+XLabel=$pT(4l)$ [GeV]
+# END PLOT
+
+# BEGIN PLOT /MC_HZZ/pT_j1
+XLabel=$pT(\text{leading jet})$ [GeV]
+# END PLOT
+
+# BEGIN PLOT /MC_HZZ/dphi_ZZ
+XLabel=$\Delta \phi(ll,ll)$
+# END PLOT
+

Added: schools/2012-YETI/setups/rivet-plugin/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ schools/2012-YETI/setups/rivet-plugin/Makefile	Tue Jul 17 15:05:19 2012	(r3836)
@@ -0,0 +1,5 @@
+Rivet_MC_HZZ.so : MC_HZZ.cc
+	rivet-buildplugin $@ $^
+
+clean:
+	rm -f Rivet_MC_HZZ.so

Added: schools/2012-YETI/setups/sherpa/4l/Run.dat
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ schools/2012-YETI/setups/sherpa/4l/Run.dat	Tue Jul 17 15:05:19 2012	(r3836)
@@ -0,0 +1,44 @@
+(run){
+  EVENTS 10000;
+  OUTPUT 2;
+  ACTIVE[15]=0;
+  ACTIVE[25]=0;
+
+  ANALYSIS=Rivet
+  ANALYSIS_OUTPUT=4l
+}(run);
+
+(beam){
+  BEAM_1  2212; BEAM_ENERGY_1 3500;
+  BEAM_2  2212; BEAM_ENERGY_2 3500;
+}(beam);
+
+(processes){
+  Process 93 93 -> 90 90 90 90;
+  Order_EW 4;
+  Integration_Error 0.03 {4}
+  End process;
+}(processes);
+
+(selector){
+  PT 90 5.0 E_CMS
+  PseudoRapidity 90 -2.6 2.6
+  Mass 90 90 18. E_CMS
+}(selector)
+
+(me){
+  ME_SIGNAL_GENERATOR Comix Internal;
+  EVENT_GENERATION_MODE Weighted;
+  ME_QED = On           # On or Off
+}(me);
+
+(mi){
+  MI_HANDLER = None     # None or Amisic
+}(mi)
+
+(analysis){
+  BEGIN_RIVET {
+    -a MC_HZZ
+  } END_RIVET
+}(analysis)
+

Added: schools/2012-YETI/setups/sherpa/HZZ/Run.dat
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ schools/2012-YETI/setups/sherpa/HZZ/Run.dat	Tue Jul 17 15:05:19 2012	(r3836)
@@ -0,0 +1,50 @@
+(run){
+  EVENTS 10000;
+  OUTPUT 2;
+  ACTIVE[15]=0;
+  MASS[25]=125.
+  YUKAWA_B=0.;
+
+  ANALYSIS=Rivet
+  ANALYSIS_OUTPUT=HZZ
+}(run);
+
+(beam){
+  BEAM_1  2212; BEAM_ENERGY_1 3500;
+  BEAM_2  2212; BEAM_ENERGY_2 3500;
+}(beam);
+
+(model){
+  MODEL=SM+EHC;
+}(model);
+
+(processes){
+  Process 93 93 -> 25[a];
+    Decay  25[a] -> 90 90 90 90;
+  Order_EW 1;
+  End process;
+}(processes);
+
+(selector){
+  "Calc(Mass(p[0]+p[1]+p[2]+p[3]))" 90,90,90,90 10.,E_CMS [PT_UP,PT_UP,PT_UP,PT_UP]
+  PT 90 5.0 E_CMS
+  PseudoRapidity 90 -2.6 2.6
+}(selector)
+
+(me){
+  ME_SIGNAL_GENERATOR Amegic Internal;
+  EVENT_GENERATION_MODE Weighted;
+  SCALES VAR{MPerp2(p[2]+p[3]+p[4]+p[5])};
+  ME_QED = On           # On or Off
+}(me);
+
+(mi){
+  MI_HANDLER = None     # None or Amisic
+}(mi)
+
+(analysis){
+  BEGIN_RIVET {
+    -a MC_HZZ
+  } END_RIVET
+}(analysis)
+

Added: schools/2012-YETI/setups/sherpa/HZZ_MEPS/Run.dat
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ schools/2012-YETI/setups/sherpa/HZZ_MEPS/Run.dat	Tue Jul 17 15:05:19 2012	(r3836)
@@ -0,0 +1,53 @@
+(run){
+  EVENTS 10000;
+  OUTPUT 2;
+  ACTIVE[15]=0;
+  MASS[25]=125.
+  YUKAWA_B=0.;
+
+  NJET:=1;
+
+  ANALYSIS=Rivet
+  ANALYSIS_OUTPUT=HZZ_MEPS.NJET
+}(run);
+
+(beam){
+  BEAM_1  2212; BEAM_ENERGY_1 3500;
+  BEAM_2  2212; BEAM_ENERGY_2 3500;
+}(beam);
+
+(model){
+  MODEL=SM+EHC;
+}(model);
+
+(processes){
+  Process 93 93 -> 25[a] 93{NJET};
+    Decay  25[a] -> 90 90 90 90;
+  Order_EW 1;
+  CKKW sqr(20/E_CMS);
+  End process;
+}(processes);
+
+(selector){
+  "Calc(Mass(p[0]+p[1]+p[2]+p[3]))" 90,90,90,90 10.,E_CMS [PT_UP,PT_UP,PT_UP,PT_UP]
+  PT 90 5.0 E_CMS
+  PseudoRapidity 90 -2.6 2.6
+}(selector)
+
+(me){
+  ME_SIGNAL_GENERATOR Amegic Internal;
+  EVENT_GENERATION_MODE Weighted;
+  SCALES VAR{MPerp2(p[2]+p[3]+p[4]+p[5])};
+  ME_QED = On           # On or Off
+}(me);
+
+(mi){
+  MI_HANDLER = None     # None or Amisic
+}(mi)
+
+(analysis){
+  BEGIN_RIVET {
+    -a MC_HZZ
+  } END_RIVET
+}(analysis)
+

Added: schools/2012-YETI/setups/sherpa/HZZ_Powheg/Run.dat
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ schools/2012-YETI/setups/sherpa/HZZ_Powheg/Run.dat	Tue Jul 17 15:05:19 2012	(r3836)
@@ -0,0 +1,54 @@
+(run){
+  EVENTS 10000;
+  OUTPUT 2;
+  ACTIVE[15]=0;
+  MASS[25]=125.
+  YUKAWA_B=0.;
+
+  ANALYSIS=Rivet
+  ANALYSIS_OUTPUT=HZZ_Powheg
+}(run);
+
+(beam){
+  BEAM_1  2212; BEAM_ENERGY_1 3500;
+  BEAM_2  2212; BEAM_ENERGY_2 3500;
+}(beam);
+
+(model){
+  MODEL=SM+EHC;
+}(model);
+
+(processes){
+  Process 93 93 -> 25[a]
+    Decay  25[a] -> 90 90 90 90;
+  NLO_QCD_Part BVIRS;
+  Loop_Generator Internal;
+  Print_Graphs 1;
+  Order_EW 1;
+  End process;
+}(processes);
+
+(selector){
+  "Calc(Mass(p[0]+p[1]+p[2]+p[3]))" 90,90,90,90 10.,E_CMS [PT_UP,PT_UP,PT_UP,PT_UP]
+  PTNLO 90 5.0 E_CMS
+  PseudoRapidityNLO 90 -2.6 2.6
+}(selector)
+
+(me){
+  ME_SIGNAL_GENERATOR Amegic Internal;
+  EVENT_GENERATION_MODE Weighted;
+  NLO_Mode 2;
+  SCALES VAR{MPerp2(p[2]+p[3]+p[4]+p[5])};
+  ME_QED = On           # On or Off
+}(me);
+
+(mi){
+  MI_HANDLER = None     # None or Amisic
+}(mi)
+
+(analysis){
+  BEGIN_RIVET {
+    -a MC_HZZ
+  } END_RIVET
+}(analysis)
+

Added: schools/2012-YETI/setups/sherpa/ZZ/Run.dat
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ schools/2012-YETI/setups/sherpa/ZZ/Run.dat	Tue Jul 17 15:05:19 2012	(r3836)
@@ -0,0 +1,47 @@
+(run){
+  EVENTS 10000;
+  OUTPUT 2;
+  ACTIVE[15]=0;
+  ACTIVE[25]=0;
+
+  NJET:=1;
+
+  ANALYSIS=Rivet
+  ANALYSIS_OUTPUT=ZZ.NJET
+}(run);
+
+(beam){
+  BEAM_1  2212; BEAM_ENERGY_1 3500;
+  BEAM_2  2212; BEAM_ENERGY_2 3500;
+}(beam);
+
+(processes){
+  Process 93 93 -> 23[a] 23[b] 93{NJET};
+    Decay 23[a] -> 90 90;
+    Decay 23[b] -> 90 90;
+  Order_EW 2;
+  CKKW sqr(20/E_CMS);
+  End process;
+}(processes);
+
+(selector){
+  Mass 90 90 18. E_CMS
+}(selector)
+
+(me){
+  ME_SIGNAL_GENERATOR Amegic Internal;
+  EVENT_GENERATION_MODE Weighted;
+  SCALES VAR{Abs2(p[0]+p[1])};
+  ME_QED = On           # On or Off
+}(me);
+
+(mi){
+  MI_HANDLER = None     # None or Amisic
+}(mi)
+
+(analysis){
+  BEGIN_RIVET {
+    -a MC_HZZ
+  } END_RIVET
+}(analysis)
+


More information about the Rivet-svn mailing list