|
[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/ZZblackhole at projects.hepforge.org blackhole at projects.hepforge.orgTue 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 |