CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions
combineBTagCalibrationData Namespace Reference

Functions

def check_csv_data
 
def main
 

Function Documentation

def combineBTagCalibrationData.check_csv_data (   csv_data)

Definition at line 9 of file combineBTagCalibrationData.py.

References cond::ecalcond.all, and cmsRelvalreport.exit.

Referenced by main().

9 
10 def check_csv_data(csv_data):
11  res = checker.run_check_csv(csv_data, False, False, False)
12  if not all(res):
13  print 'Checks on csv data failed. Exit.'
14  exit(-1)
15 
def combineBTagCalibrationData.main ( )

Definition at line 16 of file combineBTagCalibrationData.py.

References check_csv_data(), python.multivaluedict.dict, cmsRelvalreport.exit, and python.multivaluedict.pop().

16 
17 def main():
18  if len(sys.argv) < 4:
19  print 'Need at least two input- and one output-filename. Exit.'
20  exit(-1)
21  if os.path.exists(sys.argv[-1]):
22  print 'Output file exists. Exit.'
23  exit(-1)
24 
25  all_csv_data = dict()
26  header = None
27  tagger = None
28  for fname in sys.argv[1:-1]:
29  with open(fname) as f:
30  all_csv_data[fname] = f.readlines()
31  header = all_csv_data[fname].pop(0)
32  tggr = header.split('/')[0]
33  if tagger and tggr != tagger:
34  print 'Found different taggers: %s vs. %s Exit.' % (tagger, tggr)
35  exit(-1)
36  else:
37  tagger = tggr
38 
39  print '\n' + '='*80
40  print 'Checking consistency of individual input files...'
41  print '='*80
42  for fname, csv_data in all_csv_data.iteritems():
43  print '\nChecking file:', fname
44  print '='*80
45  check_csv_data(csv_data)
46 
47  print '\n' + '='*80
48  print 'Checking consistency of combinations...'
49  print '='*80
50  for one, two in itertools.combinations(all_csv_data.iteritems(), 2):
51  print '\nChecking combination:', one[0], two[0]
52  print '='*80
53  check_csv_data(one[1] + two[1])
54 
55  print '\nCombining data...'
56  print '='*80
57  with open(sys.argv[-1], 'w') as f:
58  f.write(header)
59  for csv_data in all_csv_data.itervalues():
60  f.write('\n')
61  f.writelines(csv_data)
62 
63  print 'Done.'
64