Ejemplo n.º 1
0
def specialSplit():
    """ ./job-panda.py [-q] -ssplit
    External pulser runs have no data cleaning cut.
    Has a memory leak (can't close both TFiles, damn you, ROOT); submit each run as a batch job.
    """
    cal = dsi.CalInfo()
    # runList = cal.GetSpecialRuns("extPulser")
    # runList = cal.GetSpecialRuns("longCal",5)
    runList = cal.GetSpecialRuns("forcedAcq", 8)
    for run in runList:

        inPath = "%s/waves/waveSkimDS%d_run%d.root" % (dsi.specialDir,
                                                       dsi.GetDSNum(run), run)
        outPath = "%s/split/splitSkimDS%d_run%d.root" % (
            dsi.specialDir, dsi.GetDSNum(run), run)

        outFiles = glob.glob("%s/split/splitSkimDS%d_run%d*.root" %
                             (dsi.specialDir, dsi.GetDSNum(run), run))
        for filename in outFiles:
            try:
                os.remove(filename)
            except OSError:
                pass

        if useJobQueue:
            sh("""./job-panda.py -splitf %s %s""" % (inPath, outPath))
        else:
            sh("""%s './job-panda.py -splitf %s %s'""" %
               (jobStr, inPath, outPath))
Ejemplo n.º 2
0
def specialDelete():
    """./job-panda.py -sdel"""

    # remove all files for specific run numbers
    removeList = [5940, 5941, 5946, 5961, 5962, 5963, 5978, 6205]
    for run in removeList:
        outFiles = glob.glob("%s/split/splitSkimDS%d_run%d*.root" %
                             (dsi.specialDir, dsi.GetDSNum(run), run))
        outFiles.extend([
            "%s/skim/skimDS%d_run%d_low.root" %
            (dsi.specialDir, dsi.GetDSNum(run), run)
        ])
        outFiles.extend([
            "%s/waves/waveSkimDS%d_run%d.root" %
            (dsi.specialDir, dsi.GetDSNum(run), run)
        ])
        outFiles.extend(
            glob.glob("%s/lat/latSkimDS%d_run%d_*.root" %
                      (dsi.specialDir, dsi.GetDSNum(run), run)))
        for filename in outFiles:
            try:
                os.remove(filename)
                print(filename)
            except OSError:
                pass
Ejemplo n.º 3
0
def specialWrite():
    """ ./job-panda.py -swrite
    Write TCuts from waveSkim files into splitSkim files.
    """
    from ROOT import TFile, TNamed, TObject
    cal = dsi.CalInfo()
    runList = cal.GetSpecialRuns("longCal", 5)

    for run in runList:
        dsNum = dsi.GetDSNum(run)
        wavePath = "%s/waves/waveSkimDS%d_run%d.root" % (dsi.specialDir, dsNum,
                                                         run)
        waveFile = TFile(wavePath)
        theCut = waveFile.Get("theCut").GetTitle()
        print(wavePath)

        splitFiles = glob.glob("%s/split/splitSkimDS%d_run%d*.root" %
                               (dsi.specialDir, dsNum, run))
        for idx in range(len(splitFiles)):
            if idx == 0:
                splitPath = "%s/split/splitSkimDS%d_run%d.root" % (
                    dsi.specialDir, dsNum, run)
            else:
                splitPath = "%s/split/splitSkimDS%d_run%d_%d.root" % (
                    dsi.specialDir, dsNum, run, idx)
            if not os.path.isfile(splitPath):
                print("File doesn't exist:", splitPath)
                return

            splitFile = TFile(splitPath, "UPDATE")
            thisCut = TNamed("theCut", theCut)
            thisCut.Write("", TObject.kOverwrite)
        print(splitFiles[-1])
Ejemplo n.º 4
0
def specialWave():
    """ ./job-panda.py [-q (use queue)] -swave """
    cal = dsi.CalInfo()
    # runList = cal.GetSpecialRuns("extPulser")
    # runList = cal.GetSpecialRuns("longCal",5)
    runList = cal.GetSpecialRuns("forcedAcq", 8)
    for run in runList:
        if useJobQueue:
            # sh("""./wave-skim -l -n -f %d %d -p %s/skim %s/waves >& ./logs/wave-ds%d-%d.txt""" % (dsi.GetDSNum(run),run,dsi.specialDir,dsi.specialDir,dsi.GetDSNum(run),run))
            sh("""./wave-skim -x -n -f %d %d -p %s/skim %s/waves >& ./logs/wave-ds%d-%d.txt"""
               % (dsi.GetDSNum(run), run, dsi.specialDir, dsi.specialDir,
                  dsi.GetDSNum(run), run))
        else:
            sh("""%s './wave-skim -x -n -f %d %d -p %s/skim %s/waves'""" %
               (jobStr, dsi.GetDSNum(run), run, dsi.specialDir,
                dsi.specialDir))
Ejemplo n.º 5
0
def specialSkim():
    """ ./job-panda.py [-q (use job queue)] -sskim """
    cal = dsi.CalInfo()
    # runList = cal.GetSpecialRuns("extPulser")
    # runList = cal.GetSpecialRuns("delayedTrigger")
    # runList = cal.GetSpecialRuns("longCal",5)
    runList = cal.GetSpecialRuns("forcedAcq", 8)
    for run in runList:
        if useJobQueue:
            # sh("""./skim_mjd_data -f %d -l -t 0.7 %s/skim >& ./logs/specialSkim-DS%d-%d.txt""" % (run,dsi.specialDir,dsi.GetDSNum(run),run))
            sh("""./skim_mjd_data -f %d -x -l %s/skim >& ./logs/specialSkim-DS%d-%d.txt"""
               % (run, dsi.specialDir, dsi.GetDSNum(run), run))
        else:
            sh("""%s './skim_mjd_data -f %d -x -l %s/skim'""" %
               (jobStr, run, dsi.specialDir))
Ejemplo n.º 6
0
def specialCheck():
    """./job-panda.py -scheck
    A next step could be to 'hadd' split files back together, but we'll wait for now.
    """
    from ROOT import TFile, TTree
    cal = dsi.CalInfo()
    runList = cal.GetSpecialRuns("extPulser")
    for run in runList:
        fileList = glob.glob("%s/lat/latSkimDS%d_run%d_*.root" %
                             (dsi.specialDir, dsi.GetDSNum(run), run))
        for f in fileList:
            tf = TFile(f)
            tr = tf.Get("skimTree")
            print(f)
            print(tr.GetEntries())
            tr.GetEntry(0)
            tf.Close()
Ejemplo n.º 7
0
def specialLAT():
    """ ./job-panda.py [-q (use job queue)] -slat"""
    cal = dsi.CalInfo()
    # runList = cal.GetSpecialRuns("extPulser")
    # runList = cal.GetSpecialRuns("longCal",5)
    runList = cal.GetSpecialRuns("forcedAcq", 8)

    # deal with unsplit files
    # run = runList[0]
    # dsNum = dsi.GetDSNum(run)
    # inFile = "%s/waves/waveSkimDS%d_run%d.root" % (dsi.specialDir,dsNum,run)
    # outFile = "%s/lat/latSkimDS%d_run%d.root" % (dsi.specialDir,dsNum,run)
    # sh("""./lat.py -x -b -f %d %d -p %s %s""" % (dsNum,run,inFile,outFile))

    # deal with split files
    for run in runList:

        dsNum = dsi.GetDSNum(run)
        inFiles = glob.glob("%s/split/splitSkimDS%d_run%d*.root" %
                            (dsi.specialDir, dsNum, run))
        for idx in range(len(inFiles)):
            if idx == 0:
                inFile = "%s/split/splitSkimDS%d_run%d.root" % (dsi.specialDir,
                                                                dsNum, run)
            else:
                inFile = "%s/split/splitSkimDS%d_run%d_%d.root" % (
                    dsi.specialDir, dsNum, run, idx)
            if not os.path.isfile(inFile):
                print("File doesn't exist:", inFile)
                return
            outFile = "%s/lat/latSkimDS%d_run%d_%d.root" % (dsi.specialDir,
                                                            dsNum, run, idx)

            if useJobQueue:
                # this is what you would want for a normal cron queue
                # sh("""./lat.py -x -b -f %d %d -p %s %s""" % (dsNum, run, inFile, outFile))

                # this is what i need for a 1-node job pump
                # sh("""./lat.py -x -b -f %d %d -p %s %s >& ./logs/extPulser-%d-%d.txt""" % (dsNum, run, inFile, outFile, run, idx))
                # sh("""./lat.py -b -f %d %d -p %s %s >& ./logs/longCal-%d-%d.txt""" % (dsNum, run, inFile, outFile, run, idx))
                sh("""./lat.py -x -b -f %d %d -p %s %s >& ./logs/forceAcq-%d-%d.txt"""
                   % (dsNum, run, inFile, outFile, run, idx))
            else:
                sh("""%s './lat.py -x -b -f %d %d -p %s %s' """ %
                   (jobStr, dsNum, run, inFile, outFile))