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
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)
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