CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
VIDSelectorValidator.VIDSelectorValidator Class Reference

Public Member Functions

def __init__
 
def processEvents
 
def processInputList
 
def runValidation
 
def setBackgroundFiles
 
def setMixFiles
 
def setSignalFiles
 

Private Attributes

 __backgroundfiles
 
 __collname
 
 __colltype
 
 __hasher
 
 __mixfiles
 
 __selector
 
 __signalfiles
 

Detailed Description

Definition at line 22 of file VIDSelectorValidator.py.

Constructor & Destructor Documentation

def VIDSelectorValidator.VIDSelectorValidator.__init__ (   self,
  selector,
  collection_type,
  collection_name 
)

Member Function Documentation

def VIDSelectorValidator.VIDSelectorValidator.processEvents (   self,
  the_list,
  name,
  hasher 
)

Definition at line 83 of file VIDSelectorValidator.py.

References VIDSelectorValidator.VIDSelectorValidator.__collname, VIDSelectorValidator.VIDSelectorValidator.__colltype, VIDSelectorValidator.VIDSelectorValidator.__selector, split, and update.

Referenced by VIDSelectorValidator.VIDSelectorValidator.runValidation().

83 
84  def processEvents(self,the_list,name,hasher):
85  #data products
86  handle, productLabel = Handle(self.__colltype), self.__collname
87 
88  #now loop over the events in each category
89  events = Events(the_list)
90  n_pass, n_fail = 0,0
91 
92  sub_cutnames = []
93  sub_hashes = []
94  for idstring in repr(self.__selector).split('\n'):
95  if idstring == '': continue
96  sub_cutnames.append(idstring.split()[2]) # gets the cutname
97  sub_hashes.append(md5.new(idstring))
98 
99  for event in events:
100  event.getByLabel(productLabel,handle)
101  for i,obj in enumerate(handle.product()):
102  if self.__selector(handle.product(),i,event):
103  n_pass += 1
104  else:
105  n_fail += 1
106  icut = 0
107  for idstring in repr(self.__selector).split('\n'):
108  if idstring == '': continue
109  sub_hashes[icut].update(idstring)
110  icut += 1
111 
112  for sub_hash in sub_hashes:
113  hasher.update(sub_hash.hexdigest())
114 
115  hasher.update(str(n_pass))
116  hasher.update(str(n_fail))
117  print '%s sample pass : fail : hash -> %d : %d : %s'%(name,n_pass,n_fail,hasher.hexdigest())
118  print '%s sample cut breakdown:'%(name)
119  for i,sub_hash in enumerate(sub_hashes):
120  print '\t%s hash -> %s'%(sub_cutnames[i],sub_hash.hexdigest())
#define update(a, b)
double split
Definition: MVATrainer.cc:139
def VIDSelectorValidator.VIDSelectorValidator.processInputList (   self,
  the_list,
  name 
)

Definition at line 78 of file VIDSelectorValidator.py.

Referenced by VIDSelectorValidator.VIDSelectorValidator.runValidation().

78 
79  def processInputList(self,the_list,name):
80  for item in the_list:
81  self.__hasher.update(item)
82  print 'Input %s file: %s'%(name,item)
def VIDSelectorValidator.VIDSelectorValidator.runValidation (   self)

Definition at line 47 of file VIDSelectorValidator.py.

References VIDSelectorValidator.VIDSelectorValidator.__backgroundfiles, VIDSelectorValidator.VIDSelectorValidator.__mixfiles, VIDSelectorValidator.VIDSelectorValidator.__selector, VIDSelectorValidator.VIDSelectorValidator.__signalfiles, VIDSelectorValidator.VIDSelectorValidator.processEvents(), and VIDSelectorValidator.VIDSelectorValidator.processInputList().

47 
48  def runValidation(self):
49  samples = {}
50  samples['signal'] = self.__signalfiles
51  samples['background'] = self.__backgroundfiles
52  samples['mix'] = self.__mixfiles
53 
54  select = self.__selector
55 
56  print 'running validation for: %s'%(select.name())
57 
58  # checksum of the input files
59  if not len(samples['signal'] + samples['background'] + samples['mix']):
60  raise Exception('NoInputFiles','There were no input files given, cannot validate!')
61 
62  for key in sorted(samples.keys()):
63  self.processInputList(samples[key],key)
64 
65  print 'input files checksum: %s'%(self.__hasher.hexdigest())
66 
67  for key in sorted(samples.keys()):
68  if len(samples[key]):
69  local_hash = md5.new()
70  self.processEvents(samples[key],key,local_hash)
71  self.__hasher.update(local_hash.hexdigest())
72 
73  print 'event processing checksum: %s'%(self.__hasher.hexdigest())
74 
75  self.__hasher.update(select.md5String())
76 
77  print 'total checksum: %s'%(self.__hasher.hexdigest())
def VIDSelectorValidator.VIDSelectorValidator.setBackgroundFiles (   self,
  files 
)

Definition at line 37 of file VIDSelectorValidator.py.

References VIDSelectorValidator.VIDSelectorValidator.__backgroundfiles.

37 
38  def setBackgroundFiles(self, files):
39  if not isinstance(files,list):
40  raise Exception('BadFileInput','You need to give "setBackgroundFiles" a list of strings')
41  self.__backgroundfiles = files[:]
def VIDSelectorValidator.VIDSelectorValidator.setMixFiles (   self,
  files 
)

Definition at line 42 of file VIDSelectorValidator.py.

References VIDSelectorValidator.VIDSelectorValidator.__mixfiles.

42 
43  def setMixFiles(self, files):
44  if not isinstance(files,list):
45  raise Exception('BadFileInput','You need to give "setMixFiles" a list of strings')
46  self.__mixfiles = files[:]
def VIDSelectorValidator.VIDSelectorValidator.setSignalFiles (   self,
  files 
)

Definition at line 32 of file VIDSelectorValidator.py.

References VIDSelectorValidator.VIDSelectorValidator.__signalfiles.

32 
33  def setSignalFiles(self, files):
34  if not isinstance(files,list):
35  raise Exception('BadFileInput','You need to give "setSignalFiles" a list of strings')
36  self.__signalfiles = files[:]

Member Data Documentation

VIDSelectorValidator.VIDSelectorValidator.__backgroundfiles
private

Definition at line 29 of file VIDSelectorValidator.py.

Referenced by VIDSelectorValidator.VIDSelectorValidator.runValidation(), and VIDSelectorValidator.VIDSelectorValidator.setBackgroundFiles().

VIDSelectorValidator.VIDSelectorValidator.__collname
private

Definition at line 27 of file VIDSelectorValidator.py.

Referenced by VIDSelectorValidator.VIDSelectorValidator.processEvents().

VIDSelectorValidator.VIDSelectorValidator.__colltype
private

Definition at line 26 of file VIDSelectorValidator.py.

Referenced by VIDSelectorValidator.VIDSelectorValidator.processEvents().

VIDSelectorValidator.VIDSelectorValidator.__hasher
private

Definition at line 24 of file VIDSelectorValidator.py.

VIDSelectorValidator.VIDSelectorValidator.__mixfiles
private

Definition at line 30 of file VIDSelectorValidator.py.

Referenced by VIDSelectorValidator.VIDSelectorValidator.runValidation(), and VIDSelectorValidator.VIDSelectorValidator.setMixFiles().

VIDSelectorValidator.VIDSelectorValidator.__selector
private

Definition at line 25 of file VIDSelectorValidator.py.

Referenced by VIDSelectorValidator.VIDSelectorValidator.processEvents(), and VIDSelectorValidator.VIDSelectorValidator.runValidation().

VIDSelectorValidator.VIDSelectorValidator.__signalfiles
private

Definition at line 28 of file VIDSelectorValidator.py.

Referenced by VIDSelectorValidator.VIDSelectorValidator.runValidation(), and VIDSelectorValidator.VIDSelectorValidator.setSignalFiles().