Presentation is loading. Please wait.

Presentation is loading. Please wait.

GLAST LAT Project ACD G3 Talks - 1 March, 20041 Gamma-ray Large Area Space Telescope GLAST Large Area Telescope GASU Based Trigger Systems Jim Panetta.

Similar presentations


Presentation on theme: "GLAST LAT Project ACD G3 Talks - 1 March, 20041 Gamma-ray Large Area Space Telescope GLAST Large Area Telescope GASU Based Trigger Systems Jim Panetta."— Presentation transcript:

1 GLAST LAT Project ACD G3 Talks - 1 March, 20041 Gamma-ray Large Area Space Telescope GLAST Large Area Telescope GASU Based Trigger Systems Jim Panetta Stanford Linear Accelerator Center

2 GLAST LAT Project ACD G3 Talks - 1 March, 20042 GASU Based Test Stands LAT based trigger systems Hardware Abstractions User Implementation (Examples! Code!! Animatronic Dinosaurs!!!)

3 GLAST LAT Project ACD G3 Talks - 1 March, 20043 LAT Based Triggers All triggers define: –Startup conditions ( TrgSequence ) –A set of data inputs ( TrgInputEnables ) –A set of conditions( TrgConditionsValue ) –A set of actions to take ( TrgEngines ) –Ending sequence( TrgInjectMarker )

4 GLAST LAT Project ACD G3 Talks - 1 March, 20044 Defining the GEM Define setup parameters Implement register shapes and accessors from the setup parameters Create the hardware abstraction

5 GLAST LAT Project ACD G3 Talks - 1 March, 20045 On orbit: ACD is used to veto triggers Test stand: ACD is used to cause triggers Implement a coincidence based system –Create list of tiles in coincidence –Define engines –Dictate trigger conditions Implementing the ACD Trigger

6 GLAST LAT Project ACD G3 Talks - 1 March, 20046 Coincidence Trigger System TrgUsingTiles –Master class for a coincidence based system –Provided by LATTE –Defines a default sequence –Defines an ROI implementation ( coincidences ) –Sets the ACD into triggering mode

7 GLAST LAT Project ACD G3 Talks - 1 March, 20047 User Code AcdUserExample –Implements coincidences between tiles –Specifies the input maskings –Defines the set of engines used by the trigger

8 GLAST LAT Project ACD G3 Talks - 1 March, 20048 User code, ctd. class AcdTriggerExample(TrgUsingTiles): """\brief ACD example interface to GEM """ def __init__(self): TrgUsingTiles.__init__(self) # it just so happens that the roi is exactly # the same as the coincidences object self.__inputEnables = MyTrgInputEnables() self.__engines = MyTrgEngines() self.__conditions = CnoCondition() self.__coincidences = self.roi() # Load the coincidences self.coincidences().addCoincidence(0,MyCoinc()) + member functions to return the above

9 GLAST LAT Project ACD G3 Talks - 1 March, 20049 Input, CNO, and Tile Enables class MyTrgInputEnables(TrgInputEnables): def __init__(self): TrgInputEnables.__init__(self) self.__towers = NoTowersEnabled() self.__cno = MyCnoEnables() self.__tiles = MyTileEnables() class MyCnoEnables(TrgCnoEnables): """Turn on LA1 and leave the rest off""" def LA1(self): return True class MyTileEnables(TrgTileEnables): """Enable all tiles""" def tile(self,tileNumber): return 0x3

10 GLAST LAT Project ACD G3 Talks - 1 March, 200410 Trigger Conditions class CnoCondition(TrgConditionsValue): """ Define a condition where only the CNO trigger is asserted""" def __init__(self): TrgConditionsValue.__init__(self) def cno(self): return True def roi(self): return False def calLow(self): return False def calHigh(self): return False def tkr(self): return False def periodic(self): return False def solicited(self): return False

11 GLAST LAT Project ACD G3 Talks - 1 March, 200411 Coincidences class MyCoinc0(TrgCoincidence): """This is an example of a user coincidence function. Note: The keys in the pairList dictionary *must* be unique, but the values do not have to be. """ def __init__(self): TrgCoincidence.__init__(self) self.__pairList = { 0x0 : 0x49, 0x7 : 0x41, 0x14 : 0x1F, 0x25 : 0x41, 0x37 : 0x57, } #self.__pairList2 = { AcdTileNumbering["000"] : AcdTileNumbering["001"]}

12 GLAST LAT Project ACD G3 Talks - 1 March, 200412 Trigger Engines class MyTrgEngines(rcTrgEngines): def __init__(self): eng = MyEngine() self.replaceEngine(1,eng) class MyEngine(TrgEngine): """This class defines an engine which reads out the detector whenever there is a CNO trigger. This engine is not prescaled. """ def __init__(self): self.__request = TrgReadout() self.__cond = CnoCondition() def participate(self,conditionsValue): condValue = self.__cond.value() if conditionsValue & condValue: return True return False

13 GLAST LAT Project ACD G3 Talks - 1 March, 200413 Test Code from AcdTriggerExample import * # set trigger code self.trigger( AcdTriggerExample() )... # enable triggers self.trigger().enable() # solicit a trigger self.trigger().solicit() # disable triggers self.trigger().disable()

14 GLAST LAT Project ACD G3 Talks - 1 March, 200414 Summary Trigger is pieced into components Each component has a function Few components depend on others Actual hardware is unimportant Register shapes are unimportant

15 GLAST LAT Project ACD G3 Talks - 1 March, 200415

16 GLAST LAT Project ACD G3 Talks - 1 March, 200416


Download ppt "GLAST LAT Project ACD G3 Talks - 1 March, 20041 Gamma-ray Large Area Space Telescope GLAST Large Area Telescope GASU Based Trigger Systems Jim Panetta."

Similar presentations


Ads by Google