test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Functions | Variables
simpleEdmComparison Namespace Reference

Classes

class  ProductNotFoundError
 

Functions

def compareEvents
 

Variables

string action = 'append'
 
tuple chain1 = Events([options.file1], forceEvent=True)
 
tuple chain2 = Events([options.file2], forceEvent=True)
 
int default = 1
 
string help = 'Compare tuple1 to tuple2'
 
tuple label = lName.split(',')
 
int mismatches = 0
 
tuple modeGroup = optparse.OptionGroup(parser, "Mode Conrols")
 
tuple numEvents = min(options.numEvents, chain1.size())
 
tuple optionsGroup = optparse.OptionGroup(parser, "Options")
 
tuple parser = optparse.OptionParser("usage: %prog [options] config.txt file1.root file2.root\nVisit https://twiki.cern.ch/twiki/bin/view/CMS/SWGuidePhysicsToolsEdmOneToOneComparison\nfor full documentation.")
 Setup Options ##. More...
 
dictionary plagerDict = {'eventsCompared' : count+1}
 
int productsCompared = 0
 
int totalCount = 0
 
tuple tupleGroup = optparse.OptionGroup(parser, "Tuple Controls")
 
dictionary typeMap
 

Function Documentation

def simpleEdmComparison.compareEvents (   event1,
  event2,
  handleName,
  label,
  options 
)
Compare two events

Definition at line 23 of file simpleEdmComparison.py.

23 
24 def compareEvents(event1, event2, handleName, label, options):
25  """
26  Compare two events
27  """
28 
29  # Is it a vector of objects or object (funky ROOT buffer for single value)
30  isSimpleObject = (handleName.find('vector') == -1)
31 
32  # Compare run, lumi, event
33  aux1 = event1.eventAuxiliary()
34  aux2 = event2.eventAuxiliary()
35 
36  rle1 = (aux1.run(), aux1.luminosityBlock(), aux1.event())
37  rle2 = (aux2.run(), aux2.luminosityBlock(), aux2.event())
38 
39  logging.debug("Comparing RLE #'s %s and %s" % (rle1, rle2))
40 
41  if rle1 != rle2:
42  raise RuntimeError("Run/Lumi/Events don't match: %s vs %s" % (rle1, rle2))
43  handle1 = Handle(handleName)
44  handle2 = Handle(handleName)
45 
46  if event1.getByLabel(label, handle1) and event2.getByLabel(label, handle2):
47  objects1 = handle1.product()
48  objects2 = handle1.product()
49  else:
50  raise ProductNotFoundError("Product %s %s not found." % (handleName, label))
51 
52  if isSimpleObject:
53  val1 = objects1[0]
54  val2 = objects2[0]
55  if options.blurRate and options.blur and random.random() < options.blurRate:
56  # This is different than Charles's method, which makes no sense to me
57  val1 += (random.random()-0.5) * options.blur
58  if val1 != val2:
59  logging.error("Mismatch %s and %s in %s" % (val1, val2, aux2.event()))
60  return (1, 1)
61  else:
62  logging.debug("Match of %s in %s" % (objects1[0], aux2.event()))
63  return (1, 0)
64  else:
65  count = 0
66  mismatch = 0
67  for val1, val2 in itertools.izip_longest(objects1, objects2):
68  count += 1
69  if options.blurRate and options.blur and random.random() < options.blurRate:
70  # This is different than Charles's method, which makes no sense to me
71  val1 += (random.random()-0.5) * options.blur * val1
72  if val1 != val2:
73  mismatch += 1
74  logging.error("Comparison problem %s != %s" % (val1, val2))
75  logging.debug("Compared %s elements" % count)
76  return (count, mismatch)

Variable Documentation

string simpleEdmComparison.action = 'append'

Definition at line 99 of file simpleEdmComparison.py.

tuple simpleEdmComparison.chain1 = Events([options.file1], forceEvent=True)

Definition at line 132 of file simpleEdmComparison.py.

tuple simpleEdmComparison.chain2 = Events([options.file2], forceEvent=True)

Definition at line 133 of file simpleEdmComparison.py.

float simpleEdmComparison.default = 1

Definition at line 95 of file simpleEdmComparison.py.

string simpleEdmComparison.help = 'Compare tuple1 to tuple2'

Definition at line 92 of file simpleEdmComparison.py.

tuple simpleEdmComparison.label = lName.split(',')

Definition at line 124 of file simpleEdmComparison.py.

int simpleEdmComparison.mismatches = 0

Definition at line 143 of file simpleEdmComparison.py.

tuple simpleEdmComparison.modeGroup = optparse.OptionGroup(parser, "Mode Conrols")

Definition at line 87 of file simpleEdmComparison.py.

tuple simpleEdmComparison.numEvents = min(options.numEvents, chain1.size())

Definition at line 137 of file simpleEdmComparison.py.

tuple simpleEdmComparison.optionsGroup = optparse.OptionGroup(parser, "Options")

Definition at line 89 of file simpleEdmComparison.py.

tuple simpleEdmComparison.parser = optparse.OptionParser("usage: %prog [options] config.txt file1.root file2.root\nVisit https://twiki.cern.ch/twiki/bin/view/CMS/SWGuidePhysicsToolsEdmOneToOneComparison\nfor full documentation.")

Setup Options ##.

Definition at line 86 of file simpleEdmComparison.py.

dictionary simpleEdmComparison.plagerDict = {'eventsCompared' : count+1}

Definition at line 157 of file simpleEdmComparison.py.

int simpleEdmComparison.productsCompared = 0

Definition at line 141 of file simpleEdmComparison.py.

int simpleEdmComparison.totalCount = 0

Definition at line 142 of file simpleEdmComparison.py.

Referenced by SiStripDetVOff.getHVoffCounts(), and SiStripDetVOff.getLVoffCounts().

tuple simpleEdmComparison.tupleGroup = optparse.OptionGroup(parser, "Tuple Controls")

Definition at line 88 of file simpleEdmComparison.py.

dictionary simpleEdmComparison.typeMap
Initial value:
1 = { 'double' : ['double', 'vector<double>'],
2  'int' : ['int', 'vector<int>'],}

Definition at line 14 of file simpleEdmComparison.py.

Referenced by edm::TypeWithDict.byName().