# # Arguments # import argparse argParser = argparse.ArgumentParser(description = "Argument parser") argParser.add_argument('--logLevel', action='store', default='INFO', nargs='?', choices=['CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG', 'TRACE', 'NOTSET'], help="Log level for logging") argParser.add_argument('--small', action='store_true', help='Run only on a small subset of the data?', ) argParser.add_argument('--plot_directory', action='store', default='JEC/PUjets') args = argParser.parse_args() # # Logger # import JetMET.tools.logger as logger import RootTools.core.logger as logger_rt logger = logger.get_logger( args.logLevel, logFile = None) logger_rt = logger_rt.get_logger(args.logLevel, logFile = None) ## JEC on the fly #from JetMET.JetCorrector.jetCorrectors_Spring16 import jetCorrector_data, jetCorrector_mc # ## pT_corr = pT_raw*L1(pT_raw)*L2L3(pT_raw*L1(pT_raw))*L2L3Res(pT_raw*L1(pT_raw)*L2L3(pT_raw*L1(pT_raw))) #jetCorrector_L1MC = jetCorrector_mc.reduceLevels(correctionLevels = ['L1FastJet'] ) #jetCorrector_L1Data = jetCorrector_data.reduceLevels(correctionLevels = ['L1FastJet'] ) #jetCorrector_L1L2L3MC = jetCorrector_mc.reduceLevels(correctionLevels = ['L1FastJet', 'L2Relative', 'L3Absolute'] ) #jetCorrector_L1L2L3Data = jetCorrector_data.reduceLevels(correctionLevels = ['L1FastJet', 'L2Relative', 'L3Absolute'] ) #jetCorrector_L1L2L3ResData = jetCorrector_data.reduceLevels(correctionLevels = ['L1FastJet', 'L2Relative', 'L3Absolute', 'L2L3Residual'] ) if args.small: args.plot_directory += "_small" #
argParser.add_argument('--small', action='store_true', help='Run only on a small subset of the data?')#, default = True) argParser.add_argument('--maxEvents', action='store', type=int, default=-1, help='Maximum number of events') argParser.add_argument('--maxFiles', action='store', type=int, default=-1, help='Maximum number of files') argParser.add_argument('--targetDir', action='store', default='hem/v2') argParser.add_argument('--sample', action='store', default='/DYJetsToLL_M-50_TuneCP5_13TeV-madgraphMLM-pythia8/RunIIAutumn18MiniAOD-102X_upgrade2018_realistic_v15-v1/MINIAODSIM') argParser.add_argument('--nJobs', action='store', nargs='?', type=int, default=1, help="Maximum number of simultaneous jobs.") argParser.add_argument('--job', action='store', nargs='?', type=int, default=0, help="Run only job i") argParser.add_argument('--overwrite', action='store_true', help='overwrite?')#, default = True) args = argParser.parse_args() # # Logger # import JetMET.tools.logger as logger import RootTools.core.logger as logger_rt logger = logger.get_logger( args.logLevel, logFile = None) logger_rt = logger_rt.get_logger(args.logLevel, logFile = None) if args.small: args.targetDir += "_small" sample_name = args.sample.lstrip('/').replace('/','_') if args.small: maxN = 1 elif args.maxFiles>0: maxN = args.maxFiles else: maxN = -1 dbFile = os.path.join( cache_directory, 'JME_fwlite_cache.db' ) logger.info( "Using sample cache %s", dbFile )
# RootTools from RootTools.core.standard import * # Samples #directory = "/afs/hephy.at/data/rschoefbeck02/postProcessed/flat_jet_trees/v6/" #sample = Sample.fromDirectory( "DoubleMuon", os.path.join( directory, "DoubleMuon_Run2018C-17Sep2018-v1_MINIAOD" ), isData = True) from JetMET.diagnosis.pu2018.samples import * from JetMET.tools.user import plot_directory sample = RelVal_DoubleMuon_Run2018D_Ref # # Logger # import JetMET.tools.logger as logger import RootTools.core.logger as logger_rt logger = logger.get_logger( 'INFO', logFile = None) logger_rt = logger_rt.get_logger('INFO', logFile = None) # define TProfiles #bx_thresholds = [i for i in range(3000)] #prefix = '' bx_thresholds = [i for i in range(500)] prefix = 'zoomed_' common = [ (0.15, 0.95, 'Run2018C (13 TeV)'), ] variables = [ [ "ChBarrelSumPt", "ch_m1p5_1p5_sumPt", [(0.7, 0.85, "sumPt(PF ch) |#eta|<1.5")]], [ "NhEnBarrelSumPt", "nh_m1p5_1p5_sumPt", [(0.7, 0.85, "sumPt(PF nh) |#eta|<1.5")]],
from JetMET.JetCorrector.JetCorrector import JetCorrector from JetMET.JetCorrector.JetCorrector import correction_levels_data from JetMET.JetCorrector.JetCorrector import correction_levels_mc # config Summer16_23Sep2016_DATA = \ [(1, 'Summer16_23Sep2016BCDV3_DATA'), (276831, 'Summer16_23Sep2016EFV3_DATA'), (278802, 'Summer16_23Sep2016GV3_DATA'), (280919, 'Summer16_23Sep2016HV3_DATA')] Summer16_23Sep2016_MC = [(1, 'Summer16_23Sep2016V3_MC')] if __name__ == "__main__": # Logging import JetMET.tools.logger as logger logger = logger.get_logger('DEBUG', logFile=None) jetCorrector_data = JetCorrector.fromTarBalls( Summer16_23Sep2016_DATA, correctionLevels=correction_levels_data) jetCorrector_mc = JetCorrector.fromTarBalls( Summer16_23Sep2016_MC, correctionLevels=correction_levels_mc)
#sample = Sample.fromDirectory( "DoubleMuon", os.path.join( directory, "DoubleMuon_Run2018C-17Sep2018-v1_MINIAOD" ), isData = True) from JetMET.tools.user import plot_directory directory = "/afs/hephy.at/data/cms01/hem/v2" sample = Sample.fromDirectory("Run2018B", os.path.join( directory, "DoubleMuon_Run2018B-17Sep2018-v1_MINIAOD"), isData=True) # # Logger # import JetMET.tools.logger as logger import RootTools.core.logger as logger_rt logger = logger.get_logger('INFO', logFile=None) logger_rt = logger_rt.get_logger('INFO', logFile=None) tex_common = [ (0.15, 0.95, 'Run2018C (13 TeV)'), ] variables = [ # [ "all_m3p2_m1p3_HEMphi_met*cos(all_m3p2_m1p3_HEMphi_metPhi)", "all_m3p2_m1p3_HEMphi_MEx", []], # [ "all_m3p2_m1p3_noHEMphi_met*cos(all_m3p2_m1p3_noHEMphi_metPhi)", "all_m3p2_m1p3_noHEMphi_MEx", []], # [ "all_m3p2_m1p3_HEMphi_met*sin(all_m3p2_m1p3_HEMphi_metPhi)", "all_m3p2_m1p3_HEMphi_MEy", []], # [ "all_m3p2_m1p3_noHEMphi_met*sin(all_m3p2_m1p3_noHEMphi_metPhi)", "all_m3p2_m1p3_noHEMphi_MEy", []], # [ "all_1p3_3p2_HEMphi_met*cos(all_1p3_3p2_HEMphi_metPhi)", "all_1p3_3p2_HEMphi_MEx", []], # [ "all_1p3_3p2_noHEMphi_met*cos(all_1p3_3p2_noHEMphi_metPhi)", "all_1p3_3p2_noHEMphi_MEx", []], # [ "all_1p3_3p2_HEMphi_met*sin(all_1p3_3p2_HEMphi_metPhi)", "all_1p3_3p2_HEMphi_MEy", []], # [ "all_1p3_3p2_noHEMphi_met*sin(all_1p3_3p2_noHEMphi_metPhi)", "all_1p3_3p2_noHEMphi_MEy", []],
from JetMET.JetCorrector.JetCorrector import JetCorrector from JetMET.JetCorrector.JetCorrector import correction_levels_data from JetMET.JetCorrector.JetCorrector import correction_levels_mc # config Summer16_23Sep2016_DATA = \ [(1, 'Summer16_23Sep2016BCDV3_DATA'), (276831, 'Summer16_23Sep2016EFV3_DATA'), (278802, 'Summer16_23Sep2016GV3_DATA'), (280919, 'Summer16_23Sep2016HV3_DATA')] Summer16_23Sep2016_MC = [(1, 'Summer16_23Sep2016V3_MC') ] if __name__ == "__main__": # Logging import JetMET.tools.logger as logger logger = logger.get_logger('DEBUG', logFile = None) jetCorrector_data = JetCorrector.fromTarBalls( Summer16_23Sep2016_DATA, correctionLevels = correction_levels_data ) jetCorrector_mc = JetCorrector.fromTarBalls( Summer16_23Sep2016_MC, correctionLevels = correction_levels_mc )
argParser.add_argument('--nJobs', action='store', nargs='?', type=int, default=1, help="Maximum number of simultaneous jobs." ) argParser.add_argument('--job', action='store', nargs='*', type=int, default=[], help="Run only jobs i" ) argParser.add_argument('--minNJobs', action='store', nargs='?', type=int, default=1, help="Minimum number of simultaneous jobs." ) argParser.add_argument('--targetDir', action='store', nargs='?', type=str, default=user.skim_ntuple_directory, help="Name of the directory the post-processed files will be saved" ) #user.data_output_directory #argParser.add_argument('--version', action='store', nargs='?', type=str, default='V1', help="JEC version" ) argParser.add_argument('--processingEra', action='store', nargs='?', type=str, default='v6', help="Name of the processing era" ) argParser.add_argument('--skim', action='store', nargs='?', type=str, default='default', help="Skim conditions to be applied for post-processing" ) argParser.add_argument('--small', action='store_true', help="Run the file on a small sample (for test purpose), bool flag set to True if used", default = False) return argParser options = get_parser().parse_args() # Logging import JetMET.tools.logger as logger logFile = '/tmp/%s_%s_%s_njob%s.txt'%(options.skim, options.sample, os.environ['USER'], str(0 if options.nJobs==1 else options.job[0])) logger = logger.get_logger(options.logLevel, logFile = logFile) import RootTools.core.logger as logger_rt logger_rt = logger_rt.get_logger(options.logLevel, logFile = None ) # JetCorrector config Summer16_03Feb2017_DATA = \ [(1, 'Summer16_03Feb2017BCD_V2_DATA'), (276831, 'Summer16_03Feb2017EF_V2_DATA' ), (278802, 'Summer16_03Feb2017G_V2_DATA' ), (280919, 'Summer16_03Feb2017H_V2_DATA')] Summer16_03Feb2017_MC = [(1, 'Summer16_03Feb2017_V1_MC') ] correction_levels_data = [ 'L1FastJet', 'L2Relative', 'L3Absolute' ] # No residuals! correction_levels_mc = [ 'L1FastJet', 'L2Relative', 'L3Absolute' ]
default="/afs/hephy.at/work/%s/%s/batch_output/"%(hephy_user_initial, hephy_user), help="path for batch output ") parser.add_option("--qos", dest="qos", help="Job Title viewied in squeue", default = "" ) parser.add_option("--opts", dest="opts", help="Give a string for any extra options", default = host_info['def_opts'] ) parser.add_option('--dpm', dest="dpm", default=False, action='store_true', help="Use dpm?") parser.add_option('--logLevel', action='store', nargs='?', choices=['CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG', 'TRACE', 'NOTSET'], default='INFO', help="Log level for logging" ) (options,args) = parser.parse_args() # Logging import JetMET.tools.logger as logger logger = logger.get_logger(options.logLevel, logFile = None) # Arguments batch_job_title = options.title batch_output_dir = options.output qos = options.qos qos_options = ['1h'] if qos and qos not in qos_options: raise Exception("The queue option (%s) is not recognized .... it should be one of %s"%(qos, qos_options)) def make_batch_job( batch_job_file, batch_job_title, batch_output_dir , command ): # If X509_USER_PROXY is set, use existing proxy. if options.dpm: if host == 'lxplus': from JetMET.tools.user import cern_proxy_certificate