...
The code is in SVN and can be found by doing:
Code Block |
---|
phansson@pcphuat27]/u1/phansson/jetmetbtag% svn co svn+ssh://phansson@svn.cern.ch/reps/atlasgrp/Institutes/SLAC/FlatAna |
In order to run it you need a few packages that is used:
ROOT
Root is needed.
GRL
Code Block |
---|
phansson@pcphuat27]/u1/phansson/jetmetbtag% svn co svn+ssh://phansson@svn.cern.ch/reps |
...
/atlasoff/DataQuality/GoodRunsLists/tags/GoodRunsLists-00-00-84 GoodRunsLists
|
Compile this package:
Code Block |
---|
phansson@pcphuat27]/u1/phansson/jetmetbtag% cd DataQuality/GoodRunList/cmt
phansson@pcphuat27]/u1/phansson/jetmetbtag/DataQuality/GoodRunList/cmt% gmake -f Makefile.Standalone
|
Copy the shared library to the topology directory where you will run your jobs (thi can be improve at some point):
Code Block |
---|
phansson@pcphuat27]/u1/phansson/jetmetbtag/DataQuality/GoodRunList% cp ../Standalone/libGoodRunsList.so ../../FlatAna/trunk/topologies/jetmetbtag/
|
JES uncertainty provider package:
Code Block |
---|
phansson@pcphuat27]/u1/phansson/jetmetbtag% svn co svn+ssh://phansson@svn.cern.ch/reps/atlasoff/Reconstruction/Jet/JetUncertainties/tags/JetUncertainties-00-01-02 JetUncertainties
|
This package will be compiled on the fly by FlatAna but you need to copy the root file to the topology directory:
Code Block |
---|
phansson@pcphuat27]/u1/phansson/jetmetbtag% cp JetUncertainty/JESUncertaintyProvider/share/JESUncertainty.root FlatAna/trunk/topologies/jetmetbtag/
|
Trigger Navigation Tools:
Code Block |
---|
phansson@pcphuat27]/u1/phansson/jetmetbtag% svn co svn+ssh://phansson@svn.cern.ch/reps/atlasoff/Trigger/TrigAnalysis/TriggerMenuNtuple/tags/TriggerMenuNtuple-00-01-32 TriggerMenuNtuple
|
This package MUST be compiled first!
Code Block |
---|
phansson@pcphuat27]/u1/phansson/jetmetbtag% cd TriggerMenuNtuple/cmd
|
Edit the Makefile in this directory. You must remove the two instances of "-m32" lines 15,20.
Code Block |
---|
phansson@pcphuat27]/u1/phansson/jetmetbtag/TriggerMenuNtuple/cmd% make
|
you might need to check that the path to this package are correct in ana.C (your run directory e.g. topology/jetmetbtag/), in particular check a few hard-coded paths (not very nice):
Code Block |
---|
gSystem->AddIncludePath(" -I../../../../DataQuality/GoodRunsLists/");
gSystem->AddIncludePath(" -I../../../../JetUncertainties/");
gSystem->CompileMacro("../../../../JetUncertainties/src/JESUncertaintyProvider.cxx","k");
gSystem->AddIncludePath(" -I../../../../TriggerMenuNtuple");
gSystem->Load("../../../../TriggerMenuNtuple/lib/libTriggerMenuNtuple.so","k");
|
...
Run an example
In order to run on the example you need a ntuple. This example runs on ntuples in e.g.an ntuple:
/u1/data/user09.DavidWilkinsMiller.trigger.v02.SethCaughron.misal1_mc12.EnhancedBias_1031.digit.RDO.v13004004_AANT_PHCOPY_SLIM/
If you run on pcphuat27 then you don't need to manipulate the filelists as described below: user.bcbutler.susySlim11.v1.simple_Bb_B200_L100_herwigpp_susy.merge.NTUP_SUSY.e636_s933_s946_r1831_r1700_p364/
Make sure you manipulate the filelist:
- Open
flatana/filelist/filelist.txt
and change the path (top line) and directory/path name to match your own paths. - e.g.: change top line-> "/u1/data/"
- find the line: "BbB200L100.susy011 1.0 13.0 usr/p/phansson/data/user.bcbutler.susySlim11.v1.simple_Bb_B200_L100_herwigpp_susy.merge.NTUP_SUSY.e636_s933_s946_r1831_r1700_p364/"
- And change it to: "BbB200L100.susy011 1.0 13.0 user.bcbutler.susySlim11.v1.simple_Bb_B200_L100_herwigpp_susy.merge.NTUP_SUSY.e636_s933_s946_r1831_r17\
BbB200L100.susy011 1.0 13.0 user.bcbutler.susySlim11.v1.simple_Bb_B200_L100_herwigpp_susy.merge.NTUP_SUSY.e636_s933_s946_r1831_r1700_p364/"
All the needed compilations are done automatically in the main root macro ana.C
.There is an example in the topologies/example/
directory to start from:
phansson@pcphuat27 The analysis class Topology_cutflow
can be run with:
Code Block |
---|
[phansson@pcphuat27]/u1/phansson/jetmetbtag% cd |
...
FlatAna/trunk/topologies/ |
...
jetmetbtag [phansson@pcphuat27]/u1/phansson/ |
...
temp/flatana_test/FlatAna/trunk/topologies/ |
...
jetmetbtag% root -l
root [0] .L ana.C
root [1] ana("cutflow","BbB200L100.susy011",100)
|
This should produce root files containing some basic histograms and a log file with event statistics. Have a look at the next section to get more info on what was going on and how to use a generic ntuple.
...
In order to run over your own ntuple you need only to create a new FileEvent
:
phansson@pcphuat27[]
/u1/phansson/jetmetbtag/flatana/trunk/topologies/example% cp FileEvent_template.h FileEvent_trg.h
phansson@pcphuat27[]
/u1/phansson/jetmetbtag/flatana/trunk/topologies/example% cp FileEvent_template.cxx FileEvent_trg.cxx
Then open your root file (e.g. ntuple.root) and do a makeclass:
phansson@pcphuat27[]
/u1/phansson/jetmetbtag/flatana/trunk/topologies/example% root -l /u1/data/user09.DavidWilkinsMiller.trigger.v02.SethCaughron.misal1_mc12.EnhancedBias_1031.digit.RDO.v13004004_AANT_PHCOPY_SLIM/user09.DavidWilkinsMiller.trigger.v02.SethCaughron.misal1_mc12.EnhancedBias_1031.digit.RDO.v13004004.AANT._00001_slim.root
root
1
CollectionTree->MakeClass("slimclass")
...
- Find the line
/***** ADD YOUR OWN NTUPLE TYPE BELOW
and make sure that your new FileEvent class is compiled. - Find the line
/
****
*
* ADD YOUR OWN FILEEVENT NTUPLE FORMAT BELOW * **
*
**
/
and make sure that your FileEvent class is loaded (the string in the file list name given as argument is used to determine what file type should be used)
Now you are ready to run. Use the simple helper script ana.sh
which is good to schedule several jobs at the same time as in the example above or run directly in ROOT:
phansson@pcphuat27[]
/u1/phansson/jetmetbtag/flatana/trunk/topologies/example% root -l
root
0
.L ana.C
root
1
ana(14,"tt.trg",10)
...