Difference between revisions of "NIKHEF PAT workshop Oct2006"

From Atlas Wiki
Jump to navigation Jump to search
 
(20 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
==Pre-Tutorial==
 
==Pre-Tutorial==
  
*This pre-Tutorial is copy of the one gave by Ketevi A. Assamagan, adapted to work in 12.0.2  
+
*This pre-Tutorial is copy of the one given by Ketevi A. Assamagan, adapted to work in 12.0.2  
  
 
*here is a link to other Tutorials by Ketevi, and other usful PAT links:
 
*here is a link to other Tutorials by Ketevi, and other usful PAT links:
Line 9: Line 9:
  
 
[http://www.nikhef.nl/pub/experiments/atlaswiki/index.php/NIKHEF_PAT_workshop_Oct2006_pre-Tutorial Pre-Tutorial link]
 
[http://www.nikhef.nl/pub/experiments/atlaswiki/index.php/NIKHEF_PAT_workshop_Oct2006_pre-Tutorial Pre-Tutorial link]
 +
 +
During the workshop we'll browse over the code that we've used in the pre-Tutorial to try and uderstand it. Later we'll focused on the TAG and AAN selection.
  
 
==Event Selection==
 
==Event Selection==
Line 19: Line 21:
 
cp ~ordonez/public/Workshop_files/UserAnalysis/AnalysisSkeleton.h UserAnalysis/.
 
cp ~ordonez/public/Workshop_files/UserAnalysis/AnalysisSkeleton.h UserAnalysis/.
 
cd cmt
 
cd cmt
gamke
+
gmake
 
cd ..
 
cd ..
 
mkdir run2
 
mkdir run2
Line 34: Line 36:
 
*First we generate our own TAG.
 
*First we generate our own TAG.
  
*Still in the new Run directory:
+
*Still in the new run2 directory:
  
 
<pre>
 
<pre>
Line 71: Line 73:
 
</pre>
 
</pre>
 
*And run again. Note that only will run the events that satisfy the query:
 
*And run again. Note that only will run the events that satisfy the query:
EventSelector.Query = "NLooseMuon>0 && NLooseMuon<3 && abs(LooseMuonEta1)<2.5 && abs(LooseMuonEta2)<2.5 && LooseMuonPt2>10000 && LooseMuonPt2>10000"
+
EventSelector.Query = "NLooseMuon>0 && NLooseMuon<3 && abs(LooseMuonEta1)<2.5 && abs(LooseMuonEta2)<2.5 && LooseMuonPt1>10000 && LooseMuonPt2>10000"
  
  
Line 92: Line 94:
 
</pre>
 
</pre>
  
</pre>
 
 
*Comment out  
 
*Comment out  
 
<pre>
 
<pre>
Line 109: Line 110:
 
</pre>
 
</pre>
  
You'll see a new Zmumu_new_AOD.root file has been created
+
You'll see a new Zmumu_new_AOD_withTAGSelection.root file has been created
  
 
==Event Selection using AAN==
 
==Event Selection using AAN==
 
*Follow as in the previous section but useANN=True instead of useTAG=True. In the end you should have the following two files:
 
*Follow as in the previous section but useANN=True instead of useTAG=True. In the end you should have the following two files:
 
+
ZmumuOnAOD_withAANSelection.aan.root
 
+
Zmumu_new_AOD_withAANSelection.root
  
 
==Interactive Analysis in ATHENA==
 
==Interactive Analysis in ATHENA==
Line 203: Line 204:
  
 
==Analysis with the EventView==
 
==Analysis with the EventView==
*Follow this link: EventView. However, I would suggest that you do the specific exercises above on ESD/AOD/TAG first: that provides the background for understanding the ESD/AOD/TAG before proceeding to the EventView.
+
*Due to the time I won't cover this section during the Workshop. But now you should have the basic knowledge requiered to understand it. You can learn about the [https://twiki.cern.ch/twiki/bin/view/Atlas/EventView Event View] here
  
 
== Analysis on the GRID ==
 
== Analysis on the GRID ==
Line 237: Line 238:
 
</pre>
 
</pre>
  
*For job estatus monitoring visit: [http://gridui02.usatlas.bnl.gov:25880/server/pandamon/query Monitoring]
+
*For job status monitoring visit: [http://gridui02.usatlas.bnl.gov:25880/server/pandamon/query Monitoring]
 
 
==GANGA==
 
*For further details vistit [https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga ganga wiki]
 
*A very simple example of how to use panda move to your ${HOME} directory and do:
 
<pre>
 
export PATH=$PATH:/afs/cern.ch/sw/ganga/install/slc3_gcc323/4.2.0-beta7/bin/
 
 
 
or
 
 
 
setenv PATH /afs/cern.ch/sw/ganga/install/slc3_gcc323/4.2.0-beta7/bin/:${PATH}
 
</pre>
 
 
 
*Generate a ${HOME}/.gangarc with
 
<pre>
 
ganga -g
 
</pre>
 
 
 
*Edit $HOME/.gangarc as follows:
 
  
1. In the section labelled [Configuration] add the line:
 
<pre>
 
      RUNTIME_PATH = GangaAtlas
 
</pre>
 
2. In the section labelled [LCG] add the line:
 
<pre>
 
      VirtualOrganisation = atlas
 
</pre>
 
  
*Now move to the run directory again and try this:
 
<pre>
 
ganga
 
</pre>
 
 
*Inside the Python interpreter:
 
<pre>
 
j = Job()
 
j.application=Athena()
 
j.application.prepare()
 
j.application.option_file='$HOME/scratch0/Workshop/12.0.2/PhysicsAnalysis/AnalysisCommon/UserAnalysis/run/ZmumuOnAOD_jobOptions.py'
 
j.inputdata=DQ2Dataset()
 
j.inputdata.type='DQ2_LOCAL'
 
j.inputdata.dataset='csc11.005145.PythiaZmumu.recon.AOD.v11004103'
 
j.outputdata=DQ2OutputDataset()
 
j.outputdata.outputdata=['ZmumuOnAOD.aan.root']
 
j.backend=LCG()
 
j.submit()
 
</pre>
 
  
 
==DQ2 Tools==
 
==DQ2 Tools==
Line 302: Line 258:
 
dq2_get -rv -d . user.GustavoOrdonezSanz.00008.AAN.root
 
dq2_get -rv -d . user.GustavoOrdonezSanz.00008.AAN.root
 
</pre>
 
</pre>
 +
 +
==Ganga==
 +
We're not going to cover Ganga in this tutorial. But for reference look at:[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga Ganga link]
 +
 +
==Final Exercice==
 +
To conclude the workshop we're going to try to make our own Higgs to four muon analysis. Taking as an example the ZmumuOnAOD algorithm, make a H4mu one. The purpose of this, is to dig into the Phisics Analysis Tools used in ZmumuOnAOD, and try to have a realistic approach of how is like to make Analyis in Athena.
 +
 +
Good luck!

Latest revision as of 09:08, 25 October 2006

Pre-Tutorial

  • This pre-Tutorial is copy of the one given by Ketevi A. Assamagan, adapted to work in 12.0.2
  • here is a link to other Tutorials by Ketevi, and other usful PAT links:

PAT

  • Please follow the following pre-Tutorial before the date of the Workshop. It is a very straight forward, tutorial and will help to set up the athena enviroment for the workshop, so we can focus our time in more interested things

Pre-Tutorial link

During the workshop we'll browse over the code that we've used in the pre-Tutorial to try and uderstand it. Later we'll focused on the TAG and AAN selection.

Event Selection

First we're going to generate a new AAN that we'll use later for selection.

cd ~scratch0/Workshop/
source setup.sh -tag=12.0.2,opt
cd 12.0.2/PhysicsAnalysis/AnalysisCommon/UserAnalysis
cp ~ordonez/public/Workshop_files/src/AnalysisSkeleton.cxx src/.
cp ~ordonez/public/Workshop_files/UserAnalysis/AnalysisSkeleton.h UserAnalysis/.
cd cmt
gmake
cd ..
mkdir run2
cd run2
cp ~ordonez/public/Workshop_files/run2/AnalysisSkeleton_jobOptions.py .
cp ~ordonez/public/Workshop_files/data2/PoolFileCatalog.xml .
cp ~ordonez/public/Workshop_files/data2/mc11.004202.ZmumuJimmy.recon.AOD.v11000401.py .
athena AnalysisSkeleton_jobOptions.py | tee athenaOut_AnalysisSkeleton.log

This will generate the file AnalysisSkeleton.aan.root.

Event Selection using TAG

  • First we generate our own TAG.
  • Still in the new run2 directory:
cp ~ordonez/public/Workshop_files/run2/Main_topOptions.py .
  • Edit Main_topOptions.py and uncomment the line
### Create TAG file
doWriteTAG=True
athena Main_topOptions.py | tee athenaOut.log
  • This will generate the file called ZmumuOnAOD_TAG.root
  • Now we are ready to run our algorithms with a TAG selection on the fly. Edit Main_topOptions.py again comment out:
#doWriteTAG=True 
  • and uncomment
doRunAODwithSelection=True

and

useTag=True
  • Copy:
cp ~ordonez/public/Workshop_files/run2/ZmumuOnAOD_new_jobOptions.py .
  • And run again. Note that only will run the events that satisfy the query:

EventSelector.Query = "NLooseMuon>0 && NLooseMuon<3 && abs(LooseMuonEta1)<2.5 && abs(LooseMuonEta2)<2.5 && LooseMuonPt1>10000 && LooseMuonPt2>10000"


athena Main_topOptions.py | tee athenaOut.log
  • As an output you have ZmumuOnAOD_withTAGSelection.aan.root. You can have a look at it in root to make sure that the query has been satisfied
  • Now we'll rewrite our own AOD containeing only the events selected. We'll do it for only 50 events to gain some time
  • Edit again Main_topOptions.py and change:
TheApp.EvtMax = 500

to

TheApp.EvtMax = 50
  • Comment out
#doRunAODwithSelection=True
  • uncomment:
doRewriteAOD=True

and run once more

athena Main_topOptions.py | tee athenaOut.log

You'll see a new Zmumu_new_AOD_withTAGSelection.root file has been created

Event Selection using AAN

  • Follow as in the previous section but useANN=True instead of useTAG=True. In the end you should have the following two files:

ZmumuOnAOD_withAANSelection.aan.root Zmumu_new_AOD_withAANSelection.root

Interactive Analysis in ATHENA

  • In this exercise, we will see how to do interactive analysis in ATHENA, how to browse the Raw Data in the AOD. Proceed as follows:
get_files Interactive_topO.py
  • Edit Interactive_topO.py and replace this line
EventSelector.InputCollections = [ "AOD.pool.root" ]
  • with this line:
include ( "mc11.004202.ZmumuJimmy.recon.AOD.v11000401.py" )
  • run
athena -i Interactive_topO.py
  • Initialize application manager
athena>theApp.initialize()
  • Run 1 event
athena>theApp.nextEvent()
  • Retrieve Muons from AOD
athena>mcon = PyParticleTools.getMuons("MuidMuonCollection")
  • Get the first muon
athena>m = mcon[0]
  • Get a list of methods
athena>dir(m)
  • See pT
athena>m.pt()
  • Get TrackParticle via ElementLink
athena>tp = m.track()
athena>dir(tp)
athena>tp.pt()
  • Retrieve the MC Truth
athena>mcc = PyTruthTools.getMcEvents("TruthEvent")
athena>mc = mcc[0]
athena>mc.alphaQCD()
  • Dump Data Store
athena>dumpSG()
  • Run next event
athena>theApp.nextEvent()

Rewind event counter

athena>theApp.seek(0)
  • See pT distribution of muons
athena> plot("MuonContainer#MuidMuonCollection","$x.pt()",nEvent=5)


Analysis with the EventView

  • Due to the time I won't cover this section during the Workshop. But now you should have the basic knowledge requiered to understand it. You can learn about the Event View here

Analysis on the GRID

  • In the following examples we'll run on Zmumu datasets.
  • This will be a brief introduction to GRID tools for those of you who already went through the trouble of getting a GRID certificate.
  • First we should set up DQ2 tools:
source /afs/usatlas.bnl.gov/Grid/Don-Quijote/dq2_user_client/setup.csh.CERN

PANDA/PATHENA

  • For further details visit panda wiki
  • Setup PATHENA :
cd ~/scratch0/Workshop/12.0.2/PhysicsAnalysis/AnalysisCommon/UserAnalysis
cvs update -r UserAnalysis-00-08-13 -A python
cvs update -r UserAnalysis-00-08-13 -A share/pathena
cvs update -r UserAnalysis-00-08-13 -A share/pathena_util
cvs update -r UserAnalysis-00-08-13 -A share/ConfigExtractor.py
cd cmt
source setup.sh
gmake
cd ../run
  • run pathena

Note: change user.GustavoOrdonezSanz.00008.AAN.root with an appropiate name!!

pathena ZmumuOnAOD_jobOptions.py --inDS 'csc11.005145.PythiaZmumu.recon.AOD.v11004103' --outDS \
'user.GustavoOrdonezSanz.00008.AAN.root'


DQ2 Tools

  • For furhter details visit DQ2 wiki
  • This tools make your life easier when working on the GRID
dq2_ls *Zmumu*AOD*
  • Have a look at the files contained in one of the sets
dq2_ls -f <datasetname>
  • change user.GustavoOrdonezSanz.00008.AAN.root for your own
dq2_get -rv -d . user.GustavoOrdonezSanz.00008.AAN.root

Ganga

We're not going to cover Ganga in this tutorial. But for reference look at:Ganga link

Final Exercice

To conclude the workshop we're going to try to make our own Higgs to four muon analysis. Taking as an example the ZmumuOnAOD algorithm, make a H4mu one. The purpose of this, is to dig into the Phisics Analysis Tools used in ZmumuOnAOD, and try to have a realistic approach of how is like to make Analyis in Athena.

Good luck!