Public Member Functions | |
def | __init__ |
def | initialize |
def | execute |
def | finalize |
Public Attributes | |
RegSeqLocation | |
ClearStore | |
StorePath | |
Prescale | |
DetectorNames | |
detectors | |
uniform_random | |
randSvc |
Definition at line 25 of file FilterAlgs.py.
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):
Definition at line 30 of file FilterAlgs.py.
Definition at line 31 of file FilterAlgs.py.
Definition at line 32 of file FilterAlgs.py.
Definition at line 33 of file FilterAlgs.py.
Definition at line 34 of file FilterAlgs.py.
Definition at line 36 of file FilterAlgs.py.
Definition at line 37 of file FilterAlgs.py.
Definition at line 47 of file FilterAlgs.py.