def main():
    print "# --------------------------------------------------------------------------------------"
    print "# Modify cgs.conf file. "
    print "# --------------------------------------------------------------------------------------"
    print "# You are using the following configuration: "
    print "# --setup             :", opt.setuppath
    print "# --channels          :", opt.channels
    print "# --periods           :", opt.periods
    print "# --categories        :", opt.categories
    print "# --add-to-signal     :", opt.addsignal
    print "# --add-to-background :", opt.addbackground
    print "# Check option --help in case of doubt about the meaning of one or more of these confi-"
    print "# guration parameters.                           "
    print "# --------------------------------------------------------------------------------------"

    setuppath = opt.setuppath
    cgs_shuffle = UncertAdaptor()
    for channel in opt.channels:
        for period in opt.periods:
            for category in opt.categories:
                filename = "{SETUP}/{CHANNEL}/cgs-{ANA}-{PERIOD}-{CATEGORY}.conf".format(
                    SETUP=setuppath, CHANNEL=channel, ANA=opt.analysis, PERIOD=period, CATEGORY=category
                )
                print "processing file:", filename
                cgs_shuffle.cgs_processes(filename, opt.addsignal, opt.addbackground)
예제 #2
0
def add_zero_jet(path) :
    """
    Add signal to the 0jet event categories
    """
    cgs_adaptor = UncertAdaptor()
    for channel in config.channels:
        for period in config.periods:
            for category in config.categories[channel][period]:
                if '0jet' in config.categoryname[channel][config.categories[channel][period].index(category)]:
                    filename="{PATH}/{CHANNEL}/cgs-sm-{PERIOD}-{CATEGORY}.conf".format(PATH=path, CHANNEL=channel, PERIOD=period, CATEGORY=category if int(category)>9 else '0'+category)
                    print 'processing file:', filename
                    cgs_adaptor.cgs_processes(filename,['ggH','qqH','VH'])
예제 #3
0
def add_zero_jet(path) :
    """
    Add signal to the 0jet event categories
    """
    cgs_adaptor = UncertAdaptor()
    for channel in config.channels:
        for period in config.periods:
            for category in config.categories[channel][period]:
                if '0jet' in config.categoryname[channel][int(category)]:
                    filename="{PATH}/{CHANNEL}/cgs-sm-{PERIOD}-0{CATEGORY}.conf".format(PATH=path, CHANNEL=channel, PERIOD=period, CATEGORY=category)
                    print 'processing file:', filename
                    cgs_adaptor.cgs_processes(filename,['ggH','qqH','VH'])
            if options.add_mutau_soft and channel == 'mt' and period == '8TeV':
                for category in 10, 11, 12:
                    filename="{PATH}/{CHANNEL}/cgs-sm-{PERIOD}-{CATEGORY}.conf".format(PATH=path, CHANNEL=channel, PERIOD=period, CATEGORY=category)
                    print 'processing file:', filename
                    cgs_adaptor.cgs_processes(filename,['ggH','qqH','VH'])
예제 #4
0
def main() :
    print "# --------------------------------------------------------------------------------------"
    print "# Modify cgs.conf file. "
    print "# --------------------------------------------------------------------------------------"
    print "# You are using the following configuration: "
    print "# --setup             :", opt.setuppath
    print "# --channels          :", opt.channels
    print "# --periods           :", opt.periods
    print "# --categories        :", opt.categories
    print "# --add-to-signal     :", opt.addsignal
    print "# --add-to-background :", opt.addbackground
    print "# Check option --help in case of doubt about the meaning of one or more of these confi-"
    print "# guration parameters.                           "
    print "# --------------------------------------------------------------------------------------"

    setuppath=opt.setuppath
    cgs_shuffle = UncertAdaptor()
    for channel in opt.channels :
        for period in opt.periods :
            for category in opt.categories :
                filename="{SETUP}/{CHANNEL}/cgs-{ANA}-{PERIOD}-{CATEGORY}.conf".format(SETUP=setuppath, CHANNEL=channel, ANA=opt.analysis, PERIOD=period, CATEGORY=category)
                print 'processing file:', filename
                cgs_shuffle.cgs_processes(filename, opt.addsignal, opt.addbackground)
                os.system("cp -r {DIR}/{TARGET} {DIR}/{TARGET}-SMHbkg".format(
                    DIR=dir, TARGET=ana))
                cgs_adaptor = UncertAdaptor()
                for chn in ['em', 'et', 'mm', 'mt', 'tt']:
                    if chn in config.channels:
                        for period in config.periods:
                            for category in config.categories[chn][period]:
                                filename = "{DIR}/{TARGET}-SMHbkg/{CHN}/cgs-mssm-{PERIOD}-0{CATEGORY}.conf".format(
                                    DIR=dir,
                                    TARGET=ana,
                                    CHN=chn,
                                    PERIOD=period,
                                    CATEGORY=category)
                                print 'processing file:', filename
                                cgs_adaptor.cgs_processes(
                                    filename, None,
                                    ['ggH_SM125', 'qqH_SM125', 'VH_SM125'],
                                    None, None)
                analysesv2.append(ana)
                analysesv2.append(ana + '-SMHbkg')
            analyses = analysesv2

if options.update_aux:
    print "##"
    print "## update aux directory:"
    print "##"
    dir = "{CMSSW_BASE}/src/aux{LABEL}".format(CMSSW_BASE=cmssw_base,
                                               LABEL=options.label)
    if os.path.exists(dir):
        if os.path.exists(dir.replace('src/', 'src/backup/')):
            os.system("rm -r " + dir.replace('src/', 'src/backup/'))
        os.system("mv {DIR} {CMSSW_BASE}/src/backup/".format(
                            THR=config.bbbthreshold[chn]
                            ))                   
                        os.system("rm -rf {DIR}/{ANA}".format(DIR=dir, ANA=ana))
                        os.system("mv {DIR}/{ANA}-tmp {DIR}/{ANA}".format(DIR=dir, ANA=ana))
        if options.SMHasBackground : 
            analysesv2 = []
            for ana in analyses :
                os.system("cp -r {DIR}/{TARGET} {DIR}/{TARGET}-SMHbkg".format(DIR=dir, TARGET=ana))
                cgs_adaptor = UncertAdaptor()
                for chn in ['em', 'et', 'mm', 'mt', 'tt']:
                    if chn in config.channels:
                        for period in config.periods:
                            for category in config.categories[chn][period]:
                                filename="{DIR}/{TARGET}-SMHbkg/{CHN}/cgs-mssm-{PERIOD}-0{CATEGORY}.conf".format(DIR=dir, TARGET=ana, CHN=chn, PERIOD=period, CATEGORY=category)
                                print 'processing file:', filename
                                cgs_adaptor.cgs_processes(filename,None,['ggH_SM125','qqH_SM125','VH_SM125'],None,None)
                analysesv2.append(ana)                
                analysesv2.append(ana+'-SMHbkg')
        analyses=analysesv2
                                
if options.update_aux :
    print "##"
    print "## update aux directory:"
    print "##"
    dir = "{CMSSW_BASE}/src/aux{LABEL}".format(CMSSW_BASE=cmssw_base, LABEL=options.label)
    if os.path.exists(dir) :
        if os.path.exists(dir.replace('src/', 'src/backup/')):
            os.system("rm -r "+dir.replace('src/', 'src/backup/'))
        os.system("mv {DIR} {CMSSW_BASE}/src/backup/".format(DIR=dir, CMSSW_BASE=cmssw_base))
    os.system("mkdir -p {DIR}".format(DIR=dir))    
    for ana in analyses :
                            CAT=config.bbbcat[chn][per][idx],
                            PROC=config.bbbproc[chn][idx].replace('>',',') if options.new_merging else config.bbbproc[chn][idx],
                            THR=config.bbbthreshold[chn]
                            ))
                        os.system("rm -rf {DIR}/{ANA}".format(DIR=dir, ANA=ana))
                        os.system("mv {DIR}/{ANA}-tmp {DIR}/{ANA}".format(DIR=dir, ANA=ana))                            
    for ana in analyses :
        if 'hww-sig' in ana :
            os.system("cp -r {DIR}/{SOURCE} {DIR}/{TARGET}".format(DIR=dir, SOURCE=ana[:ana.find(':')], TARGET=ana[ana.find(':')+1:]))
            cgs_adaptor = UncertAdaptor()
            if 'em' in config.channels:
                for period in config.periods:
                    for category in config.categories['em'][period]:
                        filename="{DIR}/{TARGET}/em/cgs-sm-{PERIOD}-0{CATEGORY}.conf".format(DIR=dir, TARGET=ana[ana.find(':')+1:], PERIOD=period, CATEGORY=category)
                        print 'processing file:', filename
                        cgs_adaptor.cgs_processes(filename,['ggH','qqH','VH','ggH_hww','qqH_hww'],None,None,['ggH_hww125','qqH_hww125'])
                for file in glob.glob("{DIR}/{ANA}/em/unc-sm-*.vals".format(DIR=dir, ANA=ana[ana.find(':')+1:])) :
                    os.system("perl -pi -e 's/ggH_hww125/ggH_hww/g' {FILE}".format(FILE=file))
                    os.system("perl -pi -e 's/qqH_hww125/qqH_hww/g' {FILE}".format(FILE=file))

if options.update_aux :
    print "##"
    print "## update aux directory:"
    print "##"    
    ## setup directory structure
    dir = "{CMSSW_BASE}/src/aux{LABEL}".format(CMSSW_BASE=cmssw_base, LABEL=options.label)
    if os.path.exists(dir) :
        if os.path.exists(dir.replace('src/', 'src/backup/')):
            os.system("rm -r "+dir.replace('src/', 'src/backup/'))
        os.system("mv {DIR} {CMSSW_BASE}/src/backup/".format(DIR=dir, CMSSW_BASE=cmssw_base))
    os.system("mkdir -p {DIR}".format(DIR=dir))    
예제 #8
0
                         ))
                     os.system("rm -rf {DIR}/{ANA}".format(DIR=dir, ANA=ana))
                     os.system("mv {DIR}/{ANA}-tmp {DIR}/{ANA}".format(DIR=dir, ANA=ana))                            
 for ana in analyses :
     if 'hww-sig' in ana :
         os.system("cp -r {DIR}/{SOURCE} {DIR}/{TARGET}".format(DIR=dir, SOURCE=ana[:ana.find(':')], TARGET=ana[ana.find(':')+1:]))
         cgs_adaptor = UncertAdaptor()
         ## drop ggH_hww and qqH_hww template for ee and mm unless
         ## templates for other masspoints but 125 GeV are provided            
         for chn in ['em']:
             if chn in config.channels:
                 for period in config.periods:
                     for category in config.categories[chn][period]:
                         filename="{DIR}/{TARGET}/{CHN}/cgs-sm-{PERIOD}-0{CATEGORY}.conf".format(DIR=dir, TARGET=ana[ana.find(':')+1:], CHN=chn, PERIOD=period, CATEGORY=category)
                         print 'processing file:', filename
                         cgs_adaptor.cgs_processes(filename,['ggH','qqH','VH','ggH_hww','qqH_hww'],None,None,['ggH_hww125','qqH_hww125'])
                 for file in glob.glob("{DIR}/{ANA}/{CHN}/unc-sm-*.vals".format(DIR=dir, ANA=ana[ana.find(':')+1:], CHN=chn)) :
                     if chn in ['ee','mm'] :
                         pass
                     else:
                         os.system("perl -pi -e 's/ggH_hww125/ggH_hww/g' {FILE}".format(FILE=file))
                         os.system("perl -pi -e 's/qqH_hww125/qqH_hww/g' {FILE}".format(FILE=file))
         for chn in ['vhtt']:
             if chn in config.channels:
                 for period in config.periods:
                     for category in ['0', '1']:
                         filename="{DIR}/{TARGET}/{CHN}/cgs-sm-{PERIOD}-0{CATEGORY}.conf".format(DIR=dir, TARGET=ana[ana.find(':')+1:], CHN=chn, PERIOD=period, CATEGORY=category)
                         print 'processing file:', filename
                         cgs_adaptor.cgs_processes(filename,['WH','WH_hww'],None,None,['WH_hww125'])
                         cgs_adaptor2 = UncertAdaptor()
                         cgs_adaptor2.cgs_signal_group = 'GROUP simulated'
예제 #9
0
            os.system("cp -r {DIR}/{SOURCE} {DIR}/{TARGET}".format(
                DIR=dir,
                SOURCE=ana[:ana.find(':')],
                TARGET=ana[ana.find(':') + 1:]))
            cgs_adaptor = UncertAdaptor()
            if 'em' in config.channels:
                for period in config.periods:
                    for category in config.categories['em'][period]:
                        filename = "{DIR}/{TARGET}/em/cgs-sm-{PERIOD}-0{CATEGORY}.conf".format(
                            DIR=dir,
                            TARGET=ana[ana.find(':') + 1:],
                            PERIOD=period,
                            CATEGORY=category)
                        print 'processing file:', filename
                        cgs_adaptor.cgs_processes(
                            filename,
                            ['ggH', 'qqH', 'VH', 'ggH_hww', 'qqH_hww'], None,
                            None, ['ggH_hww125', 'qqH_hww125'])
                for file in glob.glob("{DIR}/{ANA}/em/unc-sm-*.vals".format(
                        DIR=dir, ANA=ana[ana.find(':') + 1:])):
                    os.system(
                        "perl -pi -e 's/ggH_hww125/ggH_hww/g' {FILE}".format(
                            FILE=file))
                    os.system(
                        "perl -pi -e 's/qqH_hww125/qqH_hww/g' {FILE}".format(
                            FILE=file))

if options.update_aux:
    print "##"
    print "## update aux directory:"
    print "##"
    ## setup directory structure
예제 #10
0
                         PROC=config.bbbproc[chn][idx],
                         SOFT=',10,11,12,13,15,16' if options.add_mutau_soft and chn=='mt' and per=='8TeV' else '',
                         THR=config.bbbthreshold
                         ))
                     os.system("rm -rf {DIR}/{ANA}".format(DIR=dir, ANA=ana))
                     os.system("mv {DIR}/{ANA}-tmp {DIR}/{ANA}".format(DIR=dir, ANA=ana))                            
 for ana in analyses :
     if 'hww-bg' in ana :
         os.system("cp -r {DIR}/{SOURCE} {DIR}/{TARGET}".format(DIR=dir, SOURCE=ana[:ana.find(':')], TARGET=ana[ana.find(':')+1:]))
         cgs_adaptor = UncertAdaptor()
         if 'em' in config.channels:
             for period in config.periods:
                 for category in config.categories['em'][period]:
                     filename="{DIR}/{TARGET}/em/cgs-sm-{PERIOD}-0{CATEGORY}.conf".format(DIR=dir, TARGET=ana[ana.find(':')+1:], PERIOD=period, CATEGORY=category)
                     print 'processing file:', filename
                     cgs_adaptor.cgs_processes(filename,None,['ggH_hww','qqH_hww'])
         if 'vhtt' in config.channels:
             for period in config.periods:
                 for category in ['0','1','2','3','4','5','6']:
                     if period == '7TeV' and category == '2': continue
                     filename="{DIR}/{TARGET}/vhtt/cgs-sm-{PERIOD}-0{CATEGORY}.conf".format(DIR=dir, TARGET=ana[ana.find(':')+1:], PERIOD=period, CATEGORY=category)
                     print 'processing file:', filename
                     cgs_adaptor.cgs_processes(filename,None,['WH_hww' if int(cat) < 3 else 'ZH_hww'])
         for file in glob.glob("{DIR}/{TARGET}/em/cgs-sm-*.conf".format(  DIR=dir, TARGET=ana[ana.find(':')+1:])) :
             os.system("perl -pi -e 's/ggH_hww/ggH_hww{MASS}/g' {FILE}".format(MASS='125', FILE=file))
             os.system("perl -pi -e 's/qqH_hww/qqH_hww{MASS}/g' {FILE}".format(MASS='125', FILE=file))
         for file in glob.glob("{DIR}/{TARGET}/em/unc-sm-*.vals".format(  DIR=dir, TARGET=ana[ana.find(':')+1:])) :
             os.system("perl -pi -e 's/ggH_hww/ggH_hww{MASS}/g' {FILE}".format(MASS='125', FILE=file))
             os.system("perl -pi -e 's/qqH_hww/qqH_hww{MASS}/g' {FILE}".format(MASS='125', FILE=file))
         for file in glob.glob("{DIR}/{TARGET}/vhtt/cgs-sm-*.conf".format(DIR=dir, TARGET=ana[ana.find(':')+1:])) :
             os.system("perl -pi -e 's/WH_hww/WH_hww{MASS}/g'   {FILE}".format(MASS='125', FILE=file))
                         ))
                     os.system("rm -rf {DIR}/{ANA}".format(DIR=dir, ANA=ana))
                     os.system("mv {DIR}/{ANA}-tmp {DIR}/{ANA}".format(DIR=dir, ANA=ana))                            
 for ana in analyses :
     if 'hww-sig' in ana :
         os.system("cp -r {DIR}/{SOURCE} {DIR}/{TARGET}".format(DIR=dir, SOURCE=ana[:ana.find(':')], TARGET=ana[ana.find(':')+1:]))
         cgs_adaptor = UncertAdaptor()
         ## drop ggH_hww and qqH_hww template for ee and mm unless
         ## templates for other masspoints but 125 GeV are provided            
         for chn in ['em']:
             if chn in config.channels:
                 for period in config.periods:
                     for category in config.categories[chn][period]:
                         filename="{DIR}/{TARGET}/{CHN}/cgs-sm-{PERIOD}-0{CATEGORY}.conf".format(DIR=dir, TARGET=ana[ana.find(':')+1:], CHN=chn, PERIOD=period, CATEGORY=category)
                         print 'processing file:', filename
                         cgs_adaptor.cgs_processes(filename,['ggH','qqH','WH','ZH','ggH_hww','qqH_hww'],None,None,['ggH_hww125','qqH_hww125'])
                 for file in glob.glob("{DIR}/{ANA}/{CHN}/unc-sm-*.vals".format(DIR=dir, ANA=ana[ana.find(':')+1:], CHN=chn)) :
                     if chn in ['ee','mm'] :
                         pass
                     else:
                         os.system("perl -pi -e 's/ggH_hww125/ggH_hww/g' {FILE}".format(FILE=file))
                         os.system("perl -pi -e 's/qqH_hww125/qqH_hww/g' {FILE}".format(FILE=file))
         for chn in ['vhtt']:
             if chn in config.channels:
                 for period in config.periods:
                     for category in ['0', '1']:
                         filename="{DIR}/{TARGET}/{CHN}/cgs-sm-{PERIOD}-0{CATEGORY}.conf".format(DIR=dir, TARGET=ana[ana.find(':')+1:], CHN=chn, PERIOD=period, CATEGORY=category)
                         print 'processing file:', filename
                         cgs_adaptor.cgs_processes(filename,['WH','WH_hww'],None,None,['WH_hww125'])
                         cgs_adaptor2 = UncertAdaptor()
                         cgs_adaptor2.cgs_signal_group = 'GROUP simulated'
예제 #12
0
                            CAT=config.bbbcat[chn][per][idx],
                            PROC=config.bbbproc[chn][idx].replace('>',',') if options.new_merging else config.bbbproc[chn][idx],
                            THR=config.bbbthreshold[chn]
                            ))
                        os.system("rm -rf {DIR}/{ANA}".format(DIR=dir, ANA=ana))
                        os.system("mv {DIR}/{ANA}-tmp {DIR}/{ANA}".format(DIR=dir, ANA=ana))
    if options.SMHasBackground : 
        for ana in analyses :
            os.system("cp -r {DIR}/{ANA} {DIR}/{ANA}".format(DIR=dir, ANA=ana))
            cgs_adaptor = UncertAdaptor()
            if chn in config.channels:
                for period in config.periods:
                    for category in config.categories[chn][period]:
                        filename="{DIR}/{ANA}/{CHN}/cgs-AZh-{PERIOD}-0{CATEGORY}.conf".format(DIR=dir, ANA=ana, CHN=chn, PERIOD=period, CATEGORY=category)
                        print 'processing file:', filename
                        cgs_adaptor.cgs_processes(filename,None,['ZH_ww125','ZH_tt125'],None,None)

if options.update_aux :
    print "##"
    print "## update aux directory:"
    print "##"    
    ## setup directory structure
    dir = "{CMSSW_BASE}/src/aux{LABEL}".format(CMSSW_BASE=cmssw_base, LABEL=options.label)
    if os.path.exists(dir) :
        if os.path.exists(dir.replace('src/', 'src/backup/')):
            os.system("rm -r "+dir.replace('src/', 'src/backup/'))
        os.system("mv {DIR} {CMSSW_BASE}/src/backup/".format(DIR=dir, CMSSW_BASE=cmssw_base))
    os.system("mkdir -p {DIR}".format(DIR=dir))    
    for ana in analyses :
        prune = 'bbb' in ana 
        if ':' in ana :