User Tools

Site Tools


btag:batchsub

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):
  <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"/>
   ...
  • 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
btag/batchsub.txt · Last modified: 2019/10/24 17:25 by iwn