Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | Related Pages

TrgEngines.py

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 Trigger Engine 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 
00021 from TrgObject import TrgObject
00022 
00023 
00024 """TrgEngines: Interface for the Trigger Engine classes"""
00025 
00026 
00027 class TrgEngines(TrgObject):
00028   """\brief Trigger Engines class definition
00029   A Trigger Engine defines what the Trigger System does when it 
00030   detects a triggerable condition within the LAT
00031   """
00032   def __init__(self):
00033     """\brief TrgEngines constructor
00034     """
00035     pass
00036 
00037   def engine(self, engineNumber):
00038     """\brief Engine 'pure virtual' method
00039     Reference into a list of engines.
00040     \param engineNumber  An integer
00041     \return A TrgEngine object
00042     """
00043     raise NotImplementedError
00044     pass
00045 
00046 
00047 class TrgEngine(TrgObject):
00048   """\brief Trigger Engine class definition
00049   The user inherits from this class to customize their own Trigger Engines. 
00050   The user must satisfy the member function 'request', which returns an 
00051   object of type TrgEngineRequest.
00052   The user must satisfy the member function 'prescale', which returns an 
00053   integer.
00054   """
00055   def __init__(self):
00056     """\brief TrgEngine constructor
00057     """
00058     pass
00059 
00060   def prescale(self):
00061     """\brief prescale 'pure virtual' method
00062 
00063     \return An integer
00064     """
00065     raise NotImplementedError
00066     pass
00067 
00068   def request(self):
00069     """\brief request 'pure virtual' method
00070     Return the TrgEngineRequest object corresponding to this engine.
00071     \return A TrgEngineRequest object
00072     """
00073     raise NotImplementedError
00074     pass
00075     
00076   def participate(self,conditionsValue):
00077     """\brief participate 'pure virtual' method
00078     Determines whether or not this engine participates when a particular
00079     conditionsValue is satisfied in the GEM.
00080     \param conditionsValue  An integer
00081     \return A boolean
00082     """
00083     raise NotImplementedError
00084     pass
00085 
00086 
00087 class TrgEngineRequest(TrgObject):
00088   """\brief Trigger Engine Request class definition
00089   The TrgEngineRequest class is used to specify the parameterization 
00090   of the Trigger Message associated with a given engine.
00091   
00092   See below for concrete examples.
00093   """
00094   def __init__(self):
00095     """\brief TrgEngineRequest constructor
00096     """
00097     pass
00098 
00099     
00100   def fourRange(self):
00101     """\brief fourRange 'virtual' method
00102     Return TRUE if the four-range-readout is enabled, else FALSE.
00103     \return A boolean
00104     """
00105     return False
00106 
00107   def zeroSuppress(self):
00108     """\brief zeroSuppress 'virtual' method
00109     Return TRUE if the zero-suppression is enabled, else FALSE.
00110     \return A boolean
00111     """
00112     return False
00113 
00114   def destination(self):
00115     """\brief destination method
00116      
00117     \return An integer
00118     """
00119     raise NotImplementedError
00120     pass
00121 
00122   def marker(self, markerValue = 0):
00123     """\brief marker  method
00124 
00125     \param markerValue  A marker value
00126     \return An integer
00127     """
00128     return 0
00129 
00130   def sequence(self):
00131     """\brief sequence 'pure virtual' method
00132 
00133     \return An integer
00134     """
00135     raise NotImplementedError
00136     pass
00137 
00138 class TrgInjectCharge(TrgEngineRequest):
00139   """\brief TrgInjectCharge class definition
00140   
00141   Directs a module to send to its Front-End Electronics a command sequence 
00142   which is composed only of the CALSTROBE command. This command will not 
00143   trigger a readout of the module's Front-End Electronics.  
00144   """
00145   def __init__(self):
00146     """\brief TrgInjectCharge constructor
00147     """
00148     TrgEngineRequest.__init__(self)
00149     
00150   def sequence(self):
00151     """\brief sequence() method
00152     See TrgEngineRequest base class
00153     """
00154     return 2
00155 
00156 class TrgReadout(TrgEngineRequest):
00157   """\brief TrgReadout class definition
00158   
00159   Directs a module to send to its Front-End Electronics a command sequence 
00160   which is composed only of the TACK command. This command will trigger 
00161   a readout of the module's Front-End Electronics.
00162   """
00163   def __init__(self):
00164     """\brief TrgReadout constructor
00165     """
00166     TrgEngineRequest.__init__(self)
00167     
00168   def sequence(self):
00169     """\brief sequence() method
00170     See TrgEngineRequest base class
00171     """
00172     return 1
00173 
00174 class TrgInjectChargeReadout(TrgEngineRequest):
00175   """\brief Trigger Inject Charge Readout class definition
00176   
00177   Directs a module to send to its Front-End Electronics a command sequence 
00178   which is composed of a CALSTROBE followed by a TACK command. 
00179   This sequence will trigger a readout of the module's Front-End Electronics.
00180   """
00181   def __init__(self):
00182     """\brief TrgInjectChargeReadout constructor
00183     """
00184     TrgEngineRequest.__init__(self)
00185     
00186   def sequence(self):
00187     """\brief sequence() method
00188     See TrgEngineRequest base class
00189     """
00190     return 3
00191     
00192 class TrgInjectMarker(TrgEngineRequest):
00193   """\brief Trigger Inject Marker class definition
00194   Directs a module to send to its Front-End Electronics a command sequence 
00195   which is composed of only a TACK command. This sequence will trigger 
00196   a readout of the module's Front-End Electronics.
00197   """
00198   def __init__(self, marker):
00199     """\brief TrgInjectMarker constructor
00200     """
00201     TrgEngineRequest.__init__(self)
00202     self.__marker = marker
00203     
00204   def sequence(self):
00205     """\brief sequence() method
00206     See TrgEngineRequest base class
00207     """
00208     return 1
00209     
00210   def marker(self):
00211     """\brief marker() method
00212     See TrgEngineRequest base class
00213     """
00214     return self.__marker
00215 
00216 

Generated on Fri Jul 21 13:26:33 2006 for LATTE R04-12-00 by doxygen 1.4.3