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, directory="")
 
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 onlyForBHadron (self)
 
def onlyForConversion (self)
 
def onlyForElectron (self)
 
def onlyForPileup (self)
 
def set (self, plotGroups)
 
def translateSubFolder (self, dqmSubFolderName)
 

Private Attributes

 _labels
 
 _loopSubFolders
 
 _numberOfEventsHistogram
 
 _onlyForBHadron
 
 _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 2535 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
onlyForBHadron -- Plots this folder only for B-hadron 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 2538 of file plotting.py.

2538  def __init__(self, *plotGroups, **kwargs):
2539  """Constructor.
2540 
2541  Arguments:
2542  plotGroups -- List of PlotGroup objects
2543 
2544  Keyword arguments
2545  loopSubFolders -- Should the subfolders be looped over? (default: True)
2546  onlyForPileup -- Plots this folder only for pileup samples
2547  onlyForElectron -- Plots this folder only for electron samples
2548  onlyForConversion -- Plots this folder only for conversion samples
2549  onlyForBHadron -- Plots this folder only for B-hadron samples
2550  purpose -- html.PlotPurpose member class for the purpose of the folder, used for grouping of the plots to the HTML pages
2551  page -- Optional string for the page in HTML generatin
2552  section -- Optional string for the section within a page in HTML generation
2553  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".
2554  """
2555  self._plotGroups = list(plotGroups)
2556  self._loopSubFolders = kwargs.pop("loopSubFolders", True)
2557  self._onlyForPileup = kwargs.pop("onlyForPileup", False)
2558  self._onlyForElectron = kwargs.pop("onlyForElectron", False)
2559  self._onlyForConversion = kwargs.pop("onlyForConversion", False)
2560  self._onlyForBHadron = kwargs.pop("onlyForBHadron", False)
2561  self._purpose = kwargs.pop("purpose", None)
2562  self._page = kwargs.pop("page", None)
2563  self._section = kwargs.pop("section", None)
2564  self._numberOfEventsHistogram = kwargs.pop("numberOfEventsHistogram", None)
2565  if len(kwargs) > 0:
2566  raise Exception("Got unexpected keyword arguments: "+ ",".join(kwargs.keys()))
2567 
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def __init__(self, plotGroups, kwargs)
Definition: plotting.py:2538
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 2597 of file plotting.py.

Referenced by diclist.diclist.add().

2597  def append(self, plotGroup):
2598  self._plotGroups.append(plotGroup)
2599 
def append(self, plotGroup)
Definition: plotting.py:2597
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 2612 of file plotting.py.

2612  def create(self, dirsNEvents, labels, isPileupSample=True, requireAllHistograms=False):
2613  """Create histograms from a list of TFiles.
2614 
2615  Arguments:
2616  dirsNEvents -- List of (TDirectory, nevents) pairs
2617  labels -- List of strings for legend labels corresponding the files
2618  isPileupSample -- Is sample pileup (some PlotGroups may limit themselves to pileup)
2619  requireAllHistograms -- If True, a plot is produced if histograms from all files are present (default: False)
2620  """
2621 
2622  if len(dirsNEvents) != len(labels):
2623  raise Exception("len(dirsNEvents) should be len(labels), now they are %d and %d" % (len(dirsNEvents), len(labels)))
2624 
2625  self._labels = labels
2626 
2627  for pg in self._plotGroups:
2628  if pg.onlyForPileup() and not isPileupSample:
2629  continue
2630  pg.create(dirsNEvents, requireAllHistograms)
2631 
def create(self, dirsNEvents, labels, isPileupSample=True, requireAllHistograms=False)
Definition: plotting.py:2612
def plotting.PlotFolder.draw (   self,
  prefix = None,
  separate = False,
  saveFormat = ".pdf",
  ratio = True,
  directory = "" 
)
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)
directory -- Directory where to save the file (default "")

Definition at line 2632 of file plotting.py.

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

2632  def draw(self, prefix=None, separate=False, saveFormat=".pdf", ratio=True, directory=""):
2633  """Draw and save all plots using settings of a given algorithm.
2634 
2635  Arguments:
2636  prefix -- Optional string for file name prefix (default None)
2637  separate -- Save the plots of a group to separate files instead of a file per group (default False)
2638  saveFormat -- String specifying the plot format (default '.pdf')
2639  ratio -- Add ratio to the plot (default True)
2640  directory -- Directory where to save the file (default "")
2641  """
2642  ret = []
2643 
2644  for pg in self._plotGroups:
2645  ret.extend(pg.draw(self._labels, prefix=prefix, separate=separate, saveFormat=saveFormat, ratio=ratio, directory=directory))
2646  return ret
2647 
2648 
def draw(self, prefix=None, separate=False, saveFormat=".pdf", ratio=True, directory="")
Definition: plotting.py:2632
def plotting.PlotFolder.getNumberOfEventsHistogram (   self)

Definition at line 2594 of file plotting.py.

References plotting.PlotFolder._numberOfEventsHistogram.

2595  return self._numberOfEventsHistogram
2596 
def getNumberOfEventsHistogram(self)
Definition: plotting.py:2594
def plotting.PlotFolder.getPage (   self)

Definition at line 2588 of file plotting.py.

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

2588  def getPage(self):
2589  return self._page
2590 
def getPage(self)
Definition: plotting.py:2588
def plotting.PlotFolder.getPlotGroup (   self,
  name 
)

Definition at line 2606 of file plotting.py.

References plotting.PlotFolder._plotGroups.

2606  def getPlotGroup(self, name):
2607  for pg in self._plotGroups:
2608  if pg.getName() == name:
2609  return pg
2610  raise Exception("No PlotGroup named '%s'" % name)
2611 
def getPlotGroup(self, name)
Definition: plotting.py:2606
def plotting.PlotFolder.getPlotGroups (   self)

Definition at line 2603 of file plotting.py.

References plotting.PlotFolder._plotGroups.

2603  def getPlotGroups(self):
2604  return self._plotGroups
2605 
def getPlotGroups(self)
Definition: plotting.py:2603
def plotting.PlotFolder.getPurpose (   self)

Definition at line 2585 of file plotting.py.

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

2585  def getPurpose(self):
2586  return self._purpose
2587 
def getPurpose(self)
Definition: plotting.py:2585
def plotting.PlotFolder.getSection (   self)

Definition at line 2591 of file plotting.py.

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

2591  def getSection(self):
2592  return self._section
2593 
def getSection(self)
Definition: plotting.py:2591
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 2660 of file plotting.py.

2660  def iterSelectionName(self, plotFolderName, translatedDqmSubFolder):
2661  """Iterate over possible selections name (used in output directory name and legend) from the name of PlotterFolder, and a return value of translateSubFolder"""
2662  ret = ""
2663  if plotFolderName != "":
2664  ret += "_"+plotFolderName
2665  if translatedDqmSubFolder is not None:
2666  ret += "_"+translatedDqmSubFolder
2667  yield ret
2668 
def iterSelectionName(self, plotFolderName, translatedDqmSubFolder)
Definition: plotting.py:2660
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 2669 of file plotting.py.

2669  def limitSubFolder(self, limitOnlyTo, translatedDqmSubFolder):
2670  """Return True if this subfolder should be processed
2671 
2672  Arguments:
2673  limitOnlyTo -- List/set/similar containing the translatedDqmSubFolder
2674  translatedDqmSubFolder -- Return value of translateSubFolder
2675  """
2676  return translatedDqmSubFolder in limitOnlyTo
2677 
def limitSubFolder(self, limitOnlyTo, translatedDqmSubFolder)
Definition: plotting.py:2669
def plotting.PlotFolder.loopSubFolders (   self)
Return True if the PlotGroups of this folder should be applied to the all subfolders

Definition at line 2568 of file plotting.py.

References plotting.PlotFolder._loopSubFolders.

2568  def loopSubFolders(self):
2569  """Return True if the PlotGroups of this folder should be applied to the all subfolders"""
2570  return self._loopSubFolders
2571 
def loopSubFolders(self)
Definition: plotting.py:2568
def plotting.PlotFolder.onlyForBHadron (   self)

Definition at line 2582 of file plotting.py.

References plotting.PlotFolder._onlyForBHadron.

2582  def onlyForBHadron(self):
2583  return self._onlyForBHadron
2584 
def onlyForBHadron(self)
Definition: plotting.py:2582
def plotting.PlotFolder.onlyForConversion (   self)

Definition at line 2579 of file plotting.py.

References plotting.PlotFolder._onlyForConversion.

2580  return self._onlyForConversion
2581 
def onlyForConversion(self)
Definition: plotting.py:2579
def plotting.PlotFolder.onlyForElectron (   self)

Definition at line 2576 of file plotting.py.

References plotting.PlotFolder._onlyForElectron.

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

Definition at line 2572 of file plotting.py.

References plotting.PlotFolder._onlyForPileup.

2572  def onlyForPileup(self):
2573  """Return True if the folder is intended only for pileup samples"""
2574  return self._onlyForPileup
2575 
def onlyForPileup(self)
Definition: plotting.py:2572
def plotting.PlotFolder.set (   self,
  plotGroups 
)

Definition at line 2600 of file plotting.py.

References plotting.PlotFolder._plotGroups.

2600  def set(self, plotGroups):
2601  self._plotGroups = plotGroups
2602 
def set(self, plotGroups)
Definition: plotting.py:2600
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 2650 of file plotting.py.

2650  def translateSubFolder(self, dqmSubFolderName):
2651  """Method called to (possibly) translate a subfolder name to more 'readable' form
2652 
2653  The implementation in this (base) class just returns the
2654  argument. The idea is that a deriving class might want to do
2655  something more complex (like trackingPlots.TrackingPlotFolder
2656  does)
2657  """
2658  return dqmSubFolderName
2659 
def translateSubFolder(self, dqmSubFolderName)
Definition: plotting.py:2650

Member Data Documentation

plotting.PlotFolder._labels
private

Definition at line 2625 of file plotting.py.

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

plotting.PlotFolder._loopSubFolders
private

Definition at line 2556 of file plotting.py.

Referenced by plotting.PlotFolder.loopSubFolders().

plotting.PlotFolder._numberOfEventsHistogram
private

Definition at line 2564 of file plotting.py.

Referenced by plotting.PlotFolder.getNumberOfEventsHistogram().

plotting.PlotFolder._onlyForBHadron
private

Definition at line 2560 of file plotting.py.

Referenced by plotting.PlotFolder.onlyForBHadron().

plotting.PlotFolder._onlyForConversion
private

Definition at line 2559 of file plotting.py.

Referenced by plotting.PlotFolder.onlyForConversion().

plotting.PlotFolder._onlyForElectron
private

Definition at line 2558 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