CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes
compare_using_files_v2.RootFileComparison Class Reference
Inheritance diagram for compare_using_files_v2.RootFileComparison:

Public Member Functions

def __init__ (self, db_name, work_path=None, do_html=False)
 
def compare (self, filename1, filename2, st_test)
 
def walk_through (self, c, directory, f1, f2, st_test, parent_id=None, path='')
 
def was_compared (self, filename1, filename2, st_test_name)
 

Public Attributes

 db_name
 
 do_html
 
 work_path
 

Detailed Description

Definition at line 38 of file compare_using_files_v2.py.

Constructor & Destructor Documentation

def compare_using_files_v2.RootFileComparison.__init__ (   self,
  db_name,
  work_path = None,
  do_html = False 
)

Definition at line 39 of file compare_using_files_v2.py.

39  def __init__(self, db_name, work_path=None, do_html=False):
40  self.db_name = db_name
41  self.work_path = work_path
42  self.do_html = do_html
43 
def __init__(self, db_name, work_path=None, do_html=False)

Member Function Documentation

def compare_using_files_v2.RootFileComparison.compare (   self,
  filename1,
  filename2,
  st_test 
)

Definition at line 79 of file compare_using_files_v2.py.

References estimatePileup.basename, compare_using_files_v2.RootFileComparison.db_name, and compare_using_files_v2.RootFileComparison.walk_through().

79  def compare(self, filename1, filename2, st_test):
80  if not 'TFile' in globals():
81  from ROOT import TFile
82  f1 = TFile(filename1)
83  f2 = TFile(filename2)
84 
85  conn = sqlite3.connect(self.db_name)
86  c = conn.cursor()
87 
88  ## Create Directory and HistogramComparison structure in the DB
89  dir_DQMData = f1.GetDirectory("DQMData")
90  dir_Run = None
91  for elem in dir_DQMData.GetListOfKeys():
92  elem_name = elem.GetName()
93  if elem_name.startswith('Run '):
94  dir_Run = dir_DQMData.Get(elem_name)
95 
96  fid, tid, dir_id = self.walk_through(c, dir_Run, f1, f2, st_test)
97 
98  c.execute('''DELETE FROM Directory WHERE from_histogram_id IS NULL
99  AND till_histogram_id IS NULL''')
100  c.execute('''INSERT INTO RootFileComparison(filename1, filename2, directory_id)
101  VALUES (?, ?, ?)''', (basename(filename1), basename(filename2), dir_id))
102  root_file_comparison_id = c.lastrowid
103 
104  conn.commit()
105  conn.close()
106  f1.Close()
107  f2.Close()
108  return root_file_comparison_id
109 
def compare(self, filename1, filename2, st_test)
def walk_through(self, c, directory, f1, f2, st_test, parent_id=None, path='')
def compare_using_files_v2.RootFileComparison.walk_through (   self,
  c,
  directory,
  f1,
  f2,
  st_test,
  parent_id = None,
  path = '' 
)

Definition at line 44 of file compare_using_files_v2.py.

References join(), edm.print(), and compare_using_files_v2.RootFileComparison.walk_through().

Referenced by compare_using_files_v2.RootFileComparison.compare(), and compare_using_files_v2.RootFileComparison.walk_through().

44  def walk_through(self, c, directory, f1, f2, st_test, parent_id=None, path=''):
45  c.execute('''INSERT INTO Directory(name, parent_id) VALUES (?, ?)''',
46  (directory.GetName(), parent_id))
47  dir_id = c.lastrowid
48  from_id, till_id = None, None
49  for elem in directory.GetListOfKeys():
50  elem_name = elem.GetName()
51  subdir = directory.Get(elem_name)
52  if subdir:
53  if subdir.IsFolder():
54  subdir_from_id, subdir_till_id, subdir_id = self.walk_through(c, subdir,
55  f1, f2, st_test, dir_id, path=join(path, elem_name))
56  if subdir_till_id and (not till_id or subdir_till_id > till_id):
57  till_id = subdir_till_id
58  if subdir_from_id and (not from_id or subdir_from_id < from_id):
59  from_id = subdir_from_id
60  else:
61  hist1 = f1.Get(join(directory.GetPath(), elem_name))
62  hist2 = f2.Get(join(directory.GetPath(), elem_name))
63  try:
64  p_value = st_test.do_test(hist1, hist2)
65  c.execute('''INSERT INTO HistogramComparison(name, p_value, directory_id)
66  VALUES (?, ?, ?)''', (elem_name, p_value, dir_id))
67  comp_id = c.lastrowid
68  if comp_id > till_id:
69  till_id = comp_id
70  if not from_id or comp_id < from_id:
71  from_id = comp_id
72  except ComparisonError as e:
73  print('Error comparing %s: %s' % (hist1, e))
74  if from_id and till_id:
75  c.execute('''UPDATE Directory SET from_histogram_id=?, till_histogram_id=?
76  WHERE id=?''', (from_id, till_id, dir_id))
77  return from_id, till_id, dir_id
78 
def walk_through(self, c, directory, f1, f2, st_test, parent_id=None, path='')
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def compare_using_files_v2.RootFileComparison.was_compared (   self,
  filename1,
  filename2,
  st_test_name 
)

Definition at line 110 of file compare_using_files_v2.py.

References compare_using_files_v2.RootFileComparison.db_name.

Referenced by ValidationMatrix_v2.ReleaseComparison.compare().

110  def was_compared(self, filename1, filename2, st_test_name):
111  conn = sqlite3.connect(self.db_name)
112  c = conn.cursor()
113  c.execute('''SELECT release_comparison_id FROM RootFileComparison WHERE (filename1=? and filename2=?)
114  OR (filename1=? and filename2=?)''', (filename1, filename2, filename2, filename1))
115  file_comparison = c.fetchall()
116 
117  for release_comparison_id in file_comparison:
118  c.execute('''SELECT statistical_test FROM ReleaseComparison WHERE
119  id = ?''', release_comparison_id)
120  statistical_test = c.fetchone()
121  if statistical_test and statistical_test[0] == st_test_name:
122  conn.close()
123  return True
124  conn.close()
125  return False
126 
127 
def was_compared(self, filename1, filename2, st_test_name)

Member Data Documentation

compare_using_files_v2.RootFileComparison.db_name
compare_using_files_v2.RootFileComparison.do_html

Definition at line 42 of file compare_using_files_v2.py.

compare_using_files_v2.RootFileComparison.work_path