===== Using batch submission for SFrame jobs =====
* Copy **BatchSubmission** to your analysis directory
cp -r ../../clange/ExoVV/Analysis/BatchSubmission/
* Create directories ''AnalysisOutput'' and ''AnalysisTemp'' parallel to ''BatchSubmissions''
mkdir AnalysisOutput AnalysisTemp
* Make sure you have an updated version of Python (Python 2.6 or later). You can use the Python version of CMSSW doing
cd ...CMSSW_5_3_13/src/
cmsenv
* 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''):
...
* 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).
loadLibs=[
"libMyTestPackage", # libraries you are using, order matters (separate by comma)
]
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
* 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''**