Пример #1
0
    def plotNSamples(cls, npatterns, etBins, etaBins, outname='nPatterns.pdf'):
        """Plot number of samples per bin"""
        logger = Logger.getModuleLogger("PlotNSamples")
        from ROOT import TCanvas, gROOT, kTRUE, kFALSE, TH2I, TText
        gROOT.SetBatch(kTRUE)
        c1 = TCanvas("plot_patterns_signal", "a", 0, 0, 800, 400)
        c1.Draw()
        shape = [len(etBins) - 1, len(etaBins) - 1]
        histo1 = TH2I(
            "text_stats",
            "#color[4]{Signal}/#color[2]{Background} available statistics",
            shape[0], 0, shape[0], shape[1], 0, shape[1])
        #histo1 = TH2I("text_stats", "Signal/Background available statistics", shape[0], 0, shape[0], shape[1], 0, shape[1])
        histo1.SetStats(kFALSE)
        histo1.Draw("TEXT")
        histo1.SetXTitle("E_{T}")
        histo1.SetYTitle("#eta")
        histo1.GetXaxis().SetTitleSize(0.04)
        histo1.GetYaxis().SetTitleSize(0.04)
        histo1.GetXaxis().SetLabelSize(0.04)
        histo1.GetYaxis().SetLabelSize(0.04)
        histo1.GetXaxis().SetTickSize(0)
        histo1.GetYaxis().SetTickSize(0)
        ttest = TText()
        ttest.SetTextAlign(22)
        for etBin in range(shape[0]):
            for etaBin in range(shape[1]):
                key = 'et%d_eta%d' % (etBin, etaBin)
                ttest.SetTextColor(4)
                ttest.DrawText(.5 + etBin, .75 + etaBin,
                               's: ' + str(npatterns['sgnPattern_' + key]))

                ttest.SetTextColor(2)
                ttest.DrawText(.5 + etBin, .25 + etaBin,
                               'b: ' + str(npatterns['bkgPattern_' + key]))

                try:
                    histo1.GetYaxis().SetBinLabel(
                        etaBin + 1, '#bf{%d} : %.2f->%.2f' %
                        (etaBin, etaBins[etaBin], etaBins[etaBin + 1]))
                except Exception:
                    logger.error("Couldn't retrieve eta bin %d bounderies.",
                                 etaBin)
                    histo1.GetYaxis().SetBinLabel(etaBin + 1, str(etaBin))
                try:
                    histo1.GetXaxis().SetBinLabel(
                        etBin + 1, '#bf{%d} : %d->%d [GeV]' %
                        (etBin, etBins[etBin], etBins[etBin + 1]))
                except Exception:
                    logger.error("Couldn't retrieve et bin %d bounderies.",
                                 etBin)
                    histo1.GetXaxis().SetBinLabel(etBin + 1, str(etaBin))
        c1.SetGrid()
        c1.Update()
        c1.SaveAs(outname)
Пример #2
0
def watchLock(filename):
    logger = Logger.getModuleLogger("watchLock")
    lockFileName = os.path.join(
        os.path.join(os.path.dirname(filename),
                     '.' + os.path.basename(filename) + '.lock'))
    firstMsg = True
    while os.path.exists(lockFileName):
        if firstMsg:
            logger.warning("Waiting other process to unlock file %s...",
                           lockFileName)
            firstMsg = False
        sleep(1)
    lockFile = LockFile(lockFileName)
    return lockFile
Пример #3
0
from prometheus import EventATLAS
from prometheus.enumerations import Dataframe as DataframeEnum
from Gaugi.messenger import LoggingLevel, Logger
from Gaugi import ToolSvc, ToolMgr
import argparse
mainLogger = Logger.getModuleLogger("job")
parser = argparse.ArgumentParser(description='', add_help=False)
parser = argparse.ArgumentParser()

parser.add_argument(
    '-i',
    '--inputFiles',
    action='store',
    dest='inputFiles',
    required=True,
    nargs='+',
    help="The input files that will be used to generate the plots")

parser.add_argument('-o',
                    '--outputFile',
                    action='store',
                    dest='outputFile',
                    required=False,
                    default=None,
                    help="The output store name.")

parser.add_argument('-n',
                    '--nov',
                    action='store',
                    dest='nov',
                    required=False,
Пример #4
0
#!/usr/bin/env python3
from Gaugi.messenger import LoggingLevel, Logger
from Gaugi import GeV
import argparse
import sys, os

mainLogger = Logger.getModuleLogger("pythia")
parser = argparse.ArgumentParser(description='', add_help=False)
parser = argparse.ArgumentParser()

#
# Mandatory arguments
#

parser.add_argument('-i',
                    '--mainFile',
                    action='store',
                    dest='mainFile',
                    required=False,
                    default="",
                    help="The main pythia file configuration")

parser.add_argument('-o',
                    '--outputFile',
                    action='store',
                    dest='outputFile',
                    required=True,
                    help="The event file generated by pythia.")

parser.add_argument(
    '--filter',
Пример #5
0
#!/usr/bin/env python

from Gaugi.messenger import LoggingLevel, Logger
import argparse
mainLogger = Logger.getModuleLogger("prometheus.merge")
parser = argparse.ArgumentParser(description='', add_help=False)
parser = argparse.ArgumentParser()

parser.add_argument('-i',
                    '--inputFiles',
                    action='store',
                    dest='fList',
                    required=True,
                    nargs='+',
                    help="The input files.")

parser.add_argument('-o',
                    '--outputFile',
                    action='store',
                    dest='output',
                    required=True,
                    default='merged.root',
                    help="The output file name.")

parser.add_argument('-nm',
                    '--nFilesPerMerge',
                    action='store',
                    dest='nFilesPerMerge',
                    required=False,
                    default=20,
                    type=int,
Пример #6
0
#!/usr/bin/env python3

from Gaugi.messenger import LoggingLevel, Logger
import argparse
import sys, os

mainLogger = Logger.getModuleLogger("Parser")
parser = argparse.ArgumentParser(description='', add_help=False)
parser = argparse.ArgumentParser()

parser.add_argument(
    '-o',
    '--outputFile',
    action='store',
    dest='outputFile',
    required=True,
    help="The event file generated by the reconstruction framework.")

parser.add_argument('-f',
                    '--filter',
                    action='store',
                    dest='filter',
                    required=True,
                    help="The event filter (Zee, JF17 or MB).")

parser.add_argument('-e',
                    '--evt',
                    '--numberOfEventsPerJob',
                    action='store',
                    dest='numberOfEventsPerJob',
                    required=True,
Пример #7
0
#!/usr/bin/env python3

from Gaugi.messenger import LoggingLevel, Logger
from Gaugi.messenger.macros import *
from pprint import pprint
import argparse

logger = Logger.getModuleLogger("prometheus.prun.lcg")
parser = argparse.ArgumentParser(description='', add_help=False)
parser = argparse.ArgumentParser()

parser.add_argument('--inDS',
                    action='store',
                    dest='inDS',
                    required=True,
                    help="The dataset input file")

parser.add_argument('--outDS',
                    action='store',
                    dest='outDS',
                    required=True,
                    help="The dataset input file")

parser.add_argument('-c',
                    '--command',
                    action='store',
                    dest='command',
                    required=True,
                    help="The command job")

parser.add_argument('--containerImage',
Пример #8
0
    kCyan + 1, kOrange + 1, kBlack + 2, kRed + 3, kBlue + 3, kGreen + 3,
    kMagenta + 3, kCyan + 3, kOrange + 3, kGray, kRed - 7, kBlue - 7,
    kGreen - 7, kMagenta - 7, kCyan - 7, kOrange - 7, kYellow + 2, kRed - 5,
    kBlue - 5, kGreen - 5, kMagenta - 5, kCyan - 5, kOrange - 5, 21, 22, 23,
    24, 25, 26, 27, 28, 29, 30, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 21, 22,
    23, 24, 25, 26, 27, 28, 29, 30
]

local_these_transcolors = [
    TColor.GetColorTransparent(c, .5) for c in local_these_colors
]
local_these_marker = (23, 24, 22, 26, 32, 23, 20, 25)
local_these_marker_full = (20, 21, 22, 23, 33, 34)
local_these_marker_open = (24, 25, 26, 32, 27, 28)

mainLogger = Logger.getModuleLogger("PlotTools", LoggingLevel.INFO)

parser = argparse.ArgumentParser(description='', add_help=False)
parser = argparse.ArgumentParser()

parser.add_argument('-l',
                    '--legends',
                    action='store',
                    dest='legends',
                    required=False,
                    nargs='+',
                    default=None,
                    help="The legends to be add in the TLegend display")

parser.add_argument('--extraText1',
                    action='store',
Пример #9
0
                if not proc[1].poll() is None:
                    #MSG_INFO( self,  ('pop process id (%d) from the stack')%(proc[0]), extra={'color':'0;35'})
                    MSG_INFO(self, ('pop process id (%d) from the stack') %
                             (proc[0]))
                    self.process_pipe.remove(proc)

        # Merge
        command = "hadd -f " + self._output
        for fname in self.output_to_merge:
            command += ' ' + fname
        os.system(command)
        for fname in self.output_to_merge:
            os.system('rm -rf ' + fname)


mainLogger = Logger.getModuleLogger("prun.job")
parser = argparse.ArgumentParser(description='', add_help=False)
parser = argparse.ArgumentParser()

parser.add_argument('-o',
                    '--outputFile',
                    action='store',
                    dest='outputFile',
                    required=True,
                    help="The input files.")

parser.add_argument('-c',
                    '--command',
                    action='store',
                    dest='command',
                    required=True,
Пример #10
0
        if not proc[1].poll() is None:
          #MSG_INFO( self,  ('pop process id (%d) from the stack')%(proc[0]), extra={'color':'0;35'})
          MSG_INFO( self,  ('pop process id (%d) from the stack')%(proc[0]) )
          # remove proc from the pipe
          self.process_pipe.remove(proc)










mainLogger = Logger.getModuleLogger("prometheus.job")
parser = argparse.ArgumentParser(description = '', add_help = False)
parser = argparse.ArgumentParser()

parser.add_argument('-i','--inputFiles', action='store', 
    dest='fList', required = True, nargs='+',
    help = "The input files.")

parser.add_argument('-c','--command', action='store', 
    dest='command', required = True,
    help = "The command job")

parser.add_argument('-mt','--numberOfThreads', action='store', 
    dest='mt', required = False, default = 8, type=int,
    help = "The number of threads")
Пример #11
0
__all__ = ['RawDictStreamable', 'RawDictStreamer', 'RawDictCnv', 'mangle_attr',
           'LoggerStreamable', 'LoggerRawDictStreamer', 'checkAttrOrSetDefault',
           'isRawDictFormat', 'retrieveRawDict']

from Gaugi.messenger import Logger

mLogger = Logger.getModuleLogger( __name__ )

def mangle_attr(source, attr):
  """
  Simulate python private attritubutes mangling. Taken from:
  http://stackoverflow.com/a/7789483/1162884
  """
  # return public attrs unchanged
  if not attr.startswith("__") or attr.endswith("__") or '.' in attr:
    return attr
  # if source is an object, get the class
  if not hasattr(source, "__bases__"):
    source = source.__class__
  # mangle attr
  return "_%s%s" % (source.__name__.lstrip("_"), attr)

class RawDictStreamer( Logger ):
  """
  This is the default streamer class, responsible of converting python classes
  to raw dictionaries.
  """

  def __init__(self, transientAttrs = set(), toPublicAttrs = set(), **kw):
    "Initialize streamer and declare transient variables."
    Logger.__init__(self, kw)