| Next revisionBoth sides next revision |
btag:batchsub [2014/04/22 16:53] – created taarre | btag:batchsub [2019/10/24 17:24] – 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 = [\\ | loadPacks=["SFrameCore.par", |
["InputTreeName" ,"tree"],//your //global// user items\\ | "MyTestPackage.par", # name of your SFrame package+.par |
]\\ | ] |
\\ | |
#End''\\ | compilePacks=[ |
* 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)\\ | "../AnalysisPackage", # name of your SFrame package |
''#! /usr/bin/python\\ | ] |
# -*- coding: utf-8 -*-\\ | |
\\ | AddUserItems = [ |
path2xml="$HOME/ExoVV/Analysis/BatchSubmission/xmls" //path to xmls\\ | ["InputTreeName" ,"tree"], #your global user items |
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)\\ | #End |
cycleName="MyTestAnalysis" //**important!** must match SFrame cycle name (see sframe config file)\\ | </code> |
nEventsMax=-1 //nr events\\ | * 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) |
nProcesses=2\\ | <code> |
nFiles=2 //nr of files per job\\ | #! /usr/bin/python |
hCPU="00:30:00"\\ | # -*- coding: utf-8 -*- |
hVMEM="3000M"\\ | |
postFix = ""\\ | 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) |
dataSets=[\\ | outDir="$HOME/ExoVV/Analysis/AnalysisOutput" # path to output directory |
["Test", ["test"]], //Output name and name of xml containing in file names\\ | jobName="clTestJob" # name of job (optional name) |
]\\ | cycleName="MyTestAnalysis" # **important!** must match SFrame cycle name (see sframe config file) |
\\ | nEventsMax=-1 # nr events |
userItems = [\\ | nProcesses=2 |
# ["InputTreeName", "tree"], // job specific item names\\ | nFiles=2 # nr of files per job |
]\\ | hCPU="00:30:00" |
\\ | hVMEM="3000M" |
jobOptionsFile2=open("MyTestAnalysisOptions.py", 'r')//name of file containing global item names and libraries\\ | postFix = "" |
command2=""\\ | |
for i in [o for o in jobOptionsFile2.readlines()]:\\ | dataSets=[ |
if ("#E" + "nd") in i : break\\ | ["Test", ["test"]], # Output name and name of xml containing in file names |
command2+=i\\ | ] |
jobOptionsFile2.close()\\ | |
exec command2\\ | userItems = [ |
userItems += AddUserItems\\ | # ["InputTreeName", "tree"], # job specific item names |
\\ | ] |
inputTrees=["ntuplizer/tree"]//name of intput tree\\ | |
outputTrees=["analysis"]//name of output tree\\'' | 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\\ | * Compile and run from **BatchSubmission** with\\ |
''python submitSFrame.py -j test.py --batch''\\ | ''python submitSFrame.py -j test.py --batch''\\ |
* Output files stored under **AnalysisOutput** | * Output files stored under **AnalysisOutput** |
| |