Exemple #1
0
def loop(chain=None,
         chainI=None,
         outer={},
         inner={},
         innerEvent={},
         options={}):
    if outer["progress"]:
        print "Looping:"

    kargs = {"book": autoBook.autoBook("book")}
    kargs.update(options)

    try:

        def outerInnerCompare2(chain, iEntry):
            return outerInnerCompare(chain, iEntry, outer, inner, innerEvent,
                                     chainI, kargs)

        nMin = outer["nEventsSkip"]
        nMax = (outer["nEventsSkip"] +
                outer["nEventsMax"]) if outer["nEventsMax"] else None
        chainLoop(chain,
                  nMin,
                  nMax,
                  outerInnerCompare2,
                  progress=outer["progress"],
                  sparseLoop=outer["sparseLoop"])

    except KeyboardInterrupt:
        printer.warning("KeyboardInterrupt in loop()")

    return kargs["book"]
Exemple #2
0
def loop(chain=None, chainI=None, outer={}, inner={}, innerEvent={}, oMapF={}, options={}):
    if outer["progress"]:
        print("Looping:")

    kargs = {"book": autoBook.autoBook("book"),
             "warnQuality": outer["warnQuality"],
             "raw1": {},
             "raw2": {},
             "chain": chain,
             "chainI": chainI,
             "outer": outer,
             "inner": inner}
    kargs.update(options)

    try:
        def outerInnerCompare2(chain, iEntry):
            kargs["evn"], kargs["orn"] = oMapF[iEntry]
            return outerInnerCompare(iEntry, innerEvent, kargs)

        nMin = outer["nEventsSkip"]
        nMax = (outer["nEventsSkip"] + outer["nEventsMax"]) if outer["nEventsMax"] else None
        chainLoop(chain, nMin, nMax, outerInnerCompare2,
                  progress=outer["progress"], sparseLoop=outer["sparseLoop"])

    except KeyboardInterrupt:
        printer.warning("KeyboardInterrupt in loop()")

    return kargs["book"]
Exemple #3
0
def go(outer={}, inner={}, label="",
       useEvn=False, filterEvn=False, ornTolerance=None,
       printEventMap=False, identityMap=False, report=True):
    innerEvent = {}
    deltaOrn = {}
    oMapF, oMapB = eventMaps(useEvn=useEvn, filterEvn=filterEvn, **outer)
    iMapF = iMapB = {}

    if inner:
        iMapF, iMapB = eventMaps(useEvn=useEvn, filterEvn=filterEvn, **inner)
        innerEvent = eventToEvent(oMapF, iMapB, ornTolerance=ornTolerance)
        if identityMap:
            for key in innerEvent.keys():
                innerEvent[key] = key
        if printEventMap:
            for oEvent, iEvent in sorted(innerEvent.iteritems()):
                print ", ".join(["oEvent = %s" % str(oEvent),
                                 "oOrnEvn = %s" % str(oMapF[oEvent]),
                                 "iEvent = %s" % str(iEvent),
                                 ])

    book = autoBook.autoBook("book")
    loop(inner=inner, outer=outer, innerEvent=innerEvent, book=book)

    #write results to a ROOT file
    f = r.TFile("%s/%s.root" % (utils.outputDir(), label), "RECREATE")
    gr = graph(categories(oMap=oMapF, iMap=iMapF, innerEvent=innerEvent))
    nBoth = len(filter(lambda x: x is not None, innerEvent.values()))

    gr.SetName("category_vs_time")
    labels = ["only %s (%d)" % (inner["label"],
                                len(iMapF)-nBoth) if inner else "",
              "only %s (%d)" % (outer["label"],
                                len(oMapF)-nBoth) if outer else "",
              "both (%d)" % nBoth if inner else "",
              ]
    gr.SetTitle("_".join(labels))
    gr.Write()

    for key, h in book.iteritems():
        h.Write()
    f.Close()

    if report:
        s = "%s: %4s = %6d" % (label, outer["label"], len(oMapF))
        if inner:
            s += ", %4s = %6d, both = %6d" % (inner["label"], len(iMapB), nBoth)
        print s
Exemple #4
0
def loop(chain=None,
         chainI=None,
         outer={},
         inner={},
         innerEvent={},
         oMapF={},
         options={}):
    if outer["progress"]:
        print "Looping:"

    kargs = {
        "book": autoBook.autoBook("book"),
        "warnQuality": outer["warnQuality"],
        "raw1": {},
        "raw2": {},
        "chain": chain,
        "chainI": chainI,
        "outer": outer,
        "inner": inner
    }
    kargs.update(options)

    try:

        def outerInnerCompare2(chain, iEntry):
            kargs["evn"], kargs["orn"] = oMapF[iEntry]
            return outerInnerCompare(iEntry, innerEvent, kargs)

        nMin = outer["nEventsSkip"]
        nMax = (outer["nEventsSkip"] +
                outer["nEventsMax"]) if outer["nEventsMax"] else None
        chainLoop(chain,
                  nMin,
                  nMax,
                  outerInnerCompare2,
                  progress=outer["progress"],
                  sparseLoop=outer["sparseLoop"])

    except KeyboardInterrupt:
        printer.warning("KeyboardInterrupt in loop()")

    return kargs["book"]
Exemple #5
0
def loop(chain=None, chainI=None, outer={}, inner={}, innerEvent={}, options={}):
    if outer["progress"]:
        print "Looping:"

    kargs = {"book": autoBook.autoBook("book")}
    kargs.update(options)

    try:
        def outerInnerCompare2(chain, iEntry):
            return outerInnerCompare(chain, iEntry, outer, inner, innerEvent, chainI, kargs)

        nMin = outer["nEventsSkip"]
        nMax = (outer["nEventsSkip"] + outer["nEventsMax"]) if outer["nEventsMax"] else None
        chainLoop(chain, nMin, nMax, outerInnerCompare2,
                  progress=outer["progress"], sparseLoop=outer["sparseLoop"])

    except KeyboardInterrupt:
        printer.warning("KeyboardInterrupt in loop()")

    return kargs["book"]
Exemple #6
0
    def setupSteps(self, minimal = False) :
        r.gROOT.cd()
        current = r.gDirectory
        priorFilters = []
        self.steps[0].books = []

        for step in self.steps :
            step.setOutputFileStem(self.outputFileStem)
            step.setInputFileStem(self.inputFileStem)
            current = current.mkdir(step.name)
            step.book = autoBook(current)
            step.tracer = wrappedChain.keyTracer(None) if configuration.trace() and (step.isSelector or issubclass(type(step),wrappedChain.wrappedChain.calculable)) else None
            step.priorFilters = set(priorFilters)

            self.steps[0].books.append(step.book)
            if step.isSelector and step!=self.steps[0] : priorFilters.append((step.name,step.moreNames))

            if minimal : continue
            if self.quietMode : step.makeQuiet()
            assert step.isSelector ^ hasattr(step,"uponAcceptance"), "Step %s must implement 1 and only 1 of {select,uponAcceptance}"%step.name
            step.setup(self.chains[self.mainTree], self.mainTree[0])