Upsilon photoproduction software page

Offline Guide for γ γ → l + l - and γ p → Υ → l + l - analyses.

Code and tags

The following recipe is tested in CMSSW_2_2_6. The main analysis package is DiffractiveForwardAnalysis/GammaGammaLeptonLepton, while the extra tags are needed to run the FastSimulation of the CASTOR detector. From CMSSW_3_1_X, the CASTOR FastSimulation will be included in the release, and the extra tags will not be needed.

   cvs co -r V00-03-12      DiffractiveForwardAnalysis/GammaGammaLeptonLepton
   cvs co -r V00-00-01      DataFormats/CMS.CastorReco
   cvs co -r V00-01-00      FastSimulation/ForwardDetectors
   cvs co -r V00-01-00      RecoLocalCalo/Castor
   cvs co -r V01-00-01      SimDataFormats/GeneratorProducts
   scramv1 b

Configuration files

  • The input PAT lists, the dpt and dphi cuts on the lepton pair, the deltaR from the leptons used for the extra towers in the exclusivity, and the output ntuple file name can be configured at run time. The default values for these options are defined in python/ For the input lists, no changes are made to the default PAT selections (documented here for CMSSW_2_1_X). The following input objects are used by default:

Object Input collectionSorted ascending
CASTOR towers CastorTowerReco
Jets PAT selectedLayer1Jets
Muons PAT selectedLayer1Muons
Charged tracks generalTracks
Vertices offlinePrimaryVertices
Calorimeter towers towerMaker

  • A filter on HLT bits can be applied using python/ The current default setting will select events passing either the HLT_DoubleMu3 , or HLT_Mu3 triggers.

How to run the dimuon analyzer

  • The main file is test/
    • Edit the PoolSource to choose your input files. The default is a Z to mumu sample that is available at CERN. For running at other sites, consult DBS to find what samples are available, or see the instructions for submitting grid jobs with CRAB.
    • Edit the "path p" at the end to choose which modules will run. For example, to run the CASTOR FastSimulation, filter on trigger bits, produce the PAT objects, and finally run the dimuon analyzer module, the path would look like:

      process.p = cms.Path( 
          + process.hltFilter 
          + process.patLayer0   
          + process.patLayer1 
          + process.gamgammumuanalysis 

  • cmsRun


The code will dump out an ntuple containing all events that have exactly two opposite sign leptons from the selected lists that pass the selected dpt and dphi cuts. Output quantities include the 4-vector information (px, py, pz, E, pT/ET, eta, phi - where applicable) for the following objects:

  • Muons
  • CMS.CaloTowers that are separated by DeltaR > 0.3 from any of the muon candidates, and all towers in CASTOR
  • Jets
  • Charged tracks, that do not overlap with any of the muon candidates
  • The highest energy and highest ET extra tower, and highest energy jet in the event

The following quantities are included for the dimuon candidate pair:

  • The invariant mass
  • The dimuon vertex position, chi2, and fit result (validity)
  • The 3D distance from the dimuon vertex to the closest extra track in the event, and the number of extra tracks within radii of 1mm, 3mm, 5mm, 1cm, 3cm, 5cm, 10cm
  • The Delta-pT and Delta-phi of the muon pair

The following exclusivity variables are included:

  • The number of extra calorimeter towers above threshold in both E and ET, for the full CMS detector and for the HB, HE, HF regions of the HCAL.
  • The number of extra tracks in the event.
  • The total sum of energy of extra calorimeter towers, sum of energy of jets, and sum of energy of CASTOR towers for the forward and backward CASTOR detectors

The following muon identification and isolation variables are included:

  • The type of muon (tracker, global, or standalone)
  • The muon isolation variables in cones of DeltaR < 0.3 and DeltaR < 0.5
  • The muon ID, based on the TMLS Optimized Low pT loose selector
  • The timing information from the DTs

How to run the dielectron analyzer

A second version of the analyzer for running over the corresponding dielectron modes is also included. This was used for older studies in the 2007 exclusive dilepton PAS (add ref.). It has been updated enough to run in CMSSW_2_2_6, but has otherwise not been fully maintaned or optimized. It can be run following a similar recipe as the dimuon analyzer, with gamgammumuanalysis replaced by gamgameeanalysis in the path in the main configuration file

      process.p = cms.Path( 
          + process.hltFilter 
          + process.patLayer0   
          + process.patLayer1 
          + process.gamgameeanalysis 

  • cmsRun

The defaults are defined in the configuration file python/ The input electron list is PAT selectedLayer1Electrons.

How to run on cosmic ray data

A modified version of the analyzer is also included for running over cosmic ray data. Compared to the main analyzer, it has the following modifications:

  • There is no requirement that there be exactly two muon candidates in the event.
  • No filtering on HLT bits is applied by default.
  • The input muon list is "muons".
  • The input charged track list is cosmictrackfinderP5.
  • The input jets list is sisCone5CaloJets.

The main file is test/ * Edit the PoolSource to choose your input files. The default is set to a sample of field-on cosmics taken during Fall 2009, and skimmed to select events with at least one muon candidate reconstructed within the tracker.

  • cmsRun

The output is similar to that for the dimuon analyzer described above.

General Exclusive Dilepton Root Macros

There are several ROOT macros in the test/ directory for doing further analysis and making plots from the output ntuples.

  • PlotSigVsBkg.C applies the exclusivity and lepton cuts and makes the plots used for the CSA07 PAS analysis.
  • MakeWeightedPlots.C makes histograms of the CSA07 soup samples, after applying the appropriate event-by-event weights.
  • MakeSkimQAPlots.C just makes a page of plots of the main analysis variables.

Upsilon-specific Root Macros

  • DileptonFitter.C: This is a CMS.RooFit macro for fitting the Upsilon mass region. It takes as input a text file with the masses of all events passing the selection cuts. It performs a fit to the mass region 8-12 GeV with three Gaussians for the signal, and a first-order polynomial for the continuum background. The yields, means, and widths of the three Gaussians are free parameters by default.


Responsible: Main.Grzegorz.Brona
Last reviewed by: Never reviewed

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2012-01-02 - DavidDEnterria
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic 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