During normal LHC running, the ATLAS detector is prone to various issues that prevent subdetector systems from performing correctly. While many of these issues are not detrimental to data taking, there are detector conditions that result in luminosity blocks being unusable for analysis. Good Runs Lists (GRLs) are maintained to record luminosity blocks of data that are collected under various conditions. The complete set of available GRLs can be found on the ATLAS DQM page. If you click on one of the GRLs, you will see information summarizing the runs in the list.
If you want to use a GRL locally (which is not needed for this tutorial), you can download it using the
wget
command, e.g.:wget http://atlasdqm.web.cern.ch/atlasdqm/grlgen/All_Good/data16_13TeV.periodAllYear_DetStatus-v89-pro21-01_DQDefects-00-02-04_PHYS_StandardGRL_All_Good_25ns.xml
The GRLSelectorAlg
is an algorithm that checks data events against
user-defined GRLs. If an event is not in a luminosity block in the
GRLs, the event is skipped for all later algorithms in the job. This
is a type of algorithm referred to as a filter because events that
fail it are filtered out. It can be scheduled after other CP algorithms,
but must be scheduled before your analysis algorithm. If you are using
an ntuple output algorithm (which we aren’t in this tutorial), make
sure to schedule the GRL algorithm before it.
To add the GRL algorithm to your algorithm sequence, add the following
include statement to the top of MyAnalysisAlgorithms.py
:
from AnaAlgorithm.DualUseConfig import createAlgorithm, addPrivateTool
and the following lines to the makeSequence()
method where it says
"# Add your sequences here"
:
# Include and set up the grl algorithm:
if dataType == 'data' :
grlAlg = createAlgorithm ('GRLSelectorAlg', 'GRLSelectorAlg')
addPrivateTool (grlAlg, 'Tool', 'GoodRunsListSelectionTool')
grlAlg.Tool.GoodRunsListVec = [ 'GoodRunsLists/data17_13TeV/20180619/data17_13TeV.periodAllYear_DetStatus-v99-pro22-01_Unknown_PHYS_StandardGRL_All_Good_25ns_Triggerno17e33prim.xml',
'GoodRunsLists/data18_13TeV/20190318/data18_13TeV.periodAllYear_DetStatus-v102-pro22-04_Unknown_PHYS_StandardGRL_All_Good_25ns_Triggerno17e33prim.xml']
# Add the grl algorithm to the job
algSeq += grlAlg
Note that the GRL algorithm is only scheduled for jobs that run over data. Monte Carlo events are not subject to detector downtime and therefore, all of them are used.
To test this to make sure it is configured correctly, you can temporarily
change dataType
to "data"
in your steering macro or JOs and re-run your
job. After you see that the algorithm is being called correctly (it will
print out information at the beginning of the job before your analysis
algorithm is executed), make sure you change it back to "mc"
before proceeding.
Commit and push your changes.