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 Attributes
plotting.PlotFolder Class Reference

Public Member Functions

def __init__
 
def append
 
def create
 
def draw
 
def getNumberOfEventsHistogram
 
def getPage
 
def getPlotGroup
 
def getPlotGroups
 
def getPurpose
 
def getSection
 
def iterSelectionName
 
def limitSubFolder
 
def loopSubFolders
 
def onlyForBHadron
 
def onlyForConversion
 
def onlyForElectron
 
def onlyForPileup
 
def set
 
def translateSubFolder
 

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 2550 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 2553 of file plotting.py.

2554  def __init__(self, *plotGroups, **kwargs):
2555  """Constructor.
2556 
2557  Arguments:
2558  plotGroups -- List of PlotGroup objects
2559 
2560  Keyword arguments
2561  loopSubFolders -- Should the subfolders be looped over? (default: True)
2562  onlyForPileup -- Plots this folder only for pileup samples
2563  onlyForElectron -- Plots this folder only for electron samples
2564  onlyForConversion -- Plots this folder only for conversion samples
2565  onlyForBHadron -- Plots this folder only for B-hadron samples
2566  purpose -- html.PlotPurpose member class for the purpose of the folder, used for grouping of the plots to the HTML pages
2567  page -- Optional string for the page in HTML generatin
2568  section -- Optional string for the section within a page in HTML generation
2569  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".
2570  """
2571  self._plotGroups = list(plotGroups)
2572  self._loopSubFolders = kwargs.pop("loopSubFolders", True)
2573  self._onlyForPileup = kwargs.pop("onlyForPileup", False)
2574  self._onlyForElectron = kwargs.pop("onlyForElectron", False)
2575  self._onlyForConversion = kwargs.pop("onlyForConversion", False)
2576  self._onlyForBHadron = kwargs.pop("onlyForBHadron", False)
2577  self._purpose = kwargs.pop("purpose", None)
2578  self._page = kwargs.pop("page", None)
2579  self._section = kwargs.pop("section", None)
2580  self._numberOfEventsHistogram = kwargs.pop("numberOfEventsHistogram", None)
2581  if len(kwargs) > 0:
2582  raise Exception("Got unexpected keyword arguments: "+ ",".join(kwargs.keys()))
static std::string join(char **cmd)
Definition: RemoteFile.cc:19

Member Function Documentation

def plotting.PlotFolder.append (   self,
  plotGroup 
)

Definition at line 2612 of file plotting.py.

Referenced by diclist.diclist.add(), and BeautifulSoup.Tag.setString().

2613  def append(self, plotGroup):
2614  self._plotGroups.append(plotGroup)
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 2627 of file plotting.py.

2628  def create(self, dirsNEvents, labels, isPileupSample=True, requireAllHistograms=False):
2629  """Create histograms from a list of TFiles.
2630 
2631  Arguments:
2632  dirsNEvents -- List of (TDirectory, nevents) pairs
2633  labels -- List of strings for legend labels corresponding the files
2634  isPileupSample -- Is sample pileup (some PlotGroups may limit themselves to pileup)
2635  requireAllHistograms -- If True, a plot is produced if histograms from all files are present (default: False)
2636  """
2637 
2638  if len(dirsNEvents) != len(labels):
2639  raise Exception("len(dirsNEvents) should be len(labels), now they are %d and %d" % (len(dirsNEvents), len(labels)))
2641  self._labels = labels
2642 
2643  for pg in self._plotGroups:
2644  if pg.onlyForPileup() and not isPileupSample:
2645  continue
2646  pg.create(dirsNEvents, requireAllHistograms)
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 2647 of file plotting.py.

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

2648  def draw(self, prefix=None, separate=False, saveFormat=".pdf", ratio=True, directory=""):
2649  """Draw and save all plots using settings of a given algorithm.
2650 
2651  Arguments:
2652  prefix -- Optional string for file name prefix (default None)
2653  separate -- Save the plots of a group to separate files instead of a file per group (default False)
2654  saveFormat -- String specifying the plot format (default '.pdf')
2655  ratio -- Add ratio to the plot (default True)
2656  directory -- Directory where to save the file (default "")
2657  """
2658  ret = []
2659 
2660  for pg in self._plotGroups:
2661  ret.extend(pg.draw(self._labels, prefix=prefix, separate=separate, saveFormat=saveFormat, ratio=ratio, directory=directory))
2662  return ret
2663 
def plotting.PlotFolder.getNumberOfEventsHistogram (   self)

Definition at line 2609 of file plotting.py.

References plotting.PlotFolder._numberOfEventsHistogram.

2610  def getNumberOfEventsHistogram(self):
2611  return self._numberOfEventsHistogram
def getNumberOfEventsHistogram
Definition: plotting.py:2609
def plotting.PlotFolder.getPage (   self)

Definition at line 2603 of file plotting.py.

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

2604  def getPage(self):
2605  return self._page
def plotting.PlotFolder.getPlotGroup (   self,
  name 
)

Definition at line 2621 of file plotting.py.

References plotting.PlotFolder._plotGroups.

2622  def getPlotGroup(self, name):
2623  for pg in self._plotGroups:
2624  if pg.getName() == name:
2625  return pg
2626  raise Exception("No PlotGroup named '%s'" % name)
def plotting.PlotFolder.getPlotGroups (   self)

Definition at line 2618 of file plotting.py.

References plotting.PlotFolder._plotGroups.

2619  def getPlotGroups(self):
2620  return self._plotGroups
def plotting.PlotFolder.getPurpose (   self)

Definition at line 2600 of file plotting.py.

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

2601  def getPurpose(self):
2602  return self._purpose
def plotting.PlotFolder.getSection (   self)

Definition at line 2606 of file plotting.py.

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

2607  def getSection(self):
2608  return self._section
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 2675 of file plotting.py.

2676  def iterSelectionName(self, plotFolderName, translatedDqmSubFolder):
2677  """Iterate over possible selections name (used in output directory name and legend) from the name of PlotterFolder, and a return value of translateSubFolder"""
2678  ret = ""
2679  if plotFolderName != "":
2680  ret += "_"+plotFolderName
2681  if translatedDqmSubFolder is not None:
2682  ret += "_"+translatedDqmSubFolder
2683  yield ret
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 2684 of file plotting.py.

2685  def limitSubFolder(self, limitOnlyTo, translatedDqmSubFolder):
2686  """Return True if this subfolder should be processed
2687 
2688  Arguments:
2689  limitOnlyTo -- List/set/similar containing the translatedDqmSubFolder
2690  translatedDqmSubFolder -- Return value of translateSubFolder
2691  """
2692  return translatedDqmSubFolder in limitOnlyTo
def plotting.PlotFolder.loopSubFolders (   self)
Return True if the PlotGroups of this folder should be applied to the all subfolders

Definition at line 2583 of file plotting.py.

References plotting.PlotFolder._loopSubFolders.

2584  def loopSubFolders(self):
2585  """Return True if the PlotGroups of this folder should be applied to the all subfolders"""
2586  return self._loopSubFolders
def plotting.PlotFolder.onlyForBHadron (   self)

Definition at line 2597 of file plotting.py.

References plotting.PlotFolder._onlyForBHadron.

2598  def onlyForBHadron(self):
2599  return self._onlyForBHadron
def plotting.PlotFolder.onlyForConversion (   self)

Definition at line 2594 of file plotting.py.

References plotting.PlotFolder._onlyForConversion.

2595  def onlyForConversion(self):
2596  return self._onlyForConversion
def plotting.PlotFolder.onlyForElectron (   self)

Definition at line 2591 of file plotting.py.

References plotting.PlotFolder._onlyForElectron.

2592  def onlyForElectron(self):
2593  return self._onlyForElectron
def plotting.PlotFolder.onlyForPileup (   self)
Return True if the folder is intended only for pileup samples

Definition at line 2587 of file plotting.py.

References plotting.PlotFolder._onlyForPileup.

2588  def onlyForPileup(self):
2589  """Return True if the folder is intended only for pileup samples"""
2590  return self._onlyForPileup
def plotting.PlotFolder.set (   self,
  plotGroups 
)

Definition at line 2615 of file plotting.py.

References plotting.PlotFolder._plotGroups.

2616  def set(self, plotGroups):
2617  self._plotGroups = plotGroups
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 2665 of file plotting.py.

2666  def translateSubFolder(self, dqmSubFolderName):
2667  """Method called to (possibly) translate a subfolder name to more 'readable' form
2668 
2669  The implementation in this (base) class just returns the
2670  argument. The idea is that a deriving class might want to do
2671  something more complex (like trackingPlots.TrackingPlotFolder
2672  does)
2673  """
2674  return dqmSubFolderName

Member Data Documentation

plotting.PlotFolder._labels
private

Definition at line 2640 of file plotting.py.

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

plotting.PlotFolder._loopSubFolders
private

Definition at line 2571 of file plotting.py.

Referenced by plotting.PlotFolder.loopSubFolders().

plotting.PlotFolder._numberOfEventsHistogram
private

Definition at line 2579 of file plotting.py.

Referenced by plotting.PlotFolder.getNumberOfEventsHistogram().

plotting.PlotFolder._onlyForBHadron
private

Definition at line 2575 of file plotting.py.

Referenced by plotting.PlotFolder.onlyForBHadron().

plotting.PlotFolder._onlyForConversion
private

Definition at line 2574 of file plotting.py.

Referenced by plotting.PlotFolder.onlyForConversion().

plotting.PlotFolder._onlyForElectron
private

Definition at line 2573 of file plotting.py.

Referenced by plotting.PlotFolder.onlyForElectron().

plotting.PlotFolder._onlyForPileup
private

Definition at line 2572 of file plotting.py.

Referenced by trackingPlots.TrackingSeedingLayerTable.onlyForPileup(), plotting.PlotGroup.onlyForPileup(), and plotting.PlotFolder.onlyForPileup().

plotting.PlotFolder._page
private

Definition at line 2577 of file plotting.py.

Referenced by vertexPlots.VertexSummaryTable.getPage(), trackingPlots.TrackingSummaryTable.getPage(), trackingPlots.TrackingTimingTable.getPage(), and plotting.PlotFolder.getPage().

plotting.PlotFolder._plotGroups
private

Definition at line 2570 of file plotting.py.

Referenced by plotting.PlotFolder.draw(), plotting.PlotFolder.getPlotGroup(), plotting.PlotFolder.getPlotGroups(), and plotting.PlotFolder.set().

plotting.PlotFolder._purpose
private

Definition at line 2576 of file plotting.py.

Referenced by vertexPlots.VertexSummaryTable.getPurpose(), trackingPlots.TrackingSummaryTable.getPurpose(), trackingPlots.TrackingTimingTable.getPurpose(), and plotting.PlotFolder.getPurpose().

plotting.PlotFolder._section
private

Definition at line 2578 of file plotting.py.

Referenced by trackingPlots.TrackingSummaryTable.getSection(), trackingPlots.TrackingTimingTable.getSection(), and plotting.PlotFolder.getSection().