Ejemplo n.º 1
0
#
# 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"
#
Ejemplo n.º 2
0
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 )
Ejemplo n.º 3
0
# 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")]],
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
#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", []],
Ejemplo n.º 6
0
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 )
Ejemplo n.º 7
0
    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' ]
Ejemplo n.º 8
0
                  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