Next revision | Previous revision |
btag:batchsub [2014/04/22 16:53] – created taarre | btag:batchsub [2019/10/24 17:25] (current) – iwn |
---|
| |
| |
* Copy **BatchSubmission** to your analysis directory\\ | * Copy **BatchSubmission** to your analysis directory |
''cp -r ../../clange/ExoVV/Analysis/BatchSubmission/''\\ | <code> |
* Create directories AnalysisOutput and AnalysisTemp parallel to BatchSubmissions\\ | cp -r ../../clange/ExoVV/Analysis/BatchSubmission/ |
''mkdir AnalysisOutput AnalysisTemp''\\ | </code> |
* Make sure you have an updated version of Python (Python 2.6 or later). You can use the Python version of CMSSW doing \\ | * Create directories ''AnalysisOutput'' and ''AnalysisTemp'' parallel to ''BatchSubmissions'' |
''cd ...CMSSW_5_3_13/src/\\ | <code> |
cmsenv'' | mkdir AnalysisOutput AnalysisTemp |
* Create your list of infiles in an .xml file and store it under **BatchSubmission/xmls/**. Use only name of infile and lumi (see test.xml):\\ | </code> |
''<In FileName="dcap://t3se01.psi.ch:22125//pnfs/psi.ch/cms/trivcat/store/user/jngadiub/Thea/FLATtuple/HH4b_1000_newCones8/flatTuple_Graviton_1000_newCones8_1.root" Lumi="1.0"/>\\ | * Make sure you have an updated version of Python (Python 2.6 or later). You can use the Python version of CMSSW doing |
<In FileName="dcap://t3se01.psi.ch:22125//pnfs/psi.ch/cms/trivcat/store/user/jngadiub/Thea/FLATtuple/HH4b_1000_newCones8/flatTuple_Graviton_1000_newCones8_2.root" Lumi="1.0"/>\\ | <code> |
<In FileName="dcap://t3se01.psi.ch:22125//pnfs/psi.ch/cms/trivcat/store/user/jngadiub/Thea/FLATtuple/HH4b_1000_newCones8/flatTuple_Graviton_1000_newCones8_3.root" Lumi="1.0"/>\\ | cd ...CMSSW_5_3_13/src/ |
......''\\ | cmsenv |
* Create new or edit **BatchSubmission/MyTestAnalysisOptions.py**. This will be the same for all jobs (signal and background) and should only contain global variables and libraries used (see comments under).\\ | </code> |
''loadLibs=[\\ | * Create your list of infiles in an .xml file and store it under **''BatchSubmission/xmls/''**. Use only name of infile and lumi (see ''test.xml''): |
"libMyTestPackage", //libraries you are using, order matters (separate by comma)\\ | <code> |
]\\ | <In FileName="dcap://t3se01.psi.ch:22125//pnfs/psi.ch/cms/trivcat/store/user/jngadiub/Thea/FLATtuple/HH4b_1000_newCones8/flatTuple_Graviton_1000_newCones8_1.root" Lumi="1.0"/> |
\\ | <In FileName="dcap://t3se01.psi.ch:22125//pnfs/psi.ch/cms/trivcat/store/user/jngadiub/Thea/FLATtuple/HH4b_1000_newCones8/flatTuple_Graviton_1000_newCones8_2.root" Lumi="1.0"/> |
\\ | <In FileName="dcap://t3se01.psi.ch:22125//pnfs/psi.ch/cms/trivcat/store/user/jngadiub/Thea/FLATtuple/HH4b_1000_newCones8/flatTuple_Graviton_1000_newCones8_3.root" Lumi="1.0"/> |
loadPacks=["SFrameCore.par",\\ | ... |
"MyTestPackage.par", //name of your SFrame package+.par\\ | </code> |
]\\ | * Create new or edit **''BatchSubmission/MyTestAnalysisOptions.py''**. This will be the same for all jobs (signal and background) and should only contain global variables and libraries used (see comments under). |
\\ | <code> |
compilePacks=[\\ | loadLibs=[ |
"../AnalysisPackage", //name of your SFrame package\\ | "libMyTestPackage", # libraries you are using, order matters (separate by comma) |
]\\ | ] |
\\ | |
AddUserItems = [\\ | |
["InputTreeName" ,"tree"],//your //global// user items\\ | |
]\\ | |
\\ | |
#End''\\ | |
* Create python script with job specific configurations (one for signal, one for background), see **BatchSubmission/test.py**. Here you add all job specific item names, name of in and output file etc (see comments under)\\ | |
''#! /usr/bin/python\\ | |
# -*- coding: utf-8 -*-\\ | |
\\ | |
path2xml="$HOME/ExoVV/Analysis/BatchSubmission/xmls" //path to xmls\\ | |
path2tmp="$HOME/ExoVV/Analysis/AnalysisTemp" //path to temporary directory (create this if you have not done so already)\\ | |
outDir="$HOME/ExoVV/Analysis/AnalysisOutput" //path to output directory\\ | |
jobName="clTestJob" //name of job (optional name)\\ | |
cycleName="MyTestAnalysis" //**important!** must match SFrame cycle name (see sframe config file)\\ | |
nEventsMax=-1 //nr events\\ | |
nProcesses=2\\ | |
nFiles=2 //nr of files per job\\ | |
hCPU="00:30:00"\\ | |
hVMEM="3000M"\\ | |
postFix = ""\\ | |
\\ | |
dataSets=[\\ | |
["Test", ["test"]], //Output name and name of xml containing in file names\\ | |
]\\ | |
\\ | |
userItems = [\\ | |
# ["InputTreeName", "tree"], // job specific item names\\ | |
]\\ | |
\\ | |
jobOptionsFile2=open("MyTestAnalysisOptions.py", 'r')//name of file containing global item names and libraries\\ | |
command2=""\\ | |
for i in [o for o in jobOptionsFile2.readlines()]:\\ | |
if ("#E" + "nd") in i : break\\ | |
command2+=i\\ | |
jobOptionsFile2.close()\\ | |
exec command2\\ | |
userItems += AddUserItems\\ | |
\\ | |
inputTrees=["ntuplizer/tree"]//name of intput tree\\ | |
outputTrees=["analysis"]//name of output tree\\'' | |
* Compile and run from **BatchSubmission** with\\ | |
''python submitSFrame.py -j test.py --batch''\\ | |
* Output files stored under **AnalysisOutput** | |
| |
| loadPacks=["SFrameCore.par", |
| "MyTestPackage.par", # name of your SFrame package+.par |
| ] |
| |
| compilePacks=[ |
| "../AnalysisPackage", # name of your SFrame package |
| ] |
| |
| AddUserItems = [ |
| ["InputTreeName" ,"tree"], #your global user items |
| ] |
| |
| #End |
| </code> |
| * Create python script with job specific configurations (one for signal, one for background), see **''BatchSubmission/test.py''**. Here you add all job specific item names, name of in and output file etc (see comments under) |
| <code> |
| #! /usr/bin/python |
| # -*- coding: utf-8 -*- |
| |
| path2xml="$HOME/ExoVV/Analysis/BatchSubmission/xmls" //path to xmls |
| path2tmp="$HOME/ExoVV/Analysis/AnalysisTemp" # path to temporary directory (create this if you have not done so already) |
| outDir="$HOME/ExoVV/Analysis/AnalysisOutput" # path to output directory |
| jobName="clTestJob" # name of job (optional name) |
| cycleName="MyTestAnalysis" # **important!** must match SFrame cycle name (see sframe config file) |
| nEventsMax=-1 # nr events |
| nProcesses=2 |
| nFiles=2 # nr of files per job |
| hCPU="00:30:00" |
| hVMEM="3000M" |
| postFix = "" |
| |
| dataSets=[ |
| ["Test", ["test"]], # Output name and name of xml containing in file names |
| ] |
| |
| userItems = [ |
| # ["InputTreeName", "tree"], # job specific item names |
| ] |
| |
| jobOptionsFile2=open("MyTestAnalysisOptions.py", 'r') # name of file containing global item names and libraries |
| command2="" |
| for i in [o for o in jobOptionsFile2.readlines()]: |
| if ("#E" + "nd") in i : break |
| command2+=i |
| jobOptionsFile2.close() |
| exec command2 |
| userItems += AddUserItems |
| |
| inputTrees=["ntuplizer/tree"] # name of intput tree |
| outputTrees=["analysis"] # name of output tree |
| </code> |
| * Compile and run from **''BatchSubmission''** with |
| <code> |
| python submitSFrame.py -j test.py --batch |
| </code> |
| * Output files stored under **''AnalysisOutput''** |