GoodRunsList in AMA
Introduction
(still to be validated)
This page explains how to use the GoodRunsLists within AMAAthena. GoodRunsLists make it possible to select specific datasets AND lumiblocks satisfying detector and data quality constraints. A more general Atlas tutorial can be found here: GRL Tutorial.
Prepare
There are a few steps to make, in order to get it all working.
1: Get an XML file
First of all, you need an XML file with the datasets and lumiblocks you want to run over. To make one yourself, go to Atlas Run Query and enter a query containing all DQ flags you need/like. This page has lots of examples and help functions to assist in forming a query.
Press Show Runs, wait for it... and inspect the results. On the bottom of the page you can choose to view in 'pretty mode', 'python dictionary', 'Root tree', but we need to dump it as an XML file. Choose this one. Now you have your XML file, check if it looks ok. (Obviously, it is also possible to take the XML file supplied by your group, Atlas or anyone else you assume knows it all.)
2: Edit the AMAAthena jo
The idea is now, to let AMAAthena only run over events that are in the selected lumiblocks and datasets, and skip the remainder. This is especially nice when you are running over millions of events. Make sure you have an updated version of AMA, by doing for exmaple 'svn update'. Compile if necessary, but check explicitly that in AMAAthena/share there is a file called AMAAthena_jobOptions_new_GRL.py.
Open this file and modify these two lines, such that they reflect your xml file: 1. GoodRunsListSelectorTool.GoodRunsListVec = [ 'GRList_dec09_stablebeams_CaloGreen.xml' ] 2. seq.GRLTriggerAlg1.GoodRunsListArray = ['GRList_dec09_stablebeams_CaloGreen'] (note that this MUST be equal to the xml file without the extension.
Run locally...
AMAAthenaDriver data 100 ConfigFile=data.conf TRIG,DATA,GRL
Note 1: GRL calls the joboptions you just edited. Note 2: I downloaded a one file of dataset 142383 and defined a sample linking to that.
If you dump an ntuple, and for example make this histogram:
root> tree->Draw("lumiBlock")
you see that really only the lumiblocks you wanted are in.
... or use Ganga and go all the way
This is much nicer of course, since you don't want to download all the datasets in reality, but let ganga do the work. This I still need to test.