Search for High-Mass Diphoton Resonances - Analysis Page


  • Conor Henderson, Toyoko Orimoto (CERN)
  • Yousi Ma (Caltech)
  • Sean Simon (UCSD)

CADI Entry EXO-10-019


Analysis Note AN-10-405 & PAS EXO-10-019

Tag Date Comments
toyoko_061210 06 Dec 2010 Version 1

Instructions for checking out note:

To make a tag:

  •  svn copy svn+ssh:// svn+ssh:// 

Recent Presentations

Earlier Results

Based on the earlier MC approved analysis EXO-09-009, our expected sensitivity after scaling to 7 TeV is shown here:


Previous publications from the Tevatron experiments on this topic:

Analysis Code

The base directory for our analysis code package is:

A simple filter to preselect events with at least two reco::Photons (with configurable pt cuts) is in: DiPhotonFilter/

The analysis code for running on data is in: ExoDiPhotonAnalyzer/. Likewise, the code for running on signal MC and background MC are in ExoDiPhotonSignalMCAnalyzer and ExoDiPhotonBkgAnalyzer, respectively. Common header classes are defined in CommonClasses.

The idea is that, for our current relatively small datasets, we basically would like to go directly from RECO to histograms. The output of the analyser is just a basic tree, with information on the two highest-pT reconstructed photons which pass our tight photon ID and spike-removal cuts. The final histograms are then filled directly from these trees.


Tag Date Comments
Data_38X_v4 14 Jan 2011 New implementation of fake handling (only different for events with more than two tight/fakeable objects)
MC_36X_V4 29 Nov 2010 Should be same as Data_38X_v3, but labeled for MC processing (Toyoko)
Data_38X_v3 29 Nov 2010 For study of vertex effect on Mgg, add some branches to our output ntuple
Data_38X_V2 22 Nov 2010 CommonClasses and ExoDiPhotonAnalyser for main reprocessing - many additions
toyoko_181110 18 Nov 2010 "Unofficial" tag before adding changes for reprocessing in 38X
MC_36X_V3 08 Nov 2010 Included GEN level info for filtering out double-counted particles
MC_36X_V2 30 Sep 2010 Updated to latest Photon ID (Conor) and photon trigger paths (Toyoko)
Data_36X_V1 10 Sept 2010 Corresponding to first main data processing using this ntuple format
MC_35X_V1 Aug 2010 The contents of CommonClasses and ExoDiPhotonBkgAnalyzer corresponding to first round of background trees.

Event and Photon Selection

Event Selection

For basic event selection, we use the standard 'Good Vertex' and 'No Scraping' filters, as detailed in the Collisions 2010 twiki and links within (Note that we use a data vtx z-range of +-24cm, following a Physics Operations email of 5 August 2010)

More details can be found below at:

Kinematic Requirements

  • Photons pT > 30 GeV
  • Photon |eta| < 2.5
  • Photon |eta| < 1.4442 && Photon |eta| < 1.566 (excluding EB-EE gap)

Photon ID

For Photon ID, we use the recommended E-Gamma Tight ID selection:

  • Had/EM < 0.05
  • ecal Iso (cone 0.4) < 4.2 + 0.006*pt
  • hcal Iso (cone 0.4) < 2.2 + 0.0025*pt
  • track Iso (cone of 0.4) < 2.0 + 0.001*pt
  • sigma ieta ieta < 0.013 (EB), < 0.030 (EE)
  • require No Pixel Seed

Spike cleaning procedure:

Spikes are automatically cleaned in the 38X series and beyond.

Scripts for CRAB jobs

We've written some scripts to ease launching many jobs (for instance, many MC samples) to the GRID. They have been committed to DiPhotonAnalysis/ExoDiPhotonBkgAnalyzer/test/. They are currently set up to run on /*/Spring10-START3X_V26_S09-v1/GEN-SIM-RECO MC, but can easily be adapted to run on other samples.

All of the scripts can be used like this:

 ./ DiPhotonBox_Pt250toInf Given a sample name as above, will create a subdirectory of the same name and will submit jobs to GRID via CRAB. Will simply execute "crab -status" for the sample given. Similar to, but will check for number of jobs in "submitted", "scheduled", "running", "done" states. Once all jobs are DONE, will retrieve output with "crab -get" Merges root output and log files, and then copies them to castor, in: /castor/

Code/Scripts for Making Histograms

We've also written some ROOT code and scripts for making plots. They have been committed to DiPhotonAnalysis/ExoDiPhotonBkgAnalyzer/test/plots/. They run on the files stored in /castor/

fTree.h, fTree.C: Simple ROOT class (adapted from the output of MakeClass from the diphoton TTree) which applies pT cut on the two photons and produces basic histograms (trigger, kinematics, isolation, spike rejection, etc). To compile, simply run in ROOT:

 .L fTree.C++; 

fTreeData.h, fTreeData.C: Same as fTree but with MC blocks commented out to run on Data.

make_diphoton_plots.C: Macro which uses fTree to run over ntuples and draw histograms. Script which runs the above macro (make_diphoton_plots.C) and creates nice webpages. Can be edited to run on data. To run: .

 ./  DiPhotonBox_Pt250toInf 

To-Do List for Next Re-Processing

  • Ideas for further improvements:
    • save every RECO photon with pT > 30 GeV ?
    • Utilize wider gap (from Sean's Photon ID optimization studies)
    • use E2/E9 for spike removal

Summary Plots


MC Background

NB: All plots have required the selection described above


Most Recent Edition

Dataset JSON file Run range Lumi obtained Ntuple location
/EG/Run2010A-Sep17ReReco_v2/RECO Cert_132440-146729_7TeV_StreamExpress_Collisions10_JSON.txt All? 3.07 pb-1 /castor/

First Processing

Dataset /MinimumBias/Commissioning10-SD_EG-v9/RECO
JSON file Cert_132440-135735_7TeV_StreamExpress_Collisions10_JSON.txt
Corresponding lumi 7.49 nb-1 version v1.4
Analyzer CMSSW version CMSSW_3_5_6
Ntuple location /castor/
Files diphoton_tree_data_EG_SD_run135735.root

This first processing did not use official spike-cleaning procedure. It only used a simple e1/e3x3 < 0.95 requirement to reject spikes at the supercluster level.

Second Processing

This will be an update to use the official spike cleaning procedure, switch to CMSSW_3_6_X, and add more data.

  • Spike-cleaned re-RECO in dbs:
    • in cms_dbs_ph_analysis_02 */EG/yma-361pathc2_rereco__Run2010A-PromptReco-v2-d75f32b7c2df81b652d4a295489c0d32/USER

Data processed in 363, using the official spike removal, then simple diphoton filter (pt>5,5), then reclustering, then ExoAnalyzer code:

Hadd'ed ntuples are being stored in castor, in


along with associated lumiSummary.json, and lumiCalc.txt (output of Lumi calc script)

Run Number Range Data set official name Ntuple Info Additional Info Expected Lumi crab reported Lumi
132440-135735 /MinimumBias/Commissioning10-SD_EG-Jun14thSkim_v1/RECO /castor/ lumi info files in the same directory with same appendix as ntuple file 8nb-1 7.9nb-1
136066-137028 /EG/Run2010A-Jun14thReReco_v1/RECO /castor/ all but one job done and copied 4.7nb-1 4.5nb-1
139779-140159 /EG/Run2010A-Jul16thReReco_v2/RECO /castor/ all jobs done, but many runs missing? 118nb-1 4nb-1
138564-141961 /EG/Run2010A-PromptReco-v4/RECO /castor/ partial file 91/94 jobs complete = ~160nb-1 ? 163nb-1
141961-144114 /EG/Run2010A-PromptReco-v4/RECO /castor/ about 1/3rd done 2.58pb-1 400nb-1

Third Processing

updated to 38X to use sept17re-RECO (spike cleaning included) and also to read Run2010B data (RECO's in 38X).

event selection includes:

process.primaryVertexFilter = cms.EDFilter("GoodVertexFilter", vertexCollection = cms.InputTag('offlinePrimaryVertices'), minimumNDOF = cms.uint32(4), maxAbsZ = cms.double(24), maxd0 = cms.double(2) )

process.noScraping = cms.EDFilter("FilterOutScraping", applyfilter = cms.untracked.bool(True), debugOn = cms.untracked.bool(False), numtrack = cms.untracked.uint32(10), thresh = cms.untracked.double(0.25) )

process.diphotonFilter.ptMin_photon1 = 10.0

process.diphotonFilter.ptMin_photon2 = 10.0

Run Number Range Data set official name Ntuple Info Additional Info Expected Lumi crab reported Lumi
136035-144010 /EG/Run2010A-Sep17ReReco-v2/RECO /castor/ recover missed Lumi's from conor's job 0.3pb-1 291nb-1
136035-144114 /EG/Run2010A-Sep17ReReco-v2/RECO /castor/ conor's first processing of sept17reRECO 3.1pb-1 2.799pb-1
146428-147116 /Photon/Run2010B-PromptReco-v2/RECO /castor/* in two files, for oct1 and oct8 JSONs 3.8pb-1 3.8pb-1
147115-147454 /Photon/Run2010B-PromptReco-v2/RECO /castor/* Oct 15th update 3.97pb-1 3.97pb-1
147757-148058 /Photon/Run2010B-promptreco-v2/RECO /castor/ Oct 22nd update 4.15pb-1 4.15pb-1
148822-148864 /Photon/Run2010B-promptreco-v2/RECO /castor/ Oct 29th update, recoverd 147754,147755,148031 6.81pb-1 6.81pb-1
148952-149294 /Photon/Run2010B-promptreco-v2/RECO /castor/ Nov 5th update 12.8pb-1 12.8pb-1

Fourth Processing

Includes second vtx dependent calculations from conor (empty branches are not intialized...)

Run Number Range Data set official name Ntuple Info Additional Info Expected Lumi crab reported Lumi
  /EG/Run2010A-Sep17ReReco-v2/RECO RunA, Complete, with second vertex also on /castor/ 3.162
  /Photon/Run2010B-SuperCluster-Nov4Skim_v1/RECO RunB, Complete, with 2nd vertex variables also on /castor/ 30.783pb-1

Event displays

Event Displays of high mass diphoton events can be found at:

MC: RS Graviton Signal

RS graviton signal samples have been generated from a range of different points in the k/Mpl vs M plane:

Datasets /RSGravToGG_kMpl001_M-250_7TeV-pythia6/Spring10-START3X_V26-v1/GEN-SIM-RECO
Ntuple location  
first version /castor/
MC_36X_V2 /castor/

MC: Background

Locations of ntuples: /castor/

DiPhoton Born & Box  
QCD DiJet  

Limit-setting & Sensitivity Studies

We use the CMS Exotica supported package (ExoSt) for producing limits:

We also use the "95 percent Confidence Level Limit Calculator" from the Exotica group.

Other Useful Information

Spring2010 MC Twiki:

Fall2010 MC Links:

EventNumberFilter: for selecting individual events, given a run

EventDisplays: Fireworks & iSpy/Iguana

-- ConorHenderson - 03-Jun-2010

Topic attachments
I Attachment History Action Size Date Who Comment
PowerPointppt Mgg_eventdisplays_ym.ppt r1 manage 2934.0 K 2010-10-12 - 19:16 ToyokoOrimoto  
PDFpdf RS_evt1.pdf r1 manage 38.8 K 2010-12-07 - 19:32 UnknownUser event display, EB only
PDFpdf RS_evt2.pdf r1 manage 37.1 K 2010-12-07 - 19:33 UnknownUser event display #2, EB only
PDFpdf RS_evt3.pdf r1 manage 36.8 K 2010-12-07 - 19:34 UnknownUser event display #3, EB only
GIFgif cms_rsgrav_95cl_projection.gif r2 r1 manage 29.8 K 2010-07-27 - 13:43 ConorHenderson Expected sensitivity at 7 TeV, scaled from approved MC analysis EXO-09-009
GIFgif diphoton_minv.gif r1 manage 12.7 K 2010-06-28 - 13:13 ConorHenderson Diphoton Minv, 7.49 nb-1 data compared to MinBias MC
Edit | Attach | Watch | Print version | History: r59 < r58 < r57 < r56 < r55 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r59 - 2011-05-01 - ToyokoOrimoto
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback