def __init__(self, proxy=None, user=None): if proxy is None: proxy = os.getenv('X509_USER_PROXY') if not proxy or not os.path.isfile(proxy): raise Crab3ToolsException('X509_USER_PROXY is %r, get grid proxy first' % proxy) self.proxy = proxy if user is None: user = getUsernameFromCRIC() if not user: raise Crab3ToolsException('could not get username from CRIC, returned %r' % user) self.user = user
def __init__(self, proxy=None, user=None): if proxy is None: #proxy = os.getenv('X509_USER_PROXY') proxy = '/tmp/x509up_u' #personalize with your uid --> from terminal type echo $uid if not proxy or not os.path.isfile(proxy): raise Crab3ToolsException('X509_USER_PROXY is %r, get grid proxy first' % proxy) self.proxy = proxy if user is None: user = getUsernameFromCRIC() if not user: raise Crab3ToolsException('could not get username from CRIC, returned %r' % user) self.user = user
def getUsernameFromCRIC_wrapped(logger, quiet=False): """ Wrapper function for getUsernameFromCRIC, catching exceptions and printing messages. """ from CRABClient.UserUtilities import getUsernameFromCRIC username = None msg = "Retrieving username from CRIC..." if quiet: logger.debug(msg) else: logger.info(msg) try: username = getUsernameFromCRIC() except ProxyException as ex: msg = "%sError ProxyException%s: %s" % (colors.RED, colors.NORMAL, ex) if quiet: logger.debug(msg) else: logger.error(msg) except UsernameException as ex: msg = "%sError UsernameException%s: %s" % (colors.RED, colors.NORMAL, ex) if quiet: logger.debug(msg) else: logger.error(msg) except Exception: msg = "%sError GenericException%s: Failed to retrieve username from CRIC." % ( colors.RED, colors.NORMAL) msg += "\n%s" % (traceback.format_exc()) if quiet: logger.debug(msg) else: logger.error(msg) else: msg = "Username is: %s" % (username) if quiet: logger.debug(msg) else: logger.info(msg) return username
def getUsernameFromCRIC_wrapped(logger, quiet = False): """ Wrapper function for getUsernameFromCRIC, catching exceptions and printing messages. """ from CRABClient.UserUtilities import getUsernameFromCRIC username = None msg = "Retrieving username from CRIC..." if quiet: logger.debug(msg) else: logger.info(msg) try: username = getUsernameFromCRIC() except ProxyException as ex: msg = "%sError ProxyException%s: %s" % (colors.RED, colors.NORMAL, ex) if quiet: logger.debug(msg) else: logger.error(msg) except UsernameException as ex: msg = "%sError UsernameException%s: %s" % (colors.RED, colors.NORMAL, ex) if quiet: logger.debug(msg) else: logger.error(msg) except Exception: msg = "%sError GenericException%s: Failed to retrieve username from CRIC." % (colors.RED, colors.NORMAL) msg += "\n%s" % (traceback.format_exc()) if quiet: logger.debug(msg) else: logger.error(msg) else: msg = "Username is: %s" % (username) if quiet: logger.debug(msg) else: logger.info(msg) return username
config.General.transferOutputs = True config.General.transferLogs = True config.section_("JobType") config.JobType.allowUndistributedCMSSW = True config.JobType.pluginName = 'Analysis' config.JobType.psetName = 'PSet.py' config.JobType.maxMemoryMB = 2000 config.JobType.maxJobRuntimeMin = 1315 config.JobType.numCores = 1 config.JobType.scriptExe = 'crab_script_2018_tt_SL-TuneCP5down.sh' config.JobType.inputFiles = ['crab_script_2018_tt_SL-TuneCP5down.py', os.path.join(os.environ['CMSSW_BASE'],'src/PhysicsTools/NanoAODTools/scripts/haddnano.py'), ] config.JobType.outputFiles = ['hist.root'] config.JobType.sendPythonFolder = True config.section_("Data") config.Data.inputDataset = '/TTToSemiLeptonic_TuneCP5down_13TeV-powheg-pythia8/RunIIAutumn18NanoAODv7-Nano02Apr2020_102X_upgrade2018_realistic_v21-v1/NANOAODSIM' config.Data.inputDBS = 'global' config.Data.splitting = 'FileBased' if config.Data.splitting == 'FileBased': config.Data.unitsPerJob = 1 # config.Data.totalUnits = $TOTAL_UNITS # config.Data.userInputFiles = [] config.Data.outLFNDirBase = '/store/user/{user}/Fri13'.format(user=getUsernameFromCRIC()) config.Data.publication = True config.Data.outputDatasetTag = 'Fri13' config.section_("Site") config.Site.storageSite = 'T2_CH_CERN'
config.section_("JobType") config.JobType.allowUndistributedCMSSW = True config.JobType.pluginName = 'Analysis' config.JobType.psetName = 'PSet.py' config.JobType.maxMemoryMB = 2000 config.JobType.maxJobRuntimeMin = 1315 config.JobType.numCores = 1 config.JobType.scriptExe = 'crab_script_2018_tt_SL-GF-TuneCP5up.sh' config.JobType.inputFiles = [ 'crab_script_2018_tt_SL-GF-TuneCP5up.py', os.path.join(os.environ['CMSSW_BASE'], 'src/PhysicsTools/NanoAODTools/scripts/haddnano.py'), ] config.JobType.outputFiles = ['hist.root'] config.JobType.sendPythonFolder = True config.section_("Data") config.Data.inputDataset = '/TTToSemiLepton_HT500Njet9_TuneCP5up_13TeV-powheg-pythia8/RunIIAutumn18NanoAODv7-Nano02Apr2020_102X_upgrade2018_realistic_v21-v2/NANOAODSIM' config.Data.inputDBS = 'global' config.Data.splitting = 'FileBased' if config.Data.splitting == 'FileBased': config.Data.unitsPerJob = 1 # config.Data.totalUnits = $TOTAL_UNITS # config.Data.userInputFiles = [] config.Data.outLFNDirBase = '/store/user/{user}/Fri13'.format( user=getUsernameFromCRIC()) config.Data.publication = True config.Data.outputDatasetTag = 'Fri13' config.section_("Site") config.Site.storageSite = 'T2_CH_CERN'
this_config.JobType.pyCfgParams = [ 'isMC=%s' % isMC, 'reportEvery=1000', 'tag=%s' % production_tag, 'globalTag=%s' % globaltag, ] this_config.section_('User') this_config.section_('Site') this_config.Site.storageSite = 'T3_US_Brown' this_config.section_('Data') this_config.Data.publication = False this_config.Data.outLFNDirBase = '/store/user/{username}/DijetSkim/{production_tag}/{sample}'.format( username=getUsernameFromCRIC(), production_tag=production_tag, sample=sample) this_config.Data.outputDatasetTag = name # Outputs land at /store/user/dryu/DijetSkim/vX_Y_Z/sample/subsample this_config.Data.inputDBS = 'global' this_config.Data.inputDataset = dataset splitting_mode = info.get( "splitting", defaults.get("splitting", "Automatic")) if not splitting_mode in [ "Automatic", "FileBased", "LumiBased" ]: raise ValueError("Unrecognized splitting mode: {}".format( splitting_mode)) this_config.Data.splitting = splitting_mode
from CRABClient.UserUtilities import config, getUsernameFromCRIC config = config() ###REQUESTNAME config.General.workArea = 'crab_projects' config.General.transferLogs = True config.General.transferOutputs = True config.JobType.pluginName = 'PrivateMC' ###PSETNAME config.JobType.maxMemoryMB = 4000 config.JobType.numCores = 4 ###OUTPUTDATASET config.Data.outLFNDirBase = '/store/user/%s/' % (getUsernameFromCRIC()) ###OUTPUTTAG config.Data.splitting = 'EventBased' ###UNITSPERJOB ###NJOBS config.Data.totalUnits = config.Data.unitsPerJob * NJOBS config.Data.publication = True config.Site.storageSite = 'T2_KR_KNU'
if not fnmatch(name, args.filter): continue print 'submitting', name isMC = info['isMC'] this_config = config() this_config.section_('General') this_config.General.transferOutputs = True this_config.General.transferLogs = True this_config.General.workArea = 'JetSkim_%s' % production_tag this_config.section_('Data') this_config.Data.publication = False #this_config.Data.outLFNDirBase = '/store/group/cmst3/group/bpark/%s' % (this_config.General.workArea) this_config.Data.outLFNDirBase = '/store/user/{}/BParkingNANO/{}/'.format( getUsernameFromCRIC(), skim_version) this_config.Data.inputDBS = 'global' this_config.section_('JobType') this_config.JobType.pluginName = 'Analysis' this_config.JobType.psetName = '../test/run_nano_FFR_AllJpsiMuMu_cfg.py' this_config.JobType.maxJobRuntimeMin = 2750 this_config.JobType.allowUndistributedCMSSW = True this_config.section_('User') this_config.section_('Site') this_config.Site.storageSite = 'T3_US_Brown' this_config.Data.inputDataset = info['dataset'] % part \ if part is not None else \
assert(FILEBASED_NOF > 0) print("Using {} files per input when running with the FileBased option".format(FILEBASED_NOF)) is_private = bool(int(get_env_var('IS_PRIVATE'))) job_type = get_env_var('JOB_TYPE') dataset_name = get_env_var('DATASET') dataset_pattern = get_env_var('DATASET_PATTERN') dataset_match = re.match(dataset_pattern, dataset_name) if not dataset_match: raise ValueError("Dataset '%s' did not match to pattern '%s'" % (dataset_name, dataset_pattern)) id_head = '{}_{}'.format(NANOAOD_VER, CHUNK_VER) if CHUNK_VER else NANOAOD_VER id_ = '%s_%s__%s' % (id_head, dataset_match.group(1), dataset_match.group(2)) requestName = id_ outputDatasetTag = id_ crabUserName = getUsernameFromCRIC() max_outputDatasetTag_len = 160 - len(crabUserName) if len(outputDatasetTag) > max_outputDatasetTag_len: outputDatasetTag = outputDatasetTag[:max_outputDatasetTag_len] if len(requestName) > 100: requestName_new = requestName[:90] + requestName[-10:] print("Changing old request name '{rqname_old}' -> '{rqname_new}'".format( rqname_old = requestName, rqname_new = requestName_new, )) requestName = requestName_new config = config()
config.section_('JobType') config.JobType.pluginName = 'Analysis' config.JobType.psetName = 'run_muonAnalizer_cfg.py' config.JobType.pyCfgParams = [ 'isFullAOD=True', 'isMC=False', 'globalTag=103X_dataRun2_Prompt_v3', 'reportEvery=100000', 'maxEvents=-1' ] config.JobType.maxMemoryMB = 2000 config.JobType.maxJobRuntimeMin = 500 config.JobType.outputFiles = ['TnPtree_PbPb_with_pp_AOD.root'] config.JobType.allowUndistributedCMSSW = True #allow use of SL7 config.section_('Data') config.Data.inputDataset = '/HISingleMuon/HIRun2018A-04Apr2019-v1/AOD' config.Data.inputDBS = 'global' config.Data.unitsPerJob = 10 config.Data.splitting = 'LumiBased' #config.Data.totalUnits = 10 #config.Data.runRange = '326381-327564' config.Data.runRange = '327000-327100' config.Data.lumiMask = '/afs/cern.ch/cms/CAF/CMSCOMM/COMM_DQM/certification/Collisions18/HI/PromptReco/Cert_326381-327564_HI_PromptReco_Collisions18_JSON_HF_and_MuonPhys.txt' config.Data.outLFNDirBase = '/store/group/phys_heavyions/%s/TagAndProbe/PbPbTest/TnP_PbPb/%s' % ( getUsernameFromCRIC(), config.General.requestName) config.Data.publication = False config.section_('Site') config.Site.whitelist = [ 'T1_US_*', 'T2_US_*', 'T1_FR_*', 'T2_FR_*', 'T2_CH_CERN' ] config.Site.storageSite = 'T2_CH_CERN'
config.section_("General") config.General.requestName = 'HLT_noCaloRoiPF_step1_30-50' config.General.workArea = 'crab_projects' config.General.transferOutputs = True config.General.transferLogs = True config.section_("JobType") config.JobType.pluginName = 'Analysis' config.JobType.psetName = 'step1_RAW2DIGI_L1Reco_RECO_RECOSIM_EI_VALIDATION_DQM_noCaloRoiPF.py' config.JobType.sendPythonFolder = True config.JobType.allowUndistributedCMSSW = True config.JobType.maxMemoryMB = 8000 config.JobType.numCores = 8 config.section_("Data") config.Data.inputDataset = '/QCD_Pt-30To50_MuEnrichedPt5_TuneCP5_14TeV-pythia8/mullerd-step0_3rd_retry-1b6b10f4d737e49cdc03478bd3b6a0e0/USER' config.Data.inputDBS = 'phys03' #config.Data.splitting = 'FileBased' #config.Data.unitsPerJob = 1 config.Data.splitting = 'Automatic' config.Data.publication = False config.Data.outLFNDirBase = '/store/user/%s/HLT_noCaloRoiPF_step1_retry/30-50/' % (getUsernameFromCRIC()) config.Data.outputDatasetTag = 'step1_retry' config.section_("Site") config.Site.storageSite = 'T1_DE_KIT_Disk' config.section_("User") config.User.voGroup = 'dcms'
# filter names according to what we need if not fnmatch(name, args.filter): continue print 'submitting', name isMC = info['isMC'] this_config = config() this_config.section_('General') this_config.General.transferOutputs = True this_config.General.transferLogs = True this_config.General.workArea = 'BParkingNANO_%s' % production_tag this_config.section_('Data') this_config.Data.publication = False #this_config.Data.outLFNDirBase = '/store/group/cmst3/group/bpark/%s' % (this_config.General.workArea) this_config.Data.outLFNDirBase = '/store/user/{}/BParkingNANO/{}/'.format(getUsernameFromCRIC(), skim_version) this_config.Data.inputDBS = 'global' this_config.section_('JobType') this_config.JobType.pluginName = 'Analysis' this_config.JobType.psetName = '../test/run_nano_FFR_AllJpsiMuMu_cfg.py' #this_config.JobType.maxJobRuntimeMin = 2750 this_config.JobType.allowUndistributedCMSSW = True this_config.section_('User') this_config.section_('Site') this_config.Site.storageSite = 'T3_US_Brown' this_config.Data.inputDataset = info['dataset'] % part \ if part is not None else \