Example #1
0
def farmoutNtupleSkim(sample_name, path, selection, analysis, version, addScaleFacs):
    farmout_dict = {}
    selection_name = selection.split(":")[0]
    farmout_dict["input_files_path"] = ConfigureJobs.getInputFilesPath(
        sample_name, path, ConfigureJobs.getPreviousStep(selection_name, analysis), analysis
    )
    job_name = ConfigureJobs.getJobName(sample_name, analysis, selection_name, version)
    farmout_dict["base_dir"] = os.path.dirname(os.path.realpath(sys.argv[0]))
    submission_dir = (
        "/data/kelong/%s" if "kelong" in path else "/nfs_scratch/kdlong/%s"
    ) % "{:%Y-%m-%d}_WZAnalysisJobs".format(datetime.date.today())
    try:
        os.mkdir(submission_dir)
    except:
        pass
    farmout_dict["job_dir"] = submission_dir + "/" + job_name
    farmout_dict["files_per_job"] = getFilesPerJob(farmout_dict["input_files_path"])
    farmout_dict["job_name"] = job_name
    farmout_dict["time"] = datetime.datetime.now()
    farmout_dict["command"] = " ".join(sys.argv)
    script_name = "/".join([farmout_dict["job_dir"], "farmout.sh"])
    os.mkdir(farmout_dict["job_dir"])
    fillTemplatedFile("/".join([farmout_dict["base_dir"], "Templates/farmout_template.sh"]), script_name, farmout_dict)
    createRunJob(
        farmout_dict["base_dir"],
        farmout_dict["job_dir"],
        selection,
        analysis,
        ConfigureJobs.getTriggerName(sample_name, selection_name),
        addScaleFacs and ("data" not in sample_name),
    )
    status = callFarmout(farmout_dict["job_dir"], script_name)
    if status == 0:
        print "Submitted jobs for %s file set to condor." % sample_name
Example #2
0
def main():
    # for selection in selection_map.iteritems():
    args = getComLineArgs()
    path = "/cms/kdlong" if "hep.wisc.edu" in os.environ["HOSTNAME"] else "/afs/cern.ch/user/k/kelong/work"
    if args["filelist"] == ["WZxsec2016"]:
        args["filelist"] = json.load(
            open("/afs/cern.ch/user/k/kelong/work/AnalysisDatasetManager/FileInfo/WZxsec2016/ntuples.json")
        ).keys()
    for file_name in ConfigureJobs.getListOfFiles(args["filelist"], path):
        try:
            farmoutNtupleSkim(
                file_name, path, args["selection"], args["analysis"], args["version"], args["addScaleFacs"]
            )
        except (ValueError, OSError) as error:
            logging.warning(error)
            logging.warning("Skipping submission for %s" % file_name)
Example #3
0
def buildCutString(state, selection, analysis, trigger):
    cut_string = CutString()
    selection_json = ConfigureJobs.getCutsJsonName(selection, analysis)
    cuts = UserInput.readJson(selection_json)
    cut_string.append(cuts["Event"])
    cut_string.append(cuts["State"][state])
    if trigger != "" and not cut_string.contains(trigger):
        cut_string.append(getTriggerCutString(trigger, analysis))
    counts = dict((lep, state.count(lep)) for lep in state)
    current = dict((lep, 0) for lep in state)
    for lep in state:
        current[lep] += 1
        lep_name = ''.join([lep, "" if counts[lep] == 1 else str(current[lep])])
        for cut in cuts["Object"][lep]:
            cut_string.append(cut.format(object_name=lep_name))
    return cut_string