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 2534 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 2537 of file plotting.py.

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

Referenced by diclist.diclist.add().

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

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

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

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

Definition at line 2593 of file plotting.py.

References plotting.PlotFolder._numberOfEventsHistogram.

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

Definition at line 2587 of file plotting.py.

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

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

Definition at line 2605 of file plotting.py.

References plotting.PlotFolder._plotGroups.

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

Definition at line 2602 of file plotting.py.

References plotting.PlotFolder._plotGroups.

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

Definition at line 2584 of file plotting.py.

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

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

Definition at line 2590 of file plotting.py.

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

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

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

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

Definition at line 2567 of file plotting.py.

References plotting.PlotFolder._loopSubFolders.

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

Definition at line 2581 of file plotting.py.

References plotting.PlotFolder._onlyForBHadron.

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

Definition at line 2578 of file plotting.py.

References plotting.PlotFolder._onlyForConversion.

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

Definition at line 2575 of file plotting.py.

References plotting.PlotFolder._onlyForElectron.

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

Definition at line 2571 of file plotting.py.

References plotting.PlotFolder._onlyForPileup.

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

Definition at line 2599 of file plotting.py.

References plotting.PlotFolder._plotGroups.

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

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

Member Data Documentation

plotting.PlotFolder._labels
private

Definition at line 2624 of file plotting.py.

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

plotting.PlotFolder._loopSubFolders
private

Definition at line 2555 of file plotting.py.

Referenced by plotting.PlotFolder.loopSubFolders().

plotting.PlotFolder._numberOfEventsHistogram
private

Definition at line 2563 of file plotting.py.

Referenced by plotting.PlotFolder.getNumberOfEventsHistogram().

plotting.PlotFolder._onlyForBHadron
private

Definition at line 2559 of file plotting.py.

Referenced by plotting.PlotFolder.onlyForBHadron().

plotting.PlotFolder._onlyForConversion
private

Definition at line 2558 of file plotting.py.

Referenced by plotting.PlotFolder.onlyForConversion().

plotting.PlotFolder._onlyForElectron
private

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