Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
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
Esempio n. 4
0
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'
Esempio n. 7
0
                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
Esempio n. 8
0
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'
Esempio n. 9
0
                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 \
Esempio n. 10
0
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()
Esempio n. 11
0
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'
Esempio n. 13
0
        # 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 \