Zll Analysis on Data: technical documentation

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)

Datasets / Good Runs List

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!

Important caveats!

  • If you have Athena set up when you build the GoodRunsLists library you must have it set up when you compile and link your package. Alternatively you can compile the GoodRunsLists library without Athena set up, in which case you must compile and link your package without Athena set up.
  • If you want to write Good Run Lists (either to file or to a string) (this is very useful for book keeping) then you need to uncomment the following line in GoodRunsLists/cmt/Makefile.Standalone :
    ## 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!!

Good Run List Related links

Luminosity Calculation

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...

Trigger

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.

Object Definitions

MET cleaning

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.

Z data analysis related links

Z related Data Notes

* 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

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf Gla_Zll_talk_2.pdf r2 r1 manage 559.4 K 2010-10-15 - 14:31 NickEdwards  
Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2010-12-12 - NickEdwards
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback