signalFastSim = [
SMS_T2tt_dM_10to80_genHT_160_genMET_80_mWMin_0p1
]

samples = signalFullSim + signalFastSim

from CMGTools.TTHAnalysis.setup.Efficiencies import *
dataDir = "$CMSSW_BASE/src/CMGTools/TTHAnalysis/data"

#Define splitting
for comp in signalFullSim:
    comp.isMC = True
    comp.isData = False
    comp.isFastSim = False
    comp.splitFactor = 250 #  if comp.name in [ "WJets", "DY3JetsM50", "DY4JetsM50","W1Jets","W2Jets","W3Jets","W4Jets","TTJetsHad" ] else 100

for comp in signalFastSim:
    comp.isMC = True
    comp.isData = False
    comp.isFastSim = True
    comp.splitFactor = 250 #  if comp.name in [ "WJets", "DY3JetsM50", "DY4JetsM50","W1Jets","W2Jets","W3Jets","W4Jets","TTJetsHad" ] else 100

if __name__ == "__main__":
    from CMGTools.RootTools.samples.tools import runMain
    runMain(samples, localobjs=locals())
    import sys
    if "test" in sys.argv:
        from CMGTools.RootTools.samples.ComponentCreator import testSamples
        testSamples(samples)
Ejemplo n.º 2
0

mcSamples_Asymptotic25ns = TTs + SingleTop + VJets + DYJetsM50HT + WJetsToLNuHT + ZJetsToNuNuHT + GJetsHT + QCDPt + DiBosons + TTV + Higgs + TriBosons + Rares + QCD_ElX + QCD_MuX

mcSamples_Asymptotic50ns = [ TTJets_50ns, TTJets_LO_50ns, TT_pow_50ns, WJetsToLNu_50ns, DYJetsToLL_M10to50_50ns, DYJetsToLL_M50_50ns, GJets_Pt15to6000_50ns] + DYJetsM50HT_50ns + QCDPt_50ns + SingleTop_50ns + DiBosons_50ns + QCD_MuX_50ns


mcSamples = RelVals740 + mcSamples_Asymptotic25ns + mcSamples_Asymptotic50ns

samples = mcSamples

### ---------------------------------------------------------------------

from CMGTools.TTHAnalysis.setup.Efficiencies import *
dataDir = "$CMSSW_BASE/src/CMGTools/TTHAnalysis/data"

#Define splitting
for comp in mcSamples:
    comp.isMC = True
    comp.isData = False
    comp.splitFactor = 250 #  if comp.name in [ "WJets", "DY3JetsM50", "DY4JetsM50","W1Jets","W2Jets","W3Jets","W4Jets","TTJetsHad" ] else 100
    comp.puFileMC=dataDir+"/puProfile_Summer12_53X.root"
    comp.puFileData=dataDir+"/puProfile_Data12.root"
    comp.efficiency = eff2012

if __name__ == "__main__":
   import sys
   if "test" in sys.argv:
       from CMGTools.RootTools.samples.ComponentCreator import testSamples
       testSamples(samples)
mcSamples_monojet_Asymptotic25ns = DYJetsToNuNu_MJ + VJets_MJ + Top_MJ + DiBosons_MJ + QCDHT
mcSamples_monojet_Asymptotic25ns_signals = DM_Scalars + DM_Pseudoscalars + DM_Vectors + DM_Axials


### ----------------------------- summary ----------------------------------------     
mcSamples_monojet = mcSamples_monojet_Asymptotic25ns + mcSamples_monojet_Asymptotic25ns_signals


from CMGTools.TTHAnalysis.setup.Efficiencies import *
dataDir = "$CMSSW_BASE/src/CMGTools/TTHAnalysis/data"

#Define splitting
for comp in mcSamples:
    comp.isMC = True
    comp.isData = False
    comp.splitFactor = 250 #  if comp.name in [ "WJets", "DY3JetsM50", "DY4JetsM50","W1Jets","W2Jets","W3Jets","W4Jets","TTJetsHad" ] else 100
    comp.puFileMC=dataDir+"/puProfile_Summer12_53X.root"
    comp.puFileData=dataDir+"/puProfile_Data12.root"
    comp.efficiency = eff2012
# for comp in dataSamples:
#     comp.splitFactor = 1000
#     comp.isMC = False
#     comp.isData = True


if __name__ == "__main__":
   import sys
   if "test" in sys.argv:
       from CMGTools.RootTools.samples.ComponentCreator import testSamples
       testSamples(mcSamples)
Ejemplo n.º 4
0
def runMain(samples, args=None, localobjs=None):
    if args == None: args = sys.argv
    selsamples = _filterSamples(samples, args)
    if "help" in args or "--help" in args or "-h" in args:
        print """

python samplefile.py test [--AAA] [samples] :
        tries accessing the first file of each sample
        option -AAA: allow AAA as fallback

python samplefile.py locality [samples] :
        check the locality of the samples

python samplefile.py refresh [samples] [ --pretend ] [ --suspicious ]: 
        forces a refresh of the cache
        option --pretend: print the list of samples to refresh, instead of actually refreshing them
        option --suspicious: selects for refresh the samples that look bogus (zero files, or zero events for official CMS datasets)

python samplefile.py list [samples]:  
python samplefile.py summary [samples]:   
        two equivalent commands that prints a list of samples, with number of files, events, equivalent luminosity, etc

python samplefile.py genXSecAna [samples] [ --pretend ] [ --verbose ] [ --AAA ]:  
        check the cross sections using genXSecAna on one of the files

python samplefile.py checkdecl:  
        check that all samples are declared in the samples list

"""
    if "test" in args:
        from CMGTools.RootTools.samples.ComponentCreator import testSamples
        testSamples(selsamples, allowAAA=("--AAA" in args))
    if "locality" in args:
        import re
        from CMGTools.Production.localityChecker import LocalityChecker
        tier2Checker = LocalityChecker("T2_CH_CERN", datasets="/*/*/MINIAOD*")
        for comp in selsamples:
            if len(comp.files) == 0:
                print '\033[34mE: Empty component: ' + comp.name + '\033[0m'
                continue
            if not hasattr(comp, 'dataset'): continue
            if not re.match("/[^/]+/[^/]+/MINIAOD(SIM)?", comp.dataset):
                continue
            if "/store/" not in comp.files[0]: continue
            if re.search("/store/(group|user|cmst3)/", comp.files[0]): continue
            if not tier2Checker.available(comp.dataset):
                print "\033[1;31mN: Dataset %s (%s) is not available on T2_CH_CERN\033[0m" % (
                    comp.name, comp.dataset)
            else:
                print "Y: Dataset %s (%s) is available on T2_CH_CERN" % (
                    comp.name, comp.dataset)
    if "refresh" in args:
        from CMGTools.Production.cacheChecker import CacheChecker
        checker = CacheChecker()
        for d in selsamples:
            if "--suspicious" in args:
                if len(d.files) > 0:
                    if "/store/mc " in d.files[0] or "/store/data" in d.files[
                            0]:
                        if getattr(d, 'dataset_entries', -1) > 0:
                            continue
                    else:
                        continue
            print "Checking ", d.name, " aka ", d.dataset
            if "--pretend" in args: continue
            checker.checkComp(d, verbose=True)
    if "check_versions" in args:
        from CMGTools.Production.datasetVersionChecker import DatasetVersionChecker
        checker = DatasetVersionChecker()
        for d in selsamples:
            if "--pretend" in args:
                print "Would check ", d.name, " aka ", d.dataset
            else:
                print "Checking", d.name, " ",
                checker.checkComp(d, verbose=True)
    if "list" in args or "summary" in args:
        from CMGTools.RootTools.samples.configTools import printSummary, mergeExtensions
        if "--merge-extensions" in args or "--mex" in args:
            selsamples = mergeExtensions(selsamples, verbose=True)[0]
        printSummary(selsamples)
    if "genXSecAna" in args:
        import subprocess, re
        if "--fetch" in args or not os.path.exists(
                "%s/src/genXSecAna.py" % os.environ['CMSSW_BASE']):
            print "Retrieving genXSecAna.py"
            os.system(
                "wget -O " + os.environ['CMSSW_BASE'] +
                "/src/genXSecAna.py  https://raw.githubusercontent.com/syuvivida/generator/master/cross_section/runJob/ana.py"
            )
        for d in selsamples:
            if not hasattr(d, 'xSection'):
                print "Skipping %s which has no cross section" % d.name
                continue
            if "--pretend" in args:
                print "Would check ", d.name, " aka ", d.dataset
                continue
            if "--AAA" in args:
                from CMGTools.Production.changeComponentAccessMode import convertComponent
                convertComponent(d, "root://cms-xrd-global.cern.ch/%s")
            else:  # use LFNs
                d.files = [
                    re.sub(".*(/store/.*)(?:\\?.*)?", "\\1", f)
                    for f in d.files[:]
                ]
            print "Sample %s: XS(sample file) = %g pb, ... " % (d.name,
                                                                d.xSection),
            if len(d.files) == 0:
                print "\n\033[01;31m ERROR: no files in sample, so cannot run the analyzer \033[00m"
                continue
            if "--verbose" in args:
                print "\n ".join([
                    "cmsRun", os.environ['CMSSW_BASE'] + "/src/genXSecAna.py",
                    "inputFiles=%s" % d.files[0], "maxEvents=-1"
                ])
            xsecAnaOut = subprocess.check_output([
                "cmsRun", os.environ['CMSSW_BASE'] + "/src/genXSecAna.py",
                "inputFiles=%s" % d.files[0], "maxEvents=-1"
            ],
                                                 stderr=subprocess.STDOUT)
            if "--verbose" in args:
                for l in xsecAnaOut.split("\n"):
                    print "\t>> " + l
            m = re.search(
                r"After filter: final cross section = (\S+) \+- (\S+) pb",
                xsecAnaOut)
            if m and float(m.group(1)) == 0:
                m = re.search(
                    r"Before matching: total cross section = (\S+) \+- (\S+) pb",
                    xsecAnaOut)
                m1 = re.search(
                    r"After matching: total cross section = (\S+) \+- (\S+) pb",
                    xsecAnaOut)
                if m1 and m and float(m1.group(1)) < 0 and float(
                        m.group(1)) > 0 and abs(
                            float(m1.group(1)) / float(m.group(1)) + 1) < 1e-2:
                    print "\033[01;33m [after filter Xsec is zero, using before filter one] \033[00m"
                else:
                    m = None
            if not m or float(m.group(1)) <= 0:
                print "\n\033[01;31m ERROR: could not find After filter cross section in the output, or it's zero. \033[00m"
                continue
            xs, xserr = float(m.group(1)), float(m.group(2))
            kfactor = d.xSection / xs
            if abs(xs - d.xSection) < min(3 * xserr, 1e-2 * xs):
                (col, stat) = '\033[01;36m', "OK"
            elif 0.8 < kfactor and kfactor < 1.4:
                (col, stat) = '\033[01;36m', "OK?"
            elif 0.5 < kfactor and kfactor < 2.0:
                (col, stat) = '\033[01;33m', "WARNING"
            else:
                (col, stat) = '\033[01;31m', "ERROR"
            m = re.search(
                r"After filter: final fraction of events with negative weights = (\S+) \+- (\S+)",
                xsecAnaOut)
            if m:
                fnegv, fnegerr = (float(m.group(1)), float(m.group(2)))
                fneg = "  f(negw): %.3f +- %.3f " % (fnegv, fnegerr)
                if getattr(d, 'fracNegWeights', None) != None:
                    if abs(d.fracNegWeights - fnegv) < 0.02:
                        fneg += "(%.3f in sample file, \033[01;36mOK\033[00m)" % d.fracNegWeights
                    else:
                        fneg += "(%.3f in sample file, \033[01;33mWARNING\033[00m)" % d.fracNegWeights
            else:
                fneg = ""
            print "XS(genAnalyzer) = %g +/- %g pb : %s kFactor = %g %s\033[00m%s" % (
                xs, xserr, col, kfactor, stat, fneg)
    if "checkdecl" in args:
        if localobjs == None:
            raise RuntimeError(
                "you have to runMain(samples,localobjs=locals())")
        import PhysicsTools.HeppyCore.framework.config as cfg
        ok = 0
        for name, obj in localobjs.iteritems():
            if name == "comp": continue  # local variable used in loops
            if isinstance(obj, cfg.Component):
                if obj not in samples:
                    print "\tERROR: component %s is not added to the samples list " % name
                elif obj.name != name:
                    print "\tERROR: component %s has inconsistent name %s " % (
                        name, obj.name)
                else:
                    ok += 1
        print "\tINFO: %d correctly declared components" % ok
Ejemplo n.º 5
0
DoubleEG_ZElectron_ReReco_files = [ f.strip() for f in open("%s/src/CMGTools/MonoXAnalysis/python/samples/ZElectron_ReReco_PS2016.txt" % os.environ['CMSSW_BASE'], "r") ]
DoubleEG_ZElectron_ReReco = kreator.makePrivateDataComponent('DoubleEG_ZElectron_ReReco','/store/group/dpg_ecal/comm_ecal/localreco/data2016_zskim_multifits/miniaod/run2016B_rereco/',DoubleEG_ZElectron_ReReco_files, dcsjson )

DoubleEG_ZElectron_std_files = [ f.strip() for f in open("%s/src/CMGTools/MonoXAnalysis/python/samples/ZElectron_ReReco_std.txt" % os.environ['CMSSW_BASE'], "r") ]
DoubleEG_ZElectron_std = kreator.makePrivateDataComponent('DoubleEG_ZElectron_std','/store/group/dpg_ecal/comm_ecal/localreco/data2016_zskim_multifits/miniaod/run2016B_std/',DoubleEG_ZElectron_std_files, dcsjson )

PrivateSamplesData = [DoubleEG_ZElectron_std, DoubleEG_ZElectron_ReReco]

from CMGTools.TTHAnalysis.setup.Efficiencies import *
dataDir = "$CMSSW_BASE/src/CMGTools/TTHAnalysis/data"

#Define splitting
for comp in mcSamples:
    comp.isMC = True
    comp.isData = False
    comp.splitFactor = 250 #  if comp.name in [ "WJets", "DY3JetsM50", "DY4JetsM50","W1Jets","W2Jets","W3Jets","W4Jets","TTJetsHad" ] else 100
    comp.puFileMC=dataDir+"/puProfile_Summer12_53X.root"
    comp.puFileData=dataDir+"/puProfile_Data12.root"
    comp.efficiency = eff2012
# for comp in dataSamples:
#     comp.splitFactor = 1000
#     comp.isMC = False
#     comp.isData = True


if __name__ == "__main__":
   import sys
   if "test" in sys.argv:
       from CMGTools.RootTools.samples.ComponentCreator import testSamples
       testSamples(mcSamples)
Ejemplo n.º 6
0
##Higgsino
## ------------------------------------------------------
#Higgsino_300_120=kreator.makeMCComponentFromLocal("Higgsino_300_120","/higgsino_300_120_v5/","/afs/cern.ch/work/b/bschneid/public/higgsino-points/%s",".*root")
#Higgsino_300_80=kreator.makeMCComponentFromLocal("Higgsino_300_80","/higgsino_300_80_v5/","/afs/cern.ch/work/b/bschneid/public/higgsino-points/%s",".*root")
#Higgsino_500_120=kreator.makeMCComponentFromLocal("Higgsino_500_120","higgsino_500_120_v5","/afs/cern.ch/work/b/bschneid/public/higgsino-points/%s",".*root")
#Higgsino_500_80=kreator.makeMCComponentFromLocal("Higgsino_500_80","higgsino_500_80_v5","/afs/cern.ch/work/b/bschneid/public/higgsino-points/%s",".*root")
Higgsino = [
]  #Higgsino_300_120, Higgsino_300_80, Higgsino_500_120, Higgsino_500_80]

## mcSamplesPriv
## ------------------------------------------------------
mcSamplesPriv = SqGltttt + T1ttbb + T1ttbbWW + T1tttt + T2tt + T2ttDeg + T2cc + T5qqqqVV + T5qqqqVVDeg + T5ttttDeg + T6ttWW + T6qqWW + Higgsino

from CMGTools.TTHAnalysis.setup.Efficiencies import *
dataDir = "$CMSSW_BASE/src/CMGTools/TTHAnalysis/data"

#Define splitting
for comp in mcSamplesPriv:
    comp.isMC = True
    comp.isData = False
    comp.splitFactor = 250  #  if comp.name in [ "WJets", "DY3JetsM50", "DY4JetsM50","W1Jets","W2Jets","W3Jets","W4Jets","TTJetsHad" ] else 100
    comp.puFileMC = dataDir + "/puProfile_Summer12_53X.root"
    comp.puFileData = dataDir + "/puProfile_Data12.root"
    comp.efficiency = eff2012

if __name__ == "__main__":
    import sys
    if "test" in sys.argv:
        from CMGTools.RootTools.samples.ComponentCreator import testSamples
        testSamples(mcSamplesPriv)
Ejemplo n.º 7
0
def runMain(samples, args=None):
    if args == None: args = sys.argv
    selsamples = _filterSamples(samples, args)
    if "help" in args or "--help" in args or "-h" in args:
        print """

python samplefile.py test [--AAA] [samples] :
        tries accessing the first file of each sample
        option -AAA: allow AAA as fallback

python samplefile.py locality [samples] :
        check the locality of the samples

python samplefile.py refresh [samples] [ --pretend ] [ --suspicious ]: 
        forces a refresh of the cache
        option --pretend: print the list of samples to refresh, instead of actually refreshing them
        option --suspicious: selects for refresh the samples that look bogus (zero files, or zero events for official CMS datasets)

python samplefile.py list [samples]:  
python samplefile.py summary [samples]:   
        two equivalent commands that prints a list of samples, with number of files, events, equivalent luminosity, etc


"""
    if "test" in args:
        from CMGTools.RootTools.samples.ComponentCreator import testSamples
        testSamples(selsamples, allowAAA=("--AAA" in args))
    if "locality" in args:
        import re
        from CMGTools.Production.localityChecker import LocalityChecker
        tier2Checker = LocalityChecker("T2_CH_CERN", datasets="/*/*/MINIAOD*")
        for comp in selsamples:
            if len(comp.files) == 0:
                print '\033[34mE: Empty component: ' + comp.name + '\033[0m'
                continue
            if not hasattr(comp, 'dataset'): continue
            if not re.match("/[^/]+/[^/]+/MINIAOD(SIM)?", comp.dataset):
                continue
            if "/store/" not in comp.files[0]: continue
            if re.search("/store/(group|user|cmst3)/", comp.files[0]): continue
            if not tier2Checker.available(comp.dataset):
                print "\033[1;31mN: Dataset %s (%s) is not available on T2_CH_CERN\033[0m" % (
                    comp.name, comp.dataset)
            else:
                print "Y: Dataset %s (%s) is available on T2_CH_CERN" % (
                    comp.name, comp.dataset)
    if "refresh" in args:
        from CMGTools.Production.cacheChecker import CacheChecker
        checker = CacheChecker()
        for d in selsamples:
            if "--suspicious" in args:
                if len(d.files) > 0:
                    if "/store/mc " in d.files[0] or "/store/data" in d.files[
                            0]:
                        if getattr(d, 'dataset_entries', -1) > 0:
                            continue
                    else:
                        continue
            print "Checking ", d.name, " aka ", d.dataset
            if "--pretend" in args: continue
            checker.checkComp(d, verbose=True)
    if "check_versions" in args:
        from CMGTools.Production.datasetVersionChecker import DatasetVersionChecker
        checker = DatasetVersionChecker()
        for d in selsamples:
            if "--pretend" in args:
                print "Would check ", d.name, " aka ", d.dataset
            else:
                print "Checking", d.name, " ",
                checker.checkComp(d, verbose=True)
    if "list" in args or "summary" in args:
        from CMGTools.HToZZ4L.tools.configTools import printSummary
        dataSamples = samples
        printSummary(selsamples)
## ------------------------------------------------------
## note: cross section for q~ q~ from https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SUSYCrossSections13TeVsquarkantisquark (i.e. gluinos and stops decoupled)
##T6qqWW_mSq950_mCh325_mChi300 = kreator.makeMCComponentFromEOS('T6qqWW_mSq950_mCh325_mChi300', '/SMS_T6qqWW_mSq950_mChi325_mLSP300/', '/store/cmst3/group/susy/alobanov/MC/PHYS14/PU20_25ns/%s', '.*root', 0.0898112)
T6qqWW = [ ]


## mcSamplesPriv
## ------------------------------------------------------
mcSamplesPriv = SqGltttt + T1ttbb + T1ttbbWW + T1tttt + T2tt + T2ttDeg + T5qqqqVV + T5qqqqVVDeg + T5ttttDeg + T6ttWW + T6qqWW



from CMGTools.TTHAnalysis.setup.Efficiencies import *
dataDir = "$CMSSW_BASE/src/CMGTools/TTHAnalysis/data"

#Define splitting
for comp in mcSamplesPriv:
    comp.isMC = True
    comp.isData = False
    comp.splitFactor = 250 #  if comp.name in [ "WJets", "DY3JetsM50", "DY4JetsM50","W1Jets","W2Jets","W3Jets","W4Jets","TTJetsHad" ] else 100
    comp.puFileMC=dataDir+"/puProfile_Summer12_53X.root"
    comp.puFileData=dataDir+"/puProfile_Data12.root"
    comp.efficiency = eff2012


if __name__ == "__main__":
   import sys
   if "test" in sys.argv:
       from CMGTools.RootTools.samples.ComponentCreator import testSamples
       testSamples(mcSamplesPriv)