babymaker  e95a6a9342d4604277fe7cc6149b6b5b24447d89
utilities.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 from __future__ import print_function
4 
5 import glob
6 import string
7 import os
8 import sys
9 import ROOT
10 
11 ## Finding basename for each dataset
12 def findBaseSampleNames(folder):
13  infiles = set()
14  for file in glob.glob(folder+'/*.root'):
15  tag = file.split("RunII")[0]
16  tag = tag.split("13TeV")[0]
17  tag = tag.split("CUETP")[0]
18  tag = tag.split("-PromptReco")[0]
19  tag = tag.split("-23Sep2016")[0]
20  tag = tag.split("_runs")[0]
21  tag = tag.split("pythia")[0]
22  tag = tag.split("baby_")[1]
23  tag = tag.split("__")[0]
24  if tag[0] != '_': tag = "_"+tag
25  if tag[-1] != '_' and "Tune" not in tag and "Run2016" not in tag: tag = tag+"_"
26  infiles.add(tag)
27  sortedfiles = list()
28  for file in infiles:
29  sortedfiles.append(file)
30  sortedfiles = sorted(sortedfiles)
31 
32  return sortedfiles
33 
34 def fullPath(path):
35  return os.path.realpath(os.path.abspath(os.path.expanduser(path)))
36 
37 def ensureDir(path):
38  try:
39  os.makedirs(path)
40  except OSError:
41  if not os.path.isdir(path):
42  raise
43 
44 def ePrint(*args, **kwargs):
45  print(*args, file=sys.stderr, **kwargs)
46 
47 def flush():
48  sys.stdout.flush()
49  sys.stderr.flush()
50 
52  def __init__(self, path):
53  self.path = path
54  def __str__(self):
55  return self.path+" is not a ROOT file"
56 
58  def __init__(self, path, mode):
59  self.path = path
60  self.mode = mode
61  def __str__(self):
62  return "Could not open "+self.path+" in "+self.mode+" mode"
63 
65  def __init__(self, path, mode):
66  if os.path.splitext(path)[1] != ".root":
67  raise NonROOTFileError(path)
68  self.path = path
69  self.mode = mode
70  def __enter__(self):
71  self.file = ROOT.TFile(self.path, self.mode)
72  if self.file.IsZombie() or not self.file.IsOpen():
73  raise ROOTOpenError(self.path, self.mode)
74  return self.file
75  def __exit__(self, type, value, traceback):
76  self.file.Close()
77 
78 class Term(object):
79  PURPLE = '\033[95m'
80  CYAN = '\033[96m'
81  DARKCYAN = '\033[36m'
82  BLUE = '\033[94m'
83  GREEN = '\033[92m'
84  YELLOW = '\033[93m'
85  RED = '\033[91m'
86  BOLD = '\033[1m'
87  UNDERLINE = '\033[4m'
88  END = '\033[0m'
def ensureDir(path)
Definition: utilities.py:37
def __init__(self, path, mode)
Definition: utilities.py:65
def findBaseSampleNames(folder)
Finding basename for each dataset.
Definition: utilities.py:12
def __init__(self, path, mode)
Definition: utilities.py:58
def __enter__(self)
Definition: utilities.py:70
def __init__(self, path)
Definition: utilities.py:52
def flush()
Definition: utilities.py:47
def __exit__(self, type, value, traceback)
Definition: utilities.py:75
def ePrint(args, kwargs)
Definition: utilities.py:44
def fullPath(path)
Definition: utilities.py:34