CMS 3D CMS Logo

Classes | Functions | Variables

python::rootplot::utilities Namespace Reference

Classes

class  Hist
class  Hist2D
 Define classes. More...
class  HistStack
class  RootFile

Functions

def find_num_processors
def get
def ls
def process_bin_labels
def pwd
def replace
 Define additional helping functions.
def wilson_interval

Variables

string __license__

Detailed Description

Utilities for rootplot including histogram classes.

Function Documentation

def python::rootplot::utilities::find_num_processors ( )

Definition at line 463 of file utilities.py.

00464                          :
00465     import os
00466     try:
00467         num_processors = os.sysconf('SC_NPROCESSORS_ONLN')
00468     except:
00469         try:
00470             num_processors = os.environ['NUMBER_OF_PROCESSORS']
00471         except:
00472             num_processors = 1
00473     return num_processors
def python::rootplot::utilities::get (   object_name)
Return a Hist object with the given name.

Definition at line 407 of file utilities.py.

00408                     :
00409     """Return a Hist object with the given name."""
00410     return Hist(ROOT.gDirectory.Get(object_name))
00411 

def python::rootplot::utilities::ls (   directory = None)
Return a python list of ROOT object names from the given directory.

Definition at line 389 of file utilities.py.

Referenced by FWPFClusterRPZProxyBuilder::build(), FWBeamSpotProxyBuilder::build(), FWPFClusterRPZUtils::buildRhoPhiClusterLineSet(), FWPFClusterRPZUtils::buildRhoZClusterLineSet(), CompositeLogicalTrajectoryFilter::CompositeLogicalTrajectoryFilter(), FUShmReader::fillRawData(), calogeom::IdealCastorTrapezoid::getCorners(), calogeom::IdealZDCTrapezoid::getCorners(), evf::FWEPWrapper::getTriggerReport(), FWBeamSpotProxyBuilder::localModelChanges(), main(), AlpgenSource::readAlpgenEvent(), BeamHaloPairGenerator::run(), GenericPairGenerator::run(), GenericTripletGenerator::run(), evf::FUShmRawCell::setLumiSection(), FWPFClusterRPZProxyBuilder::sharedBuild(), TT6CMNSubtractor::subtract_(), IteratedMedianCMNSubtractor::subtract_(), evf::FUEventProcessor::supervisor(), evf::fuep::TriggerReportHelpers::triggerReportUpdate(), SimpleCosmicBONSeeder::triplets(), stor::StreamsMonitorCollection::EndOfRunReport::updateLatestWrittenLumiSection(), and DTTimeEvolutionHisto::updateTimeSlot().

00390                       :
00391     """Return a python list of ROOT object names from the given directory."""
00392     if directory == None:
00393         keys = ROOT.gDirectory.GetListOfKeys()
00394     else:
00395         keys = ROOT.gDirectory.GetDirectory(directory).GetListOfKeys()
00396     key = keys[0]
00397     names = []
00398     while key:
00399         obj = key.ReadObj()
00400         key = keys.After(key)
00401         names.append(obj.GetName())
00402     return names

def python::rootplot::utilities::process_bin_labels (   binlabels)

Definition at line 437 of file utilities.py.

00438                                  :
00439     has_labels = False
00440     for binlabel in binlabels:
00441         if binlabel:
00442             has_labels = True
00443     if has_labels:
00444         return binlabels
00445     else:
00446         return None

def python::rootplot::utilities::pwd ( )
Return ROOT's present working directory.

Definition at line 403 of file utilities.py.

00404          :
00405     """Return ROOT's present working directory."""
00406     return ROOT.gDirectory.GetPath()

def python::rootplot::utilities::replace (   string,
  replacements 
)

Define additional helping functions.

Modify a string based on a list of patterns and substitutions.

replacements should be a list of two-entry tuples, the first entry giving
a string to search for and the second entry giving the string with which
to replace it.  If replacements includes a pattern entry containing
'use_regexp', then all patterns will be treated as regular expressions
using re.sub.

Definition at line 414 of file utilities.py.

00415                                  :
00416     """
00417     Modify a string based on a list of patterns and substitutions.
00418 
00419     replacements should be a list of two-entry tuples, the first entry giving
00420     a string to search for and the second entry giving the string with which
00421     to replace it.  If replacements includes a pattern entry containing
00422     'use_regexp', then all patterns will be treated as regular expressions
00423     using re.sub.
00424     """
00425     if not replacements:
00426         return string
00427     if 'use_regexp' in [x for x,y in replacements]:
00428         for pattern, repl in [x for x in replacements
00429                               if x[0] != 'use_regexp']:
00430             string = re.sub(pattern, repl, string)
00431     else:
00432         for pattern, repl in replacements:
00433             string = string.replace(pattern, repl)
00434     if re.match(_all_whitespace_string, string):
00435         return ""
00436     return string

def python::rootplot::utilities::wilson_interval (   numerator_array,
  denominator_array 
)

Definition at line 447 of file utilities.py.

00448                                                        :
00449     eff, upper_err, lower_err = [], [], []
00450     for n, d in zip(numerator_array, denominator_array):
00451         try:
00452             p = float(n) / d
00453             s = math.sqrt(p * (1 - p) / d + 1 / (4 * d * d))
00454             t = p + 1 / (2 * d)
00455             eff.append(p)
00456             upper_err.append(-p + 1/(1 + 1/d) * (t + s))
00457             lower_err.append(+p - 1/(1 + 1/d) * (t - s))
00458         except ZeroDivisionError:
00459             eff.append(0)
00460             upper_err.append(0)
00461             lower_err.append(0)
00462     return eff, upper_err, lower_err


Variable Documentation

Initial value:
00001 '''\
00002 Copyright (c) 2009-2010 Jeff Klukas <klukas@wisc.edu>
00003 
00004 Permission is hereby granted, free of charge, to any person obtaining a copy
00005 of this software and associated documentation files (the "Software"), to deal
00006 in the Software without restriction, including without limitation the rights
00007 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
00008 copies of the Software, and to permit persons to whom the Software is
00009 furnished to do so, subject to the following conditions:
00010 
00011 The above copyright notice and this permission notice shall be included in
00012 all copies or substantial portions of the Software.
00013 
00014 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00015 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00016 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
00017 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00018 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
00019 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
00020 THE SOFTWARE.
00021 '''

Definition at line 5 of file utilities.py.