00001 #!/usr/local/bin/python 00002 # 00003 # Copyright 2004 00004 # by 00005 # The Board of Trustees of the 00006 # Leland Stanford Junior University. 00007 # All rights reserved. 00008 # 00009 00010 __facility__ = "Online" 00011 __abstract__ = "GLAST LAT Coincidence based Trigger System Interface classes" 00012 __author__ = "Jim Panetta <panetta@slac.stanford.edu> SLAC - GLAST I&T" 00013 __date__ = "2/14/04" 00014 __version__ = "$Revision: 2.1 $" 00015 __release__ = "$Name: R04-12-00 $" 00016 __credits__ = "SLAC" 00017 00018 import LATTE.copyright_SLAC 00019 00020 """TrgMiniGLTRegisters: Register shape definitions for a MiniGLT based trigger system 00021 """ 00022 00023 from TrgMiniGLTAbstract import TrgMiniGLTAbstract 00024 00025 class TrgMiniGLTRegisters(TrgMiniGLTAbstract): 00026 """\brief Register shape definition class for the MiniGLT 00027 This class defines the shapes of the registers and bitfields used 00028 in the MiniGLT 00029 """ 00030 def __init__(self): 00031 TrgMiniGLTAbstract.__init__(self) 00032 00033 ############# Pure Virtual function implementation from parents 00034 def parity(self): 00035 return 0x0 & 0x1 00036 00037 def tag(self): 00038 return 0x0 & 0x3 00039 00040 def eventNumber(self): 00041 return 0x0 & 0x7fff 00042 00043 def destination(self): 00044 # There are exactly two engines in the MiniGLT. 00045 # 0) User defined engine 00046 # 15) Sweep Marker engine 00047 # Use the user-defined engine for everything. 00048 eng = self.engines().engine(0).request() 00049 return eng.destination() 00050 00051 def marker(self): 00052 eng = self.engines().engine(0).request() 00053 return eng.marker() 00054 00055 def tack(self): 00056 eng = self.engines().engine(0).request() 00057 return ( eng.sequence() & 0x1 ) 00058 00059 def zeroSuppress(self): 00060 eng = self.engines().engine(0).request() 00061 return eng.zeroSuppress() 00062 00063 def fourRangeReadout(self): 00064 eng = self.engines().engine(0).request() 00065 return eng.fourRange() 00066 00067 def calStrobe(self): 00068 eng = self.engines().engine(0).request() 00069 return (( eng.sequence() & 0x2 ) >> 1) 00070 00071 00072 00073 00074 00075 00076