def processPAT(): global workingDir global dbsInst global dataType global doDry global patPublishName global nEventsPAT global nEventsDBS global patCffName global patLocation global patEventContent global jobEffPat global options global CrabJSON log.output("********** Preparing to produce the PAT-tuple **********") startTime = gmtime() pat = PatProducer(timestamp,workingDir,log); pat.createPatConfig(options.dataset,options.GlobalTag,dataType,options.doGenEvent,options.cmssw_ver,options.cmssw_ver_sample,options.flavourHistoryFilterPath,options.runOnMC,options.pat_config) patCffName = pat.getConfigFileName() #crab = CRABHandler(timestamp,workingDir,log); crab = CRABHandler(options.toptree_ver,timestamp,workingDir,log); #print "**"+crab.baseDir if not dbsInst == "": crab.setDBSInst(dbsInst) log.output(" ---> CRAB will use DBS instance "+dbsInst+" to look for your data.") if not doDry: crab.scaleJobsSize(options.dataset,options.RunSelection,1) # if to much jobs (>2500) we create new cfg with 2500 jobs crab.AdditionalCrabInput=getAdditionalInputFiles(crab.AdditionalCrabInput) crab.createCRABcfg("crab_pat_"+timestamp+".cfg", options.dataset, pat.getConfigFileName(), pat.getOutputFileName(), "PAT", bool(True), options.CEBlacklist, options.RunSelection, options.forceStandAlone) if not doDry: crab.submitJobs() nEventsDBS = crab.getnEventsDBS() crab.checkJobs() time.sleep(60) # to be shure the jobs are in done status patPublishName = crab.publishDataSet() nEventsPAT = crab.checkFJR() patLocation = crab.getOutputLocation() patEventContent = pat.dumpEventContent(patLocation) jobEffPat = crab.getJobEff() log.output("--> Job Efficiency: "+str(crab.getJobEff())) endTime = gmtime() log.output("--> The PAT production took "+ str((time.mktime(endTime)-time.mktime(startTime))/3600.0)+" hours.") log.appendToMSG("\n* PAT production information: ") if not crab.getOutputLocation() == "": log.appendToMSG("\n\t-> Data location: "+patLocation+"\n") log.appendToMSG("\t-> DataSet was published in DBS as: "+patPublishName) log.appendToMSG("\t-> Number of events processed: "+str(nEventsPAT))
def processPAT(): global workingDir global dbsInst global dataType global doDry global patPublishName global nEventsPAT global nEventsDBS global patCffName global patLocation global patEventContent global jobEffPat global options global CrabJSON log.output("********** Preparing to produce the PAT-tuple **********") startTime = gmtime() pat = PatProducer(timestamp, workingDir, log) pat.createPatConfig(options.dataset, options.GlobalTag, dataType, options.doGenEvent, options.cmssw_ver, options.cmssw_ver_sample, options.flavourHistoryFilterPath, options.runOnMC, options.pat_config) patCffName = pat.getConfigFileName() #crab = CRABHandler(timestamp,workingDir,log); crab = CRABHandler(options.toptree_ver, timestamp, workingDir, log) #print "**"+crab.baseDir if not dbsInst == "": crab.setDBSInst(dbsInst) log.output(" ---> CRAB will use DBS instance " + dbsInst + " to look for your data.") if not doDry: crab.scaleJobsSize( options.dataset, options.RunSelection, 1) # if to much jobs (>2500) we create new cfg with 2500 jobs crab.AdditionalCrabInput = getAdditionalInputFiles( crab.AdditionalCrabInput) crab.createCRABcfg("crab_pat_" + timestamp + ".cfg", options.dataset, pat.getConfigFileName(), pat.getOutputFileName(), "PAT", bool(True), options.CEBlacklist, options.RunSelection, options.forceStandAlone) if not doDry: crab.submitJobs() nEventsDBS = crab.getnEventsDBS() crab.checkJobs() time.sleep(60) # to be shure the jobs are in done status patPublishName = crab.publishDataSet() nEventsPAT = crab.checkFJR() patLocation = crab.getOutputLocation() patEventContent = pat.dumpEventContent(patLocation) jobEffPat = crab.getJobEff() log.output("--> Job Efficiency: " + str(crab.getJobEff())) endTime = gmtime() log.output("--> The PAT production took " + str((time.mktime(endTime) - time.mktime(startTime)) / 3600.0) + " hours.") log.appendToMSG("\n* PAT production information: ") if not crab.getOutputLocation() == "": log.appendToMSG("\n\t-> Data location: " + patLocation + "\n") log.appendToMSG("\t-> DataSet was published in DBS as: " + patPublishName) log.appendToMSG("\t-> Number of events processed: " + str(nEventsPAT))