Previous page

Trigger studies


This page contains instructions on evaluating trigger rates and developing new trigger paths

On this page:

Useful Links

  • OMS : Online monitor tool to get trigger information

Trigger rates

Trigger rates for existing triggers can be obtained using OMS. For example, if interested in trigger rate of HLT_HIPFJet140_v1, first locate useful run (run with larger number of statistics, see here for details)

Navigate CMS→!Triggers→!HLT Trigger Rates→Run:XXXXXX. You can see L! Prerequisites clicking HLT Key menu from CMS→!Runs→Run Report→Run:XXXXXX

HLT trigger development

The development is done with 103X_dataRun2_HLT_v1 and CMSSW_11_3_0

In lxplus run the HLT java script:

git clone
Select: HLTDEVv2 and cms100khz to connect to ConfDB and follow instructions in

The following procedure can be used to define the best unprescaled trigger.

Obtaining pileup rate

To be able to know the averange number of collisions per bunch crossing, the most straightforward way of doing this is to use the instantaneous luminosity (see PileupJSONFileforData for more details).

If a single bunch has an instantaneous luminosity Linst, then the pileup is given by the formula μ = Linst σinel / frev, where σinel=69.2 mb is the total pp inelastic cross section and frev is the LHC orbit frequency of 11246 Hz (necessary to convert from the instantaneous luminosity, which is a per-time quantity, to a per-collision quantity). This quantity can be computed on a per-lumi section basis (where a lumi section is the fundamental unit of CMS luminosity calculation, about 23.3 seconds long).

The average instantenious luminosity is stored in /afs/ for 2017 data. To get the luminosity values you can use python script:

import json, numpy
with open('/afs/') as f:
  data = json.load(f)
lumis=numpy .array([f[3] for f in data[run] if float(f[3])>0])
print('maximal pileup = '+str(lumis.max()*69200.)+'\nminimal pileup = '+str(lumis.min()*69200.)+'\naverage pileup = '+str(lumis.mean()*69200.))

Other useful commands

Get luminosity

To get the actual luminosity per trigger use brilcalc:

export PATH=$HOME/.local/bin:/cvmfs/$PATH
brilcalc lumi --normtag /cvmfs/  -c /cvmfs/ -i /afs/ -u /pb --hltpath "HLT_*"
The total luminosity per era: lumi -b "STABLE BEAMS" -i /afs/ -c /cvmfs/ -u /fb The ratio between total recorded lumis is the level of prescale.

How to find unprescaled trigger:

GRL is available here: /afs/ To get list of runs execute: /afs/ To get the list of triggers per run goto, enter a run number, and click on HLT key option.

Extra information about calculations of collision rates and pileup interactions is available in PileupJSONFileforData.

Good Run Lists:

The luminosity certified as good for physics analysis is contained in the JSON Golder files:
  • 13 TeV low μ dataset: /afs/

-- MichaelPitt - 2021-07-18

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2021-07-18 - MichaelPitt
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

  • Edit
  • Attach
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