CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
validation.SeparateValidation Class Reference

Public Member Functions

def __init__
 
def createHtmlReport
 
def doPlots
 

Private Member Functions

def _doPlots
 

Private Attributes

 _htmlReport
 
 _labels
 
 _newdir
 
 _openFiles
 
 _plotterDrawArgs
 
 _samples
 
 _subdirprefix
 

Detailed Description

Definition at line 1323 of file validation.py.

Constructor & Destructor Documentation

def validation.SeparateValidation.__init__ (   self,
  samples,
  newdir 
)

Definition at line 1326 of file validation.py.

1327  def __init__(self, samples, newdir):
1328  self._samples = samples
1329  self._newdir = newdir
1330  if not os.path.exists(newdir):
1331  os.makedirs(newdir)

Member Function Documentation

def validation.SeparateValidation._doPlots (   self,
  plotterFolder,
  dqmSubFolder,
  newsubdir,
  newdir,
  iProc,
  return_dict 
)
private

Definition at line 1364 of file validation.py.

References validation._findDuplicates(), DigiInvestigatorHistogramMaker._labels, SeedMultiplicityAnalyzer._labels, hitfit::Constraint_Intermed_Labels._labels, validation.SimpleValidation._labels, validation.SeparateValidation._labels, plotting.PlotFolder._labels, validation.SimpleValidation._openFiles, validation.SeparateValidation._openFiles, validation.Validation._plotterDrawArgs, validation.SimpleValidation._plotterDrawArgs, validation.SeparateValidation._plotterDrawArgs, join(), print(), and str.

1365  def _doPlots(self, plotterFolder, dqmSubFolder, newsubdir, newdir, iProc, return_dict):
1366  fileList = plotterFolder.draw(directory=newdir, **self._plotterDrawArgs)
1367 
1368  # check if plots are produced
1369  if len(fileList) == 0:
1370  print("No object found in %s" % plotterFolder.getName())
1371 
1372  # check if there are duplicated plot
1373  dups = _findDuplicates(fileList)
1374  if len(dups) > 0:
1375  print("Plotter produced multiple files with names", ", ".join(dups))
1376  print("Typically this is a naming problem in the plotter configuration")
1377  sys.exit(1)
1378 
1379  linkList = []
1380  for f in fileList:
1381  if f[:f.rfind("/")] not in linkList :
1382  if str(f[:f.rfind("/")]) != str(newdir) :
1383  linkList.append(f[:f.rfind("/")])
1384 
1385  for tableCreator in plotterFolder.getTableCreators():
1386  self._htmlReport.addTable(tableCreator.create(self._openFiles, self._labels, dqmSubFolder))
1387 
1388  for link in linkList :
1389  if not os.path.exists("%s/res"%link):
1390  os.makedirs("%s/res"%link)
1391  downloadables = ["index.php", "res/jquery-ui.js", "res/jquery.js", "res/style.css", "res/style.js", "res/theme.css"]
1392  for d in downloadables:
1393  if not os.path.exists("%s/%s" % (link,d)):
1394  urllib.request.urlretrieve("https://raw.githubusercontent.com/rovere/php-plots/master/%s"%d, "%s/%s"%(link,d))
1395 
1396  print("Created separated plots in %s" % newdir)
1397  return_dict[iProc] = list(map(lambda n: n.replace(newdir, newsubdir), linkList))
def _findDuplicates
Definition: validation.py:1179
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47
static std::string join(char **cmd)
Definition: RemoteFile.cc:19
#define str(s)
def validation.SeparateValidation.createHtmlReport (   self,
  validationName = "" 
)

Definition at line 1334 of file validation.py.

References validation.SimpleValidation._htmlReport, validation.SeparateValidation._htmlReport, validation.SimpleValidation._newdir, and validation.SeparateValidation._newdir.

1335  def createHtmlReport(self, validationName=""):
1336  if hasattr(self._htmlReport, "write"):
1337  raise Exception("HTML report object already created. There is probably some logic error in the calling code.")
1338  self._htmlReport = html.HtmlReport(validationName, self._newdir)
1339  return self._htmlReport
def validation.SeparateValidation.doPlots (   self,
  plotters,
  plotterDrawArgs = {},
  kwargs 
)

Definition at line 1340 of file validation.py.

1341  def doPlots(self, plotters, plotterDrawArgs={}, **kwargs):
1342  self._plotterDrawArgs = plotterDrawArgs
1343 
1344  for sample in self._samples:
1345  self._subdirprefix = sample.label()
1346  self._labels = sample.legendLabels()
1347  self._htmlReport.beginSample(sample)
1349  self._openFiles = []
1350  for f in sample.files():
1351  if os.path.exists(f):
1352  self._openFiles.append(ROOT.TFile.Open(f))
1353  else:
1354  print("File %s not found (from sample %s), ignoring it" % (f, sample.name()))
1355  self._openFiles.append(None)
1356 
1357  for plotter in plotters:
1358  _doPlotsForPlotter(self, plotter, sample, **kwargs)
1359 
1360  for tf in self._openFiles:
1361  if tf is not None:
1362  tf.Close()
1363  self._openFiles = []
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47
def _doPlotsForPlotter
Definition: validation.py:1189

Member Data Documentation

validation.SeparateValidation._htmlReport
private

Definition at line 1332 of file validation.py.

Referenced by validation.SeparateValidation.createHtmlReport().

validation.SeparateValidation._labels
private

Definition at line 1345 of file validation.py.

Referenced by validation.SeparateValidation._doPlots().

validation.SeparateValidation._newdir
private

Definition at line 1328 of file validation.py.

Referenced by validation.SeparateValidation.createHtmlReport().

validation.SeparateValidation._openFiles
private

Definition at line 1348 of file validation.py.

Referenced by validation.SeparateValidation._doPlots().

validation.SeparateValidation._plotterDrawArgs
private

Definition at line 1341 of file validation.py.

Referenced by validation.SeparateValidation._doPlots().

validation.SeparateValidation._samples
private

Definition at line 1327 of file validation.py.

validation.SeparateValidation._subdirprefix
private

Definition at line 1344 of file validation.py.