...
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!>cd
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.>make
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 (int the topology directory.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 an ntuple:
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
.
Wiki Markup |
---|
There is an example in the {{topologies/example/}} directory to start from:
{{\[\]}}{{/u1/phansson/jetmetbtag% cd flatana/trunk/topologies/jetmetbtag}} |
The The analysis class Topology_cutflow
can be run with: \ Wiki Markup
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
:
{{\ Wiki Markup [
\]
}}{{/u1/phansson/jetmetbtag/flatana/trunk/topologies/example%
cp
FileEvent_template.h
FileEvent_trg.h
}}
{{\[\]}}{{
[]
/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:
{{\ Wiki Markup [
\]
}}{{/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]}} {{
root
1
CollectionTree->MakeClass("slimclass")
}}
Open slimclass.h
and
- Copy the declarations of variables and branches to
FileEvent_trg.h
(as private members). - Copy only the initialization of the variables and SetBranchAddress from the
Init(TTree *tree)
function to the functionSetBranches()
inFileEvent_trg.cxx
(Note again that only the initialization of variables and SetBranchAddress() should be copied) - Open
FileEvent_trg.cxx
andFileEvent_trg.h
and search and replace template with trg
...
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:unmigrated-wiki-markup
{{\[
\]
}}{{/u1/phansson/jetmetbtag/flatana/trunk/topologies/example%
root
\ -l
}}
{{root}} {{[0]}} {{.L ana.C}}
{{root}} {{[1]}} {{
root
0
.L ana.C
root
1
ana(14,"tt.trg",10)
}}
This should produce some histograms and log files.
...