| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

Sim15::Eff::Sim15Eff Class Reference

Inheritance diagram for Sim15::Eff::Sim15Eff:
[legend]
Collaboration diagram for Sim15::Eff::Sim15Eff:
[legend]
List of all members.

Public Member Functions

def __init__
def execute
def finalize

Public Attributes

 genCounts
 trigCounts
 gh_list

Private Member Functions

def _get_gen_headers
def _add_generated
def _add_triggered

Detailed Description

Give an example of calculating some efficiencies

Definition at line 38 of file Eff.py.


Member Function Documentation

def Sim15::Eff::Sim15Eff::__init__ (   self,
  name = 'Sim15Eff' 
)

Definition at line 41 of file Eff.py.

00043                                       :
00044         GaudiAlgo.__init__(self,name)
00045         self.genCounts = {}     # count GenHeaders generated
00046         self.trigCounts = {}    # count GenHeaders found via Readouts
        return

def Sim15::Eff::Sim15Eff::execute (   self  ) 

Definition at line 47 of file Eff.py.

00049                      :
00050         tes = self.evtSvc()
00051 
00052         rs = tes['/Event/RegistrationSequence']
00053 
00054         regs = rs.registrations()
00055         nregs = regs.size()
00056         #print 'Found %d HeaderObjects'%regs.size()
00057         for ireg in range(0,nregs):
00058             reg = regs[ireg]
00059             loc = reg.path()
00060             obj = reg.object()  # this auto casts to right HeaderObject type
00061 
00062             #print loc, obj.name()
00063             if loc == '/Event/Gen/GenHeader':
00064                 self._add_generated(obj)
00065                 pass
00066             
00067             if loc == '/Event/Readout/ReadoutHeader':
00068                 ghs = self._get_gen_headers(obj)
00069                 #print 'Found %d GenHeaders in this readout'%len(ghs)
00070                 for gh in ghs:
00071                     self._add_triggered(gh)
00072                 pass
00073 
00074             continue
        return SUCCESS

def Sim15::Eff::Sim15Eff::finalize (   self  ) 

Print efficiencies. 

Definition at line 75 of file Eff.py.

00077                       :
00078         '''
00079         Print efficiencies. 
00080         '''
00081 
00082         for nam in self.genCounts.keys():
00083             if nam not in self.trigCounts.keys():
00084                 self.trigCounts[nam] = 0
00085             print 'Kin type: %s has %d/%d = %f'\
00086                 %(nam,self.trigCounts[nam],self.genCounts[nam],
00087                   (self.trigCounts[nam]*1.0)/(self.genCounts[nam]*1.0))
00088             continue
        return SUCCESS

def Sim15::Eff::Sim15Eff::_get_gen_headers (   self,
  obj 
) [private]

Descend through obj's inputHeaders and build up a list of GenHeaders

Definition at line 89 of file Eff.py.

00091                                   :
00092         '''
00093         Descend through obj's inputHeaders and build up a list of GenHeaders
00094         '''
00095         class CollectGH:
00096             def __init__(self):
00097                 self.gh_list = []
00098                 return
00099             def __call__(self,obj):
00100                 if obj.name() == '/GenHeader':
00101                     self.gh_list.append(obj)
00102                 return
00103             pass
00104 
00105         cgh = CollectGH()
00106         visitInputHeaders(obj,cgh)
        return cgh.gh_list

def Sim15::Eff::Sim15Eff::_add_generated (   self,
  obj 
) [private]

Count a generated event

Definition at line 107 of file Eff.py.

00109                                 :
00110         '''
00111         Count a generated event
00112         '''
00113         nam = obj.generatorName()
00114         try:
00115             self.genCounts[nam] += 1
00116         except KeyError:
00117             self.genCounts[nam] = 1
00118             pass
        return

def Sim15::Eff::Sim15Eff::_add_triggered (   self,
  obj 
) [private]

Count a triggered event

Definition at line 119 of file Eff.py.

00121                                 :
00122         '''
00123         Count a triggered event
00124         '''
00125         nam = obj.generatorName()
00126         try:
00127             self.trigCounts[nam] += 1
00128         except KeyError:
00129             self.trigCounts[nam] = 1
00130             pass
00131         return
    


Member Data Documentation

Sim15::Eff::Sim15Eff::genCounts

Definition at line 43 of file Eff.py.

Sim15::Eff::Sim15Eff::trigCounts

Definition at line 44 of file Eff.py.

Sim15::Eff::Sim15Eff::gh_list

Definition at line 95 of file Eff.py.


The documentation for this class was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:36:45 2011 for Sim15 by doxygen 1.4.7