rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ATLAS_2012_I946427

Search for supersymmetry with diphotons and missing transverse momentum
Experiment: ATLAS (LHC)
Inspire ID: 946427
Status: OBSOLETE
Authors:
  • Peter Richardson
References:
  • arXiv: 1111.4116
  • Phys. Lett. B710 (2012) 519-537
Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
  • BSM signal events at 7000 GeV.

Search for diphoton events with large missing transverse momentum with integrated luminosity 1.07$\text{fb}^{-1}$ at $\sqrt{s}=7$. No excess of events was observed.

Source code: ATLAS_2012_I946427.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/FinalState.hh"
  4#include "Rivet/Projections/ChargedFinalState.hh"
  5#include "Rivet/Projections/VisibleFinalState.hh"
  6#include "Rivet/Projections/VetoedFinalState.hh"
  7#include "Rivet/Projections/IdentifiedFinalState.hh"
  8#include "Rivet/Projections/FastJets.hh"
  9
 10namespace Rivet {
 11
 12
 13  /// @author Peter Richardson
 14  class ATLAS_2012_I946427 : public Analysis {
 15  public:
 16
 17    /// @name Constructors etc.
 18    //@{
 19
 20    /// Constructor
 21    ATLAS_2012_I946427()
 22      : Analysis("ATLAS_2012_I946427")
 23    {    }
 24
 25    //@}
 26
 27
 28  public:
 29
 30    /// @name Analysis methods
 31    //@{
 32
 33    /// Book histograms and initialise projections before the run
 34    void init() {
 35
 36      // photons
 37      IdentifiedFinalState photonfs(Cuts::abseta < 1.81 && Cuts::pT > 25*GeV);
 38      photonfs.acceptId(PID::PHOTON);
 39      declare(photonfs, "Photon");
 40
 41      //
 42      FinalState fs;
 43      declare(fs, "FS");
 44
 45      // Used for pTmiss
 46      declare(VisibleFinalState(Cuts::abseta < 4.9),"vfs");
 47
 48      // Book histograms
 49      book(_count_SR ,"count_SR", 1, 0., 1.);
 50
 51      book(_hist_ET_photon ,"hist_ET_photon", 48 , 20., 500.);
 52      book(_hist_met       ,"hist_met"      , 100,  0., 500.);
 53
 54    }
 55
 56
 57    /// Perform the per-event analysis
 58    void analyze(const Event& event) {
 59
 60      const double weight = 1.0;
 61
 62      // require at least 2 photons in final state
 63      Particles photons =
 64        apply<IdentifiedFinalState>(event, "Photon").particlesByPt();
 65      if (photons.size() < 2) {
 66        vetoEvent;
 67      }
 68
 69      // Loop over photons and fill vector of isolated ones
 70      Particles fs = apply<FinalState>(event, "FS").particles();
 71      Particles isolated_photons;
 72      for (const Particle& photon : photons) {
 73        // remove photons in crack
 74        double eta_P = photon.eta();
 75        if (fabs(eta_P)>=1.37 && fabs(eta_P)<1.52) continue;
 76
 77        double phi_P = photon.phi();
 78
 79        FourMomentum mom_in_EtCone = -photon.momentum();
 80        for (const Particle& p : fs) {
 81          // check if it's in the cone of .2
 82          if (deltaR(eta_P, phi_P, p.eta(),
 83                     p.phi()) >= 0.2) continue;
 84          mom_in_EtCone += p.momentum();
 85        }
 86        // apply isolation
 87        if(mom_in_EtCone.Et()>5.) continue;
 88
 89        // add photon to list of isolated ones
 90        isolated_photons.push_back(photon);
 91      }
 92
 93      // need two isolated photons
 94      if(isolated_photons.size() < 2 ) {
 95        vetoEvent;
 96      }
 97
 98      // pTmiss
 99      Particles vfs_particles =
100        apply<VisibleFinalState>(event, "vfs").particles();
101      FourMomentum pTmiss;
102      for ( const Particle & p : vfs_particles ) {
103        pTmiss -= p.momentum();
104      }
105      double eTmiss = pTmiss.pT();
106
107      _hist_ET_photon->fill(isolated_photons[0].Et(),weight);
108      _hist_met      ->fill(eTmiss                             ,weight);
109
110      if(eTmiss>125.) _count_SR->fill(0.5,weight);
111    }
112
113
114    void finalize() {
115
116      double norm = crossSection()/femtobarn*1.07/sumOfWeights();
117      // these are number of events at 1.07fb^-1 per 10 GeV
118      scale( _hist_ET_photon, 10. * norm );
119      // these are number of events at 1.07fb^-1 per  5 GeV
120      scale( _hist_met, 5. * norm );
121      // these are number of events at 1.07fb^-1
122      scale(_count_SR,norm);
123    }
124
125    //@}
126
127
128  private:
129
130    Histo1DPtr _count_SR;
131    Histo1DPtr _hist_ET_photon;
132    Histo1DPtr _hist_met;
133
134  };
135
136
137  // This global object acts as a hook for the plugin system
138  RIVET_DECLARE_PLUGIN(ATLAS_2012_I946427);
139
140}