Munich Software Tutorial 11.0.41
0 Information on the Web
- The ATLAS homepage ist here
- The ATLAS Beginners Workbook is here
- The ATLAS Computing Wiki is here
1 How to find CSC Data
1.1 Information on the web
1.2 Browse the LFC catalog
The LFC (or LCG File Catalog) has been developed by
http://lcg.web.cern.ch/LCG/ to resolve problems with the EDG Replica Manager File Catalog.
The File Catalog (or Replica Catalog) maps between the Logical File Name and the Storage URL (or URLs) for files managed by the Grid, e.g.,
Wiki link:
http://wiki.gridpp.ac.uk/wiki/LCG_File_Catalog
1.3. Use DQ2 tools
The ATLAS DDM (Distributed Data Management) group is involved in developing a system to manage access to ATLAS data that is distributed at sites all around the world. The new DDM software is named DQ2.
- Use to DQ2 user client tools:
source /software/atlas/dq2/dq2_user_client/setup.sh.LMU
dq2_ls *5145*
dq2_ls -fg csc11.005145.PythiaZmumu.recon.AOD.v11004103
dq2_get -rl csc11.005145.PythiaZmumu.recon.AOD.v11004103 csc11.005145.PythiaZmumu.recon.AOD.v11004103._00299.pool.root
- Make PoolFileCatalog.xml and job-options file for Athena
dq2_poolFCjobO -pj -d/tmp/<username> csc11.005145.PythiaZmumu.recon.AOD.v11004103
2 How to create an Athena Aware ntuple
2.1 Information on the web
2.2 Create an Athena Aware Ntuple
- Setup and working area for Athena:
ssh etppc43
cd /data/etp/<username>/
mkdir -p Tutorial/11.0.41
cd Tutorial/11.0.41
source /software/atlas/dist-kit/11.0.41/setup.sh
export CVSROOT=:ext:<cernusername>@atlas-sw.cern.ch:/atlascvs
export CVS_RSH=ssh
export CMTPATH=`pwd`:${CMTPATH}
cmt co -r UserAnalysis-00-05-11 PhysicsAnalysis/AnalysisCommon/UserAnalysis
cd PhysicsAnalysis/AnalysisCommon/UserAnalysis/UserAnalysis-00-05-11/cmt/
source setup.sh
cp /data/etp/elmsheus/Tutorial/files/AnalysisSkeleton.h ../UserAnalysis/
cp /data/etp/elmsheus/Tutorial/files/AnalysisSkeleton.cxx ../src
gmake
- Prepare the jobOption file with the local dataset:
cd ../run/
get_files AnalysisSkeleton_jobOptions.py
cp /data/etp/atlas_mc/csc11/csc11.005151.McAtNloZmumu.recon.AOD.v11004103/PoolFileCatalog.xml .
cp /data/etp/atlas_mc/csc11/csc11.005151.McAtNloZmumu.recon.AOD.v11004103/files_jobO.py .
Remove the following lines in AnalysisSkeleton_jobOptions.py:
EventSelector.InputCollections = [
"AOD.pool.root"
]
Insert instead in AnalysisSkeleton_jobOptions.py:
include( "files_jobO.py" )
And set the following for testing in AnalysisSkeleton_jobOptions.py:
# Number of Events to process
theApp.EvtMax = 100
- Start Athena with:
athena.py -b AnalysisSkeleton_jobOptions.py
If everything worked fine, you have produced a file
AnalysisSkeleton.aan.root, which contains a TTree
CollectionTree and several subfolders with basic distibution histograms TH1D.
You can either use your program ''AnalysisSkeleton.cxx" to further improve your analysis and selection and use the histograms to plot your distibution.
The second option is to use the TTree
CollectionTree and further develop your selection in ROOT.
3 How to analyse the ntuple with ROOT/PROOF
3.1 Using ROOT
- To analyse the TTree CollectionTree you can either do this the classic way and process the TTree sequentially in ROOT by:
root
[ ] TFile f("AnalysisSkeleton.aan.root")
[ ] CollectionTree->MakeClass("CollectionTreeClassic")
- and insert all your analysis code in the method CollectionTreeClassic::Loop() of CollectionTreeClassic.C. There is also documenation how to start the event loop in 'CollectionTreeClassic.C'.
It is
strongly adviced to
always compile your code before execution in ROOT by using
.L CollectionTreeClassic.C++ in the interactive root session. Or even better: write code that runs outside the root-interactive-mode and use the interactive mode only for beautifing your paper plots.
3.2 Information on the web about PROOF
3.3 Prepare PROOF session
To analyse the
CollectionTree in parallel with several computing nodes we use PROOF.
- We need a newer version of root (e.g. v5.10). Open therefor a new terminal window.
cd /data/etp/<username>/Tutorial/11.0.41/PhysicsAnalysis/AnalysisCommon/UserAnalysis/UserAnalysis-00-05-11/run
ini cernlib_new
root-config --version
- Edit $HOME/.rootrc :
ProofServ.UseSSH: 1
- Edit $HOME/.rootauthrc :
default method ssh pt:no us:<username>
- Edit $HOME/.rootdaemonrc
#
# Everything allowed from the local host (for testing)
#
127.0.0.1 4 0 3 1 2 5
#
# secure methods allowed by default
default usrpwd ssh
- Option 1: Using xinetd
There is a PROOF master installed on etpopt01 with workers on etpopt01/2/3
(see /usr/local/root/proof/etc/proof.conf). They are activated automatically via xinetd.
Skip the next subsection and go to 3.4 and use gROOT->Proof("proofup://etpopt01:1093");
- Option 2: Using local proofd
If you'd like to use your own proofd on several different nodes follow the next steps. Only the user who started the proofd can use them.
- Edit $HOME/.proof.conf:
node localhost port=1093
slave etpopt02 port=1092
slave etpopt03 port=1093
- start a master proofd on the node where you start your interactive root session with:
ini cernlib_new (_dev) use at least root v5.06 !!
proofd -p 1093 -noauth -f (start daemon in foreground, use -d 1/2/3 for debugging)
- repeat this for every worker node, ie. log on etpopt02/etpopt03:
ini cernlib_new
proofd -p 1093 -noauth -f
3.4 Start PROOF
- Start an interactive root session and generate an PROOF analysis code skeleton:
root -l
[ ] TFile f("AnalysisSkeleton.aan.root")
[ ] CollectionTree->MakeSelector("CollectionTree")
- Have a look at CollectionTree.C and understand the code.
Copy the modified CollectionTree.C/h and the prooftest.C macro files from:
cp /data/etp/elmsheus/Tutorial/files/prooftest.C .
cp /data/etp/elmsheus/Tutorial/files/CollectionTree.C .
cp /data/etp/elmsheus/athena/Tutorial/files/CollectionTree.h .
The macro prooftest.C looks like:
{
gROOT->Proof("localhost:1093");
//gROOT->Proof("proofup://etpopt01:1093");
//gProof->SetLogLevel(4);
TDSet *set_mc = new TDSet("TTree","CollectionTree");
//TChain *set_mc = new TChain("TTree","CollectionTree");
set_mc->Add("AnalysisSkeleton.aan.root");
set_mc->Process("CollectionTree.C+");
}
- Start prooftest.C with:
.x prooftest.C