...
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% 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"); |
...
In order to run over your own ntuple you need only to create a new FileEvent
:unmigrated-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:
{{\ 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.
...