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

In This Package:

DybAlg::FilterAlgs::FilterAlg Class Reference

List of all members.

Public Member Functions

def __init__
def initialize
def execute
def finalize

Public Attributes

 RegSeqLocation
 ClearStore
 StorePath
 Prescale
 DetectorNames
 detectors
 uniform_random
 randSvc

Detailed Description

Definition at line 25 of file FilterAlgs.py.


Member Function Documentation

def DybAlg::FilterAlgs::FilterAlg::__init__ (   self,
  name 
)

Definition at line 27 of file FilterAlgs.py.

00027                            :
00028         DybPythonAlg.__init__(self,name)
00029         # Properties
00030         self.RegSeqLocation = RegistrationSequence.defaultLocation()
00031         self.ClearStore = True
00032         self.StorePath = ""
00033         self.Prescale = None
00034         self.DetectorNames = []
00035         # Internal variables
00036         self.detectors = []
00037         self.uniform_random = Rndm.Numbers()
00038         return
00039 
    def initialize(self):

def DybAlg::FilterAlgs::FilterAlg::initialize (   self  ) 

Definition at line 40 of file FilterAlgs.py.

00040                         :
00041         status = DybPythonAlg.initialize(self)
00042         self.info("initializing")
00043         for detName in self.DetectorNames:
00044             self.detectors.append(Detector(detName))
00045         # Initialize random number service if applying prescale 
00046         if self.Prescale != None:
00047             self.randSvc = self.svc('IRndmGenSvc','RndmGenSvc')
00048             if self.randSvc == None:
00049                 self.error("Failed to initialize random number service.")
00050                 return FAILURE
00051             status= self.uniform_random.initialize(self.randSvc, Rndm.Flat(0,1))
00052             if not status.isSuccess():
00053                 self.error("Failed to initialize uniform random numbers.")
00054                 return status
00055         return status
00056 
    def execute(self):

def DybAlg::FilterAlgs::FilterAlg::execute (   self  ) 

Definition at line 57 of file FilterAlgs.py.

00057                      :
00058         self.info("executing")
00059         evt = self.evtSvc()
00060         # Get Registration Sequence
00061         regSequence = evt[self.RegSeqLocation]
00062         if regSequence == None:
00063             self.error("Failed to retrieve Registration Sequence from"
00064                        + self.regseqLocation)
00065             return FAILURE
00066         # Get List of TES objects registered this execution cycle
00067         registrations = regSequence.registrations()
00068         for registration in registrations:
00069             hdrObj = registration.object()
00070             if hdrObj == None:
00071                 self.error("Failed to retrieve object at "+registration.path())
00072                 return FAILURE
00073             if self.ClearStore:
00074                 # Start by turning off storage of all items
00075                 regSequence.registration(hdrObj).setStore(False)
00076             if len(self.detectors)>0:
00077                 # Filter by detector if a detector list is defined
00078                 currentDetector = Detector(hdrObj.context().GetSite(),
00079                                            hdrObj.context().GetDetId())
00080                 if currentDetector not in self.detectors:
00081                     continue
00082             if registration.path() == self.StorePath:
00083                 # Store if it is at the selected TES path, check prescale
00084                 if self.Prescale == None:
00085                     regSequence.registration(hdrObj).setStore(True)
00086                     self.debug("Storing "+registration.path()+" in output file")
00087                 elif self.Prescale >= self.uniform_random():
00088                     regSequence.registration(hdrObj).setStore(True)
00089                     self.debug("Storing "+registration.path()+" in output file")
00090         return SUCCESS
00091         
    def finalize(self):

def DybAlg::FilterAlgs::FilterAlg::finalize (   self  ) 

Definition at line 92 of file FilterAlgs.py.

00092                       :
00093         self.info("finalizing")
00094         status = DybPythonAlg.finalize(self)
00095         return status
00096 
00097 
00098 # Time-correlation Filtering algorithm
class CoincidenceFilterAlg(DybPythonAlg):


Member Data Documentation

DybAlg::FilterAlgs::FilterAlg::RegSeqLocation

Definition at line 30 of file FilterAlgs.py.

DybAlg::FilterAlgs::FilterAlg::ClearStore

Definition at line 31 of file FilterAlgs.py.

DybAlg::FilterAlgs::FilterAlg::StorePath

Definition at line 32 of file FilterAlgs.py.

DybAlg::FilterAlgs::FilterAlg::Prescale

Definition at line 33 of file FilterAlgs.py.

DybAlg::FilterAlgs::FilterAlg::DetectorNames

Definition at line 34 of file FilterAlgs.py.

DybAlg::FilterAlgs::FilterAlg::detectors

Definition at line 36 of file FilterAlgs.py.

DybAlg::FilterAlgs::FilterAlg::uniform_random

Definition at line 37 of file FilterAlgs.py.

DybAlg::FilterAlgs::FilterAlg::randSvc

Definition at line 47 of file FilterAlgs.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:40:41 2011 for DybAlg by doxygen 1.4.7