-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlaunch_crab.py
153 lines (122 loc) · 6.68 KB
/
launch_crab.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#Here: standard crab config file
from CRABClient.UserUtilities import config, getUsernameFromSiteDB
import sys
config = config()
config.General.workArea = 'crab_projects'
config.General.transferOutputs = True
config.General.transferLogs = True
config.JobType.pluginName = 'Analysis'
config.JobType.psetName = 'python/ReclusterJets.py'
#config.JobType.inputFiles = ['data']
config.General.requestName = 'QCD_test'
config.Data.inputDataset = '/VBFH_HToSSTobbbb_MH-125_MS-40_ctauS-0_TuneCUETP8M1_13TeV-powheg-pythia8_PRIVATE-MC/lbenato-RunIISummer16-PU_standard_mixing-Moriond17_80X_mcRun2_2016_MINIAOD-28028af67189b3de7224b79195bd0e1d/USER'
config.Data.inputDBS = 'global'
config.Data.splitting = 'EventAwareLumiBased'
config.Data.unitsPerJob = 10000
config.Data.outLFNDirBase = '/store/user/lbenato/choose_a_folder_name'
config.Data.publication = False
config.Site.storageSite = 'T2_DE_DESY'
config.Site.blacklist = ['T2_FR_IPHC']
if __name__ == '__main__':
from CRABAPI.RawCommand import crabCommand
from CRABClient.ClientExceptions import ClientException
from httplib import HTTPException
def submit(config):
try:
crabCommand('submit', config = config)
except HTTPException as hte:
print "Failed submitting task: %s" % (hte.headers)
except ClientException as cle:
print "Failed submitting task: %s" % (cle)
# Selection of samples via python lists
import os
from Analyzer.PFJetTrackVertexAssociation.samples import sample, samples
list_of_samples = ["QCD","QCD_Pt_15to30","QCD_Pt_30to50","QCD_Pt_80to120"]#,"data_obs"
print "Possible subgroups of samples:"
for a in list_of_samples:
print a
print "---------------"
########parser#######
import optparse
usage = "usage: %prog [options]"
parser = optparse.OptionParser(usage)
parser.add_option("-a", "--crabaction", action="store", type="string", dest="crabaction", default="test")
parser.add_option("-l", "--lists", action="store", type="string", dest="lists", default="")
parser.add_option("-g", "--groupofsamples", action="store", type="string", dest="groupofsamples", default="")
(options, args) = parser.parse_args()
####################
folder = ''
pset = ''
workarea = ''
from Analyzer.PFJetTrackVertexAssociation.crab_requests_lists import * #This list is fine for us!
#crabConfig = 'crabConfig.py'
pset = "ReclusterJets.py"
folder = "test" #CHANGE here your crab folder name
outLFNDirBase = "/store/user/lbenato/"+folder #CHANGE here according to your username!
workarea = "/nfs/dust/cms/user/lbenato/" + folder #CHANGE here according to your username!
####################!!!!!####!#!#!#!#!#!#!
selected_requests = {}
if options.groupofsamples not in list_of_samples:
print "Invalid subgroup of samples, aborting!"
exit()
for b, k in enumerate(requests.keys()):
if k in samples[options.groupofsamples]["files"]:
print k
selected_requests[k] = requests[k]
for a, j in enumerate(selected_requests):
# submission of the python config
if options.crabaction=="submit":
config.Data.inputDBS = "global"
os.system('echo submitting this config...\n')
#modify parameters here
config.General.requestName = j
config.Data.inputDataset = selected_requests[j]
config.JobType.psetName = "python/" + pset
config.Data.outLFNDirBase = outLFNDirBase
config.General.workArea= workarea
#if isData:
# config.Data.lumiMask = 'https://cms-service-dqm.web.cern.ch/cms-service-dqm/CAF/certification/Collisions16/13TeV/ReReco/Final/Cert_271036-284044_13TeV_23Sep2016ReReco_Collisions16_JSON.txt'
# #config.Data.splitting = 'Automatic'
# config.Data.unitsPerJob = 100000
#config.JobType.pyCfgParams = [string_runLocal, string_isData, string_isREHLT, string_isReReco, string_isReMiniAod, string_isPromptReco,string_noLHEinfo, string_isbbH, string_isSignal, string_GT, string_JECstring, string_jsonName, string_triggerTag, string_filterString]
print config
submit(config)
elif options.crabaction=="status":
os.system('echo status -d ' + workarea + '/crab_'+j+'\n')
os.system('crab status -d ' + workarea + '/crab_'+j+'\n')
os.system('echo ----------------------------------------------------\n')
elif options.crabaction=="resubmit":
os.system('echo resubmit -d ' + workarea + '/crab_'+j+'\n')
os.system('crab resubmit -d ' + workarea + '/crab_'+j+'\n')
elif options.crabaction=="getoutput":
os.system('echo getoutput -d ' + workarea + '/crab_'+j+'\n')
os.system('crab getoutput -d ' + workarea + '/crab_'+j+'\n')
elif options.crabaction=="kill":
os.system('echo kill -d ' + workarea + '/crab_'+j+'\n')
os.system('crab kill -d ' + workarea + '/crab_'+j+'\n')
elif options.crabaction=="report":
os.system('echo report -d ' + workarea + '/crab_'+j+'\n')
os.system('crab report -d ' + workarea + '/crab_'+j+'\n')
elif options.crabaction=="test":
if "VBFH_HToSS" in j:
#automatic implementation of the choice bewteen inputDBS global/phys03
config.Data.inputDBS = "phys03"
else:
config.Data.inputDBS = "global"
os.system('echo submitting this config...\n')
#modify parameters here
config.General.requestName = j
config.Data.inputDataset = selected_requests[j]
config.JobType.psetName = "python/" + pset
config.Data.outLFNDirBase = outLFNDirBase
config.General.workArea= workarea
#if isData:
# config.Data.lumiMask = 'https://cms-service-dqm.web.cern.ch/cms-service-dqm/CAF/certification/Collisions16/13TeV/ReReco/Final/Cert_271036-284044_13TeV_23Sep2016ReReco_Collisions16_JSON.txt'
# #config.Data.splitting = 'Automatic'
# config.Data.unitsPerJob = 100000
#config.JobType.pyCfgParams = [string_runLocal, string_isData, string_isREHLT, string_isReReco, string_isReMiniAod, string_isPromptReco,string_noLHEinfo, string_isbbH, string_isSignal, string_GT, string_JECstring, string_jsonName, string_triggerTag, string_filterString]
print config
else:
print "Invalid crab action. Please type: -a submit/status/resubmit/getoutput/kill"
exit()
os.system('echo -%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-\n')