digiRootData
Introduction Class Overview Event ACD CAL TKR L1T LiveTime Known Issues
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.
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 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* |
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 |
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 |
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 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 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() |
When compiling digiRootData on Windows, warning messages
are generated:
warning C4291: 'void *__cdecl TObject::operator
new(unsigned int,void *)' : no matching operator delete found; memory will
not be freed if initialization throws an exception d:\extlib/ROOT/3.00.06/include\TObject.h(159)
: see declaration of 'new'
This occurs due to our use of TClonesArray, which is filled via a
call to "new with placement". This is a small bug in the
version of Root 3.00.06 that we are using. It should have no effect on
us, as this is only a problem if an exception is thrown during the call to
new..i.e. if this throws an exception...there are bigger problems roaming
about. The bug in Root has been fixed as of Root 3.01.02.