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

In This Package:

UserTagging::Models::Data Class Reference

List of all members.

Public Member Functions

def __init__
def save
def addInt
def addFloat
def addIntArray
def addFloatArray
def set
def append
def get
def dump
def setInputHeaders
def addInputHeader

Public Attributes

 path
 header
 paraSet

Detailed Description

Model for UserData

Definition at line 7 of file Models.py.


Member Function Documentation

def UserTagging::Models::Data::__init__ (   self,
  path = '' 
)

Definition at line 10 of file Models.py.

00010                                :
00011         self.path = path
00012         self.header = gbl.DayaBay.UserDataHeader()
00013         ROOT.SetOwnership(self.header, False)
00014         self.paraSet = ParameterSet()
00015 
00016     # ---------------------------------------
    def save(self):

def UserTagging::Models::Data::save (   self  ) 

Save Parameters to the UserDataHeader

Definition at line 17 of file Models.py.

00017                   :
00018         """Save Parameters to the UserDataHeader"""   
00019         
00020         for paraName, paraClass in self.paraSet.description.items():
00021             if paraClass == Int:
00022                 self.header.setInt(paraName, self.paraSet.__dict__[paraName])
00023                 self.paraSet.__setattr__(paraName, Int())
00024             elif paraClass == Float:
00025                 self.header.setFloat(paraName, self.paraSet.__dict__[paraName])
00026                 self.paraSet.__setattr__(paraName, Float())
00027             elif paraClass == IntArray:
00028                 self.header.setIntArray(paraName, gbl.std.vector('int')())
00029                 for value in self.paraSet.__dict__[paraName]:
00030                     self.header.get(paraName).value().push_back(value)
00031                 self.paraSet.__setattr__(paraName, IntArray())
00032             elif paraClass == FloatArray:
00033                 self.header.setFloatArray(paraName, gbl.std.vector('float')())
00034                 for value in self.paraSet.__dict__[paraName]:
00035                     self.header.get(paraName).value().push_back(value)
00036                 self.paraSet.__setattr__(paraName, FloatArray())
00037             else:
00038                 raise AttributeError(paraName + ' should not be in the description. ' + str(paraClass))
00039                                                      
00040     # ---------------------------------------
    def addInt(self, *paraList):

def UserTagging::Models::Data::addInt (   self,
  paraList 
)

Definition at line 41 of file Models.py.

00041                                :
00042         self.paraSet.addInt(*paraList)
00043         return self
00044     
    def addFloat(self, *paraList):

def UserTagging::Models::Data::addFloat (   self,
  paraList 
)

Definition at line 45 of file Models.py.

00045                                  :
00046         self.paraSet.addFloat(*paraList)
00047         return self
00048     
    def addIntArray(self, *paraList):

def UserTagging::Models::Data::addIntArray (   self,
  paraList 
)

Definition at line 49 of file Models.py.

00049                                     :
00050         self.paraSet.addIntArray(*paraList)
00051         return self
00052     
    def addFloatArray(self, *paraList):

def UserTagging::Models::Data::addFloatArray (   self,
  paraList 
)

Definition at line 53 of file Models.py.

00053                                       :
00054         self.paraSet.addFloatArray(*paraList)
00055         return self
00056                 
00057     # ---------------------------------------
    def set(self, name, value):

def UserTagging::Models::Data::set (   self,
  name,
  value 
)

set Int or Float

Definition at line 58 of file Models.py.

00058                               :
00059         """set Int or Float"""
00060         try:
00061             paraClass = self.paraSet.description[name]
00062         except KeyError:
00063             raise NameError('Parameter ' + name + ' is not defined yet')
00064         if paraClass in [Int, Float]:
00065             self.paraSet.__setattr__(name, value)
00066         else:
00067             raise AttributeError('Parameter ' + name + ' is an array. Use append() instead.')        
00068         
00069         return self
00070             
00071     # ---------------------------------------
    def append(self, name, value):

def UserTagging::Models::Data::append (   self,
  name,
  value 
)

append to IntArray or FloatArray

Definition at line 72 of file Models.py.

00072                                  :
00073         """append to IntArray or FloatArray"""
00074         try:
00075             paraClass = self.paraSet.description[name]
00076         except KeyError:
00077             raise NameError('Parameter ' + name + ' is not defined yet')
00078         try:
00079             self.paraSet.__dict__[name].append(value)
00080         except AttributeError:
00081             raise AttributeError('Parameter ' + name + ' is not array. Use set() instead.')
00082         return self
00083 
    def get(self, paraName):

def UserTagging::Models::Data::get (   self,
  paraName 
)

wrapper of self.paraSet.get()

Definition at line 84 of file Models.py.

00084                            :
00085         '''wrapper of self.paraSet.get()'''             
00086         return self.paraSet.get(paraName)
00087                
00088     # ---------------------------------------
    def dump(self):

def UserTagging::Models::Data::dump (   self  ) 

wrapper of self.paraSet.dump()

Definition at line 89 of file Models.py.

00089                   :
00090         '''wrapper of self.paraSet.dump()'''    
00091         print "\n----- dumping ", self.path, ' ------'         
00092         self.paraSet.dump()
00093         return self
00094 
00095     # ---------------------------------------
    def setInputHeaders(self, inputHeaders):

def UserTagging::Models::Data::setInputHeaders (   self,
  inputHeaders 
)

a workaround on PyROOT's poor verctor support 
on the original HeaderObject.setInputHeaders() 

inputHeaders: a python list of HeaderObject's

Definition at line 96 of file Models.py.

00096                                            :
00097         '''
00098         a workaround on PyROOT's poor verctor support 
00099         on the original HeaderObject.setInputHeaders() 
00100         
00101         inputHeaders: a python list of HeaderObject's
00102         '''
00103         self.header.inputHeaders().clear()
00104         for hdr in inputHeaders:
00105             self.header.addInputHeader(hdr)
00106         return self
00107 
00108     # ---------------------------------------
    def addInputHeader(self, hdr):

def UserTagging::Models::Data::addInputHeader (   self,
  hdr 
)

Definition at line 109 of file Models.py.

00109                                  :
00110         self.header.addInputHeader(hdr)
00111         return self
00112 
00113 # =========================================== 
class Tag(object):


Member Data Documentation

UserTagging::Models::Data::path

Definition at line 11 of file Models.py.

UserTagging::Models::Data::header

Definition at line 12 of file Models.py.

UserTagging::Models::Data::paraSet

Definition at line 14 of file Models.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:10:48 2011 for UserTagging by doxygen 1.4.7