digiRootData

Introduction   Class Overview    Event    ACD    CAL    TKR   L1T    LiveTime     Known Issues

Introduction:

This package contains the definition of our digitization Root classes.  These classes were originally defined for the GLAST 1999 beamtest.  The package was called TBEvent at that time.

Class Overview

The top-level class is called Event this class contains the data for one event.  Each subsystem's subpacket in the real data stream is comprised of a "header" followed by detector data.  The header classes are named:  AcdHeader, CalHeader, TkrHeader.  The detector data for each subsystems is stored in a separate data array.  The ACD data is stored in an array of AcdTile objects, as is the XGT data.  The CAL data is stored as an array of CalLog objects.  The TKR data is stored as an array of TkrLayer objects - where each TkrLayer contains a list of hit StripIds.  The Level One Trigger data is stored in a class called L1T.  The data from the Live Time counters are stored in a class called LiveTime.

Event

Event Method

Description

Returns

getAcdHeader( ) returns the ACD Header data AcdHeader*
getCalHeader( ) returns the CAL Header data CalHeader*
getTkrHeader( ) returns the TKR Header data TkrHeader*
getAcdDigi( ) returns the whole TClonesArray of ACD data
Note:  One may use getAcdTile( ) to retrieve data for one specific AcdTile.
TClonesArray*
getCalDigi( ) returns the whole TClonesArray of CalLogs 
Note:  One may use getCalLog( ) to retrieve data for one specific CalLog
TClonesArray*
getTkrDigi( ) returns the TObjArray of TkrLayers
Note:  One may use getTkrLayer( ) to retrieve data for one specific TkrLayer
TObjArray*
getXgtDigi( ) returns the TClonesArray of XGT data
Note:  One may use getXgt( ) to retrieve data for one specific XGT
TClonesArray*
getAcdTile(int id ) User provides an ACD id in base 10, and the AcdTile object is returned if it exists in the data array AcdTile* or null, if not found
getAcdTile(int l, int f, int r, int c ) User provides the layer, face, row, column to identify the ACD/XGT, and the AcdTile object is returned, if it exists in the data array AcdTile* or null, if not found
getAcdTile(AcdId id ) User provides an AcdId, and the method returns the AcdTile object, if it exists in the data array AcdTile* or null, if not found
getCalLog(LogId id ) User provides a LogId, and the corresponding CalLog object is returned if it exists in the data array. CalLog* or null, if not found
getCalLog(int t, int l, int c) User provides the tower, layer, and column numbers, and the corresponding CalLog object is returned if it exists in the data array CalLog* or null, if not found
getTkrLayer( int layerNum ) User provides a layer number, and the corresponding TkrLayer object is returned if it exists in the data array. TkrLayer* or null, if not found
getXgt(int id ) User provides an XGT id (2000,2001,2010,2011) in base 10, and the AcdTile object is returned if it exists in the data array AcdTile* or null, if not found
getLiveTime( ) returns the Live Time counter data LiveTime*
getL1T( ) returns the Level One Trigger data L1T*

ACD/XGT

AcdTile Method

Description

Returns

getId( ) returns the AcdId object for this ACD/XGT AcdId*
getPulseHeight( ) returns the PHA value for this ACD/XGT 0 - 
getCNO( ) returns 1/0 denoting whether or not this ACD/XGT was over high (CNO) threshold 0 (not over threshold)
1 (over threshold)
getVeto( ) returns whether or not the ACD/XGT was over threshold 0 (not over threshold)
1 (over threshold)

 

AcdId Method

Description

Range

getId(short base=10 ) returns the Id of this AcdId, either in base 10 or base 2, the default is base 10. 0 - 2011 (base 10)
getLayer( ) returns the layer number for this AcdId, based on the Ritz numbering convention. 0-2
getFace( ) returns the face number for this AcdId, based on the Ritz numbering convention. 0-4
getRow( ) returns the row number for this AcdId, based on the Ritz numbering convention.  
getColumn( ) returns the column number for this AcdId, based on the Ritz numbering convention.  
isTop( ) returns true if this ACD/XGT is located at the top of the instrument true/false
isSide( ) returns true if this ACD is located on the side true/false

CAL

CalLog Method

Description

Returns

getLogId( ) returns the LogId LogId*
getAdc(LogFace face, int index ) returns the ADC value for a specific LogFace (POS = 0, NEG = 1) and index (for the BFEM index = [0,3] 0 - 4095
getAdcSelectedRange(LogFace face, AdcRange range ) returns the ADC value for a LogFace (POS = 0, NEG=1, and AdcRange ( 0 - 4095
getRange(LogFace face, int index ) returns the range for a given LogFace (POS = 0, NEG = 1) and index=[0,3] for BFEM LowEnX4 = 0
LowEnX1 = 1
HiEnX8 = 2
HiEnX1 = 3
getMode( ) returns the readout mode for this CalLog BESTRANGE = 0
ALLRANGE = 2
NOTE:  BFEM uses ALLRANGE

 

LogId Method

Description

Returns

getId( ) returns the unique id, constructed using the Tower, Layer, and Column.  
getTower( ) returns the tower number  
getLayer( ) returns the layer number of this LogId 0 - 7, assigned according to the standard Ritz numbering convention, where layer 0 is closest to the TKR.
getColumn( ) returns the column number of this LogId 0 - 9 for the BFEM, assigned according to the standard numbering convention, where 
getXY( ) returns the orientation of the layer, where X = 0, denotes a layer that is oriented along the x-axis, measures Y and Y = 1 denotes a layer that is oriented along the y-axis, measures X. 0 - measures Y

1 - measures X

TKR

TkrLayer Method

Description

Returns

getLayerNum( ) returns the layer number of this TkrLayer - num 0 -
0th layer is the back-most layer, closest to the CAL.
getPlaneNum( ) returns the plane number, where plane refers to an XY pair. 0 - 
0th plane is the back-most plane, closest to the CAL.
getXY( ) returns the orientation of the layer X=0, measures X
Y=1, measures Y
getStrips( ) returns the TObjArray of StripIds TObjArray*
getHit( int i ) returns the ith StripId StripId
getNumHits( ) returns the number of hit strips in this TkrLayer 0 - 1599
getTot(int cntrlNum ) return the Time Over Threshold for either the left(0) or right(1) controller  
getErrf( )    

 

StripId Method

Description

Returns

getId( ) id for this Silicon Strip  0 - 1599
getController( )    
getTag( )    

L1T

L1T Method

Description

Returns

getTrigCount( ) Event Id - counts number of triggers seen 32 bit unsigned integer
getTrigTime( ) L1T time - time the event occurred in 50 ns increments since the last counter reset. 32 bit unsigned integer
getXCapture( ) X TKR layers causing triggers 32 bit integer
getYCapture( ) Y TKR layers causing triggers 32 bit integer
getDeadTime( ) amount of time the TKR is dead due to readout or busy conditions 16 bit unsigned short - where the first 13 bits represent the dead time
getDeadTimeCause( ) Notes which conditions led to the dead time unsigned character
getDeadTimeAndCause( ) Returns a word containing the dead time, dead time cause and MISC capture values.
Organized as:
MISC     Dead   Dead
Capture  Cause  Time
8 bits      8 bits    16 bits
32 bit unsigned integer

For additional information about the l1te subpacket see this page.

LiveTime

LiveTime Method Description Returns
getL1TCount( ) event id - the number of triggers seen during this run 0 - ?
getL1TTime( ) 32 bits of a 48 bit word representing the L1T time, 50 ns FPGA clock pulses without interruption.  
getL1TTimeOverFlow( ) 16 bits of the 48 bit word representing the L1T Time  
getPPSCount( ) number of GPS receiver pulse-per-second (PPS) pulses since power on.  
getPPSTime( ) 32 bits of a 48 bit word representing the L1T time latched at the rising edge of the GPS receiver PPS signal  
getPPSTimeOverFlow( ) 16 bits of a 48 bit word representing the L1T time latched at the rising edge of the GPS receiver PPS signal  
getLiveTime( ) 32 bits of the 48 bit word representing the live time, 50 ns FPGA clock pulses while the L1T Enable is high AND Level-1 Trigger is high.  The count value is held between runs.  
getLiveTimeOverFlow( ) 16 bits of the 48 bit word representing the live time  
getRunTime( ) 32 bits of the 48 bit word representing the run time, 50 ns FPGA clock pulses continuously while L1T enable is high, indicating a run is in progress.  The count value is held between runs.  
getRunTimeOverFlow( ) 16 bits of the 48 bit word representing the run time  
getRunCount( ) run number  
getTREQCapture()    
getLTCDeadWord()    

Known Issues: