CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
plotting.PlotFolder Class Reference
Inheritance diagram for plotting.PlotFolder:
trackingPlots.TrackingPlotFolder

Public Member Functions

def __init__ (self, plotGroups, kwargs)
 
def append (self, plotGroup)
 
def create (self, dirsNEvents, labels, isPileupSample=True, requireAllHistograms=False)
 
def draw (self, prefix=None, separate=False, saveFormat=".pdf", ratio=True)
 
def getNumberOfEventsHistogram (self)
 
def getPage (self)
 
def getPlotGroup (self, name)
 
def getPlotGroups (self)
 
def getPurpose (self)
 
def getSection (self)
 
def iterSelectionName (self, plotFolderName, translatedDqmSubFolder)
 
def limitSubFolder (self, limitOnlyTo, translatedDqmSubFolder)
 
def loopSubFolders (self)
 
def onlyForConversion (self)
 
def onlyForElectron (self)
 
def onlyForPileup (self)
 
def set (self, plotGroups)
 
def translateSubFolder (self, dqmSubFolderName)
 

Private Attributes

 _labels
 
 _loopSubFolders
 
 _numberOfEventsHistogram
 
 _onlyForConversion
 
 _onlyForElectron
 
 _onlyForPileup
 
 _page
 
 _plotGroups
 
 _purpose
 
 _section
 

Detailed Description

Represents a collection of PlotGroups, produced from a single folder in a DQM file

Definition at line 2359 of file plotting.py.

Constructor & Destructor Documentation

def plotting.PlotFolder.__init__ (   self,
  plotGroups,
  kwargs 
)
Constructor.

Arguments:
plotGroups     -- List of PlotGroup objects

Keyword arguments
loopSubFolders -- Should the subfolders be looped over? (default: True)
onlyForPileup  -- Plots this folder only for pileup samples
onlyForElectron -- Plots this folder only for electron samples
onlyForConversion -- Plots this folder only for conversion samples
purpose        -- html.PlotPurpose member class for the purpose of the folder, used for grouping of the plots to the HTML pages
page           -- Optional string for the page in HTML generatin
section        -- Optional string for the section within a page in HTML generation
numberOfEventsHistogram -- Optional path to histogram filled once per event. Needed if there are any plots normalized by number of events. Path is relative to "possibleDqmFolders".

Definition at line 2361 of file plotting.py.

2361  def __init__(self, *plotGroups, **kwargs):
2362  """Constructor.
2363 
2364  Arguments:
2365  plotGroups -- List of PlotGroup objects
2366 
2367  Keyword arguments
2368  loopSubFolders -- Should the subfolders be looped over? (default: True)
2369  onlyForPileup -- Plots this folder only for pileup samples
2370  onlyForElectron -- Plots this folder only for electron samples
2371  onlyForConversion -- Plots this folder only for conversion samples
2372  purpose -- html.PlotPurpose member class for the purpose of the folder, used for grouping of the plots to the HTML pages
2373  page -- Optional string for the page in HTML generatin
2374  section -- Optional string for the section within a page in HTML generation
2375  numberOfEventsHistogram -- Optional path to histogram filled once per event. Needed if there are any plots normalized by number of events. Path is relative to "possibleDqmFolders".
2376  """
2377  self._plotGroups = list(plotGroups)
2378  self._loopSubFolders = kwargs.pop("loopSubFolders", True)
2379  self._onlyForPileup = kwargs.pop("onlyForPileup", False)
2380  self._onlyForElectron = kwargs.pop("onlyForElectron", False)
2381  self._onlyForConversion = kwargs.pop("onlyForConversion", False)
2382  self._purpose = kwargs.pop("purpose", None)
2383  self._page = kwargs.pop("page", None)
2384  self._section = kwargs.pop("section", None)
2385  self._numberOfEventsHistogram = kwargs.pop("numberOfEventsHistogram", None)
2386  if len(kwargs) > 0:
2387  raise Exception("Got unexpected keyword arguments: "+ ",".join(kwargs.keys()))
2388 
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def __init__(self, plotGroups, kwargs)
Definition: plotting.py:2361
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run

Member Function Documentation

def plotting.PlotFolder.append (   self,
  plotGroup 
)

Definition at line 2415 of file plotting.py.

Referenced by diclist.diclist.add().

2415  def append(self, plotGroup):
2416  self._plotGroups.append(plotGroup)
2417 
def append(self, plotGroup)
Definition: plotting.py:2415
def plotting.PlotFolder.create (   self,
  dirsNEvents,
  labels,
  isPileupSample = True,
  requireAllHistograms = False 
)
Create histograms from a list of TFiles.

Arguments:
dirsNEvents   -- List of (TDirectory, nevents) pairs
labels -- List of strings for legend labels corresponding the files
isPileupSample -- Is sample pileup (some PlotGroups may limit themselves to pileup)
requireAllHistograms -- If True, a plot is produced if histograms from all files are present (default: False)

Definition at line 2430 of file plotting.py.

2430  def create(self, dirsNEvents, labels, isPileupSample=True, requireAllHistograms=False):
2431  """Create histograms from a list of TFiles.
2432 
2433  Arguments:
2434  dirsNEvents -- List of (TDirectory, nevents) pairs
2435  labels -- List of strings for legend labels corresponding the files
2436  isPileupSample -- Is sample pileup (some PlotGroups may limit themselves to pileup)
2437  requireAllHistograms -- If True, a plot is produced if histograms from all files are present (default: False)
2438  """
2439 
2440  if len(dirsNEvents) != len(labels):
2441  raise Exception("len(dirsNEvents) should be len(labels), now they are %d and %d" % (len(dirsNEvents), len(labels)))
2442 
2443  self._labels = labels
2444 
2445  for pg in self._plotGroups:
2446  if pg.onlyForPileup() and not isPileupSample:
2447  continue
2448  pg.create(dirsNEvents, requireAllHistograms)
2449 
def create(self, dirsNEvents, labels, isPileupSample=True, requireAllHistograms=False)
Definition: plotting.py:2430
def plotting.PlotFolder.draw (   self,
  prefix = None,
  separate = False,
  saveFormat = ".pdf",
  ratio = True 
)
Draw and save all plots using settings of a given algorithm.

Arguments:
prefix   -- Optional string for file name prefix (default None)
separate -- Save the plots of a group to separate files instead of a file per group (default False)
saveFormat   -- String specifying the plot format (default '.pdf')
ratio    -- Add ratio to the plot (default True)

Definition at line 2450 of file plotting.py.

References DigiInvestigatorHistogramMaker._labels, SeedMultiplicityAnalyzer._labels, hitfit::Constraint_Intermed_Labels._labels, plotting.PlotFolder._labels, and plotting.PlotFolder._plotGroups.

2450  def draw(self, prefix=None, separate=False, saveFormat=".pdf", ratio=True):
2451  """Draw and save all plots using settings of a given algorithm.
2452 
2453  Arguments:
2454  prefix -- Optional string for file name prefix (default None)
2455  separate -- Save the plots of a group to separate files instead of a file per group (default False)
2456  saveFormat -- String specifying the plot format (default '.pdf')
2457  ratio -- Add ratio to the plot (default True)
2458  """
2459  ret = []
2460 
2461  for pg in self._plotGroups:
2462  ret.extend(pg.draw(self._labels, prefix=prefix, separate=separate, saveFormat=saveFormat, ratio=ratio))
2463  return ret
2464 
2465 
def draw(self, prefix=None, separate=False, saveFormat=".pdf", ratio=True)
Definition: plotting.py:2450
def plotting.PlotFolder.getNumberOfEventsHistogram (   self)

Definition at line 2412 of file plotting.py.

References plotting.PlotFolder._numberOfEventsHistogram.

2413  return self._numberOfEventsHistogram
2414 
def getNumberOfEventsHistogram(self)
Definition: plotting.py:2412
def plotting.PlotFolder.getPage (   self)

Definition at line 2406 of file plotting.py.

References html.Table._page, and plotting.PlotFolder._page.

2406  def getPage(self):
2407  return self._page
2408 
def getPage(self)
Definition: plotting.py:2406
def plotting.PlotFolder.getPlotGroup (   self,
  name 
)

Definition at line 2424 of file plotting.py.

References plotting.PlotFolder._plotGroups.

2424  def getPlotGroup(self, name):
2425  for pg in self._plotGroups:
2426  if pg.getName() == name:
2427  return pg
2428  raise Exception("No PlotGroup named '%s'" % name)
2429 
def getPlotGroup(self, name)
Definition: plotting.py:2424
def plotting.PlotFolder.getPlotGroups (   self)

Definition at line 2421 of file plotting.py.

References plotting.PlotFolder._plotGroups.

2421  def getPlotGroups(self):
2422  return self._plotGroups
2423 
def getPlotGroups(self)
Definition: plotting.py:2421
def plotting.PlotFolder.getPurpose (   self)

Definition at line 2403 of file plotting.py.

References html.Table._purpose, and plotting.PlotFolder._purpose.

2403  def getPurpose(self):
2404  return self._purpose
2405 
def getPurpose(self)
Definition: plotting.py:2403
def plotting.PlotFolder.getSection (   self)

Definition at line 2409 of file plotting.py.

References html.Table._section, and plotting.PlotFolder._section.

2409  def getSection(self):
2410  return self._section
2411 
def getSection(self)
Definition: plotting.py:2409
def plotting.PlotFolder.iterSelectionName (   self,
  plotFolderName,
  translatedDqmSubFolder 
)
Iterate over possible selections name (used in output directory name and legend) from the name of PlotterFolder, and a return value of translateSubFolder

Definition at line 2477 of file plotting.py.

2477  def iterSelectionName(self, plotFolderName, translatedDqmSubFolder):
2478  """Iterate over possible selections name (used in output directory name and legend) from the name of PlotterFolder, and a return value of translateSubFolder"""
2479  ret = ""
2480  if plotFolderName != "":
2481  ret += "_"+plotFolderName
2482  if translatedDqmSubFolder is not None:
2483  ret += "_"+translatedDqmSubFolder
2484  yield ret
2485 
def iterSelectionName(self, plotFolderName, translatedDqmSubFolder)
Definition: plotting.py:2477
def plotting.PlotFolder.limitSubFolder (   self,
  limitOnlyTo,
  translatedDqmSubFolder 
)
Return True if this subfolder should be processed

Arguments:
limitOnlyTo            -- List/set/similar containing the translatedDqmSubFolder 
translatedDqmSubFolder -- Return value of translateSubFolder

Definition at line 2486 of file plotting.py.

2486  def limitSubFolder(self, limitOnlyTo, translatedDqmSubFolder):
2487  """Return True if this subfolder should be processed
2488 
2489  Arguments:
2490  limitOnlyTo -- List/set/similar containing the translatedDqmSubFolder
2491  translatedDqmSubFolder -- Return value of translateSubFolder
2492  """
2493  return translatedDqmSubFolder in limitOnlyTo
2494 
def limitSubFolder(self, limitOnlyTo, translatedDqmSubFolder)
Definition: plotting.py:2486
def plotting.PlotFolder.loopSubFolders (   self)
Return True if the PlotGroups of this folder should be applied to the all subfolders

Definition at line 2389 of file plotting.py.

References plotting.PlotFolder._loopSubFolders.

2389  def loopSubFolders(self):
2390  """Return True if the PlotGroups of this folder should be applied to the all subfolders"""
2391  return self._loopSubFolders
2392 
def loopSubFolders(self)
Definition: plotting.py:2389
def plotting.PlotFolder.onlyForConversion (   self)

Definition at line 2400 of file plotting.py.

References plotting.PlotFolder._onlyForConversion.

2401  return self._onlyForConversion
2402 
def onlyForConversion(self)
Definition: plotting.py:2400
def plotting.PlotFolder.onlyForElectron (   self)

Definition at line 2397 of file plotting.py.

References plotting.PlotFolder._onlyForElectron.

2397  def onlyForElectron(self):
2398  return self._onlyForElectron
2399 
def onlyForElectron(self)
Definition: plotting.py:2397
def plotting.PlotFolder.onlyForPileup (   self)
Return True if the folder is intended only for pileup samples

Definition at line 2393 of file plotting.py.

References plotting.PlotFolder._onlyForPileup.

2393  def onlyForPileup(self):
2394  """Return True if the folder is intended only for pileup samples"""
2395  return self._onlyForPileup
2396 
def onlyForPileup(self)
Definition: plotting.py:2393
def plotting.PlotFolder.set (   self,
  plotGroups 
)

Definition at line 2418 of file plotting.py.

References plotting.PlotFolder._plotGroups.

2418  def set(self, plotGroups):
2419  self._plotGroups = plotGroups
2420 
def set(self, plotGroups)
Definition: plotting.py:2418
def plotting.PlotFolder.translateSubFolder (   self,
  dqmSubFolderName 
)
Method called to (possibly) translate a subfolder name to more 'readable' form

The implementation in this (base) class just returns the
argument. The idea is that a deriving class might want to do
something more complex (like trackingPlots.TrackingPlotFolder
does)

Definition at line 2467 of file plotting.py.

2467  def translateSubFolder(self, dqmSubFolderName):
2468  """Method called to (possibly) translate a subfolder name to more 'readable' form
2469 
2470  The implementation in this (base) class just returns the
2471  argument. The idea is that a deriving class might want to do
2472  something more complex (like trackingPlots.TrackingPlotFolder
2473  does)
2474  """
2475  return dqmSubFolderName
2476 
def translateSubFolder(self, dqmSubFolderName)
Definition: plotting.py:2467

Member Data Documentation

plotting.PlotFolder._labels
private

Definition at line 2443 of file plotting.py.

Referenced by validation.SimpleValidation._doPlots(), and plotting.PlotFolder.draw().

plotting.PlotFolder._loopSubFolders
private

Definition at line 2378 of file plotting.py.

Referenced by plotting.PlotFolder.loopSubFolders().

plotting.PlotFolder._numberOfEventsHistogram
private

Definition at line 2385 of file plotting.py.

Referenced by plotting.PlotFolder.getNumberOfEventsHistogram().

plotting.PlotFolder._onlyForConversion
private

Definition at line 2381 of file plotting.py.

Referenced by plotting.PlotFolder.onlyForConversion().

plotting.PlotFolder._onlyForElectron
private

Definition at line 2380 of file plotting.py.

Referenced by plotting.PlotFolder.onlyForElectron().

plotting.PlotFolder._onlyForPileup
private
plotting.PlotFolder._page
private
plotting.PlotFolder._plotGroups
private
plotting.PlotFolder._purpose
private
plotting.PlotFolder._section
private