Some documentation on experiences of running on data, especially useful for running on D3PDs outside of the Athena framework.
My talk in Atlas meeting 15/10/10 (with corrections) Gla_Zll_talk_2.pdf
I'll try and document the various components of the analysis below, link to where I found information and describe how I solved problems not covered in the Twiki. You can look at my code at https://ppes8.physics.gla.ac.uk/trac/user/browser/ncedwards/Zll/trunk (grid certificate required)
In order to use GoodRunLists in standalone ROOT / C++ you can follow the instructions on the twiki page https://twiki.cern.ch/twiki/bin/viewauth/Atlas/GoodRunsListsTutorial#Running_in_Root_or_python . I found it was easy to compile the standalong package and use it in the ROOT interactive environment, but to compile completely standalone code was a bit more complicated. Here is what I do:
svn co svn+ssh://svn.cern.ch/reps/atlasoff/DataQuality/GoodRunsLists/tags/GoodRunsLists-00-00-84 cd GoodRunsLists-00-00-84/cmt make -f Makefile.Standalone
Then when you compile your main program, link to the Standalone library generated, for example your Makefile might look a bit like this:
CC=g++ CCFLAGS = -O3 -g3 -m32 -fPIC -enable-shared ROOTINCS=`root-config --cflags` ROOTLIBS=`root-config --libs` GRLLIBDIR = GoodRunsLists/StandAlone GRLDIR = GoodRunsLists/ all: Zll Zll: Zll.cpp ConfigFile.cpp ${CC} $(CCFLAGS) -c -o Zll.o ${FLAGS} Zll.cpp ${ROOTINCS} -I${GRLDIR}/ ${CC} $(CCFLAGS) ${ROOTLIBS} -lMathCore -lTreePlayer -L${GRLLIBDIR} -lGoodRunsLists Zll.o -o Zll
Then before running your executable add the location to the GoodRunsList.so file to your LD_LIBRARY_PATH environment variable, e.g.:
export GRL_LIB_DIR=${PWD}/GoodRunsLists/StandAlone export LD_LIBRARY_PATH=${GRL_LIB_DIR}:${LD_LIBRARY_PATH}
There may well be a better way of doing this, I'm not an expert at this sort of thing!
## uncomment following line to turn on libxml2 #XMLCONFIG=on
It's about line 32. This isn't very well documented, and took me about a day to figure out!!
The LumiCalcTool takes care of all of this for you! You supply a Good Run List of events ran over and trigger used → LumiCalc tool calculates the integrated luminosity. You need to be careful that you have run over every single lumi block in the GRL you supply to the LumiCalcTool, otherwise the result will be wrong. You can use the GoodRunsList package to write out a list of LumiBlock run over, then use this to calculate the integrated Luminosity. You need to be careful if using L1 triggers that not prescaled at HLT (see Trigger section on ways you could check this).
There are 2 main ways to use the LumiCalcTool. You can use the web interface, which is quick and easy - it's at https://atlas-datasummary.cern.ch/lumicalc/ . Alternatively there is an Athena package if you want to integrate this into your analysis (not sure if you can use this standalone or not). See the Twiki: https://twiki.cern.ch/twiki/bin/view/Atlas/CoolLumiCalcTutorial#Exercise_1_Using_i_LumiCalc_exe
.
TODO - look into how LumiCalcTool works and how uncertainties are estimated...
There are various web tools available for investigating the trigger configuration. http://atlas-service-db-runlist.web.cern.ch/atlas-service-db-runlist/cgi-bin/runDetails.py?run=160387 gives information on specific runs (change the run number in the URL). You can access the trigger menu by clicking the trigger tab. This page lists the triggers, their prescales and the number of accepted events at L1. A prescale of -1 indicates the trigger is masked / disabled, ie it won't fire at all. However this page can be misleading. It shows the prescale for the first Luminosity block of the run. The trigger menu can, and often does, eveolve over the course of the run, and often triggers are unmasked after the first few LumiBlocks (you can see this on the link above - some of the L1 triggers are masked but have L1 accept non-zero).
Instead, try the http://atlas-trigconf.cern.ch . If you enter a run number and click "Show Run", then click on the "prescales" link in the appropriate row of the table, you can see the prescale for each LumiBlock of the run.
This basically involves removing events containing 'fake' jets from calorimeter noise or cosmics, as these introduce errors into the MET calculation. Some groups do this before th D3PD creation stage, so you may not need to do it in your analysis.
* Measurement of the Zll production cross section in proton-proton collisions at s = 7 TeV with the ATLAS detector https://atlas.web.cern.ch/Atlas/GROUPS/PHYSICS/CONFNOTES/ATLAS-CONF-2010-076/ATLAS-CONF-2010-076.pdf * Measurement of the Wlv production cross-section and observation of Zll production in proton-proton collisions at s = 7 TeV with the ATLAS detector https://atlas.web.cern.ch/Atlas/GROUPS/PHYSICS/CONFNOTES/ATLAS-CONF-2010-051/ATLAS-CONF-2010-051.pdf
* Measurement of the W and Z/gamma* production cross sections in proton-proton collisions at sqrt{s}=7 TeV with the ATLAS detector http://cdsweb.cern.ch/record/1294745
-- NickEdwards - 2010-10-15
I | Attachment![]() |
History | Action | Size | Date | Who | Comment |
---|---|---|---|---|---|---|---|
![]() |
Gla_Zll_talk_2.pdf | r2 r1 | manage | 559.4 K | 2010-10-15 - 14:31 | NickEdwards |