eTOF database tables

collection of database tables for the eTOF

CalibMaker

  • electronics map
  • status map
  • calib parameters
  • timing window
  • digi time correction
  • digi tot correction
  • slewing correction
  • reset time offset
  • pulser tot peak
  • pulser time difference in Gbtx

HitMaker

  • hit parameters
  • signal velocity

MatchMaker

  • match parameters
  • geometry alignment
  • geometry alignment on counter level
  • detector resolution

SimMaker

  • sim efficiency

calib param

parameters used in the eTOF CalibMaker

variables:

float                   get4TotBinWidthNs       // conversion factor of Get4 ToT from bin width to nanoseconds
octet                  minDigisInSlewBin       // minimum number of digis in each bin for the slewing corrections
unsigned short  referencePulserIndex   // index of the pulser channel used as reference

frequency:

once per dataset

index name:

*table is not indexed

size:

8 bytes per entry

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofCalibParam.idl:

/* etofCalibParam.idl

*

* table: etofCalibParam

*

* description: calibration parameters used in the

*              etof calibmaker

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofCalibParam{

float   get4TotBinWidthNs;  /* tot bin width to ns conversion */
octet  minDigisInSlewBin;  /* min number of digis per slewing bin */
unsigned short  referencePulserIndex;  /* index of the pulser channel used as reference */

};

/* end etofCalibParam.idl */

 

detector resolution

detector resolution (local X, localY, time) of the eTOF counters

variables:

float   detectorResX[ 108 ]     // resolution in localX (cm) in each RPC counter (12 sectors * 3 modules * 3 counters)
float   detectorResY[ 108 ]     // resolution in localY (cm) in each RPC counter
float   detectorResT[ 108 ]     // resolution in time (ns) in each RPC counter
                                           // ( sector - 13 ) * 9  +  ( zPlane - 1 ) * 3  +  ( counter - 1 )

frequency:

once per dataset

index name:

*table is not indexed

size:

1296 bytes per entry

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofDetResolution.idl:

/* etofDetResolution.idl

*

* table: etofDetResolution

*

* description: detector resolution (localX, localY, time)

*              of each etof counter

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofDetResolution{

float  detectorResX[108];  /* detector resolution in local X (cm)  */
float  detectorResY[108];  /* detector resolution in local Y (cm)  */
float  detectorResT[108];  /* detector resolution in time (ns)     */

};

/* end etofDetResolution.idl */

digi time correction

calibration parameter applied to the time of the eTOF digis in each channel

variables:

float   timeCorr[ 6912 ]     // correction parameter to be applied to the digi time in each channel of eTOF
                                      // combines hit position offsets and offsets related to electronics, cables, etc.
                                      // ( sector - 13 ) * 576  +  ( zPlane - 1 ) * 192  + ( counter - 1 ) * 64 + ( strip - 1 ) * 2 + ( side - 1 )


frequency:

in general once per dataset

index name:

*table is not indexed

size:

27648 bytes per entry

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofDigiTotCorr.idl:

/* etofDigiTimeCorr.idl

*

* table: etofDigiTimeCorr

*

* description: correction parameter to be applied to each channel

*              on the digi level

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofDigiTimeCorr{

float  timeCorr[6912];  /* time offset correction for etof digis */

};

/* end etofDigiTimeCorr.idl */

digi tot correction

calibration parameter applied to the ToT of the eTOF digis in each channel

variables:

float   totCorr[ 6912 ]     // correction factor to be applied to the digi TOT in each channel of eTOF
                                   // ( sector - 13 ) * 576  +  ( zPlane - 1 ) * 192  + ( counter - 1 ) * 64 + ( strip - 1 ) * 2 + ( side - 1 )


frequency:

in general once per dataset

index name:

*table is not indexed

size:

27648 bytes per entry

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofDigiTotCorr.idl:

/* etofDigiTotCorr.idl

*

* table: etofDigiTotCorr

*

* description: correction factor to be applied to each channel

*              on the digi level

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofDigiTotCorr{

float  totCorr[6912];  /* tot correction factor for etof digis */

};

/* end etofDigiTotCorr.idl */

electronics map

map electronic addresses ( AFCK address, chip id, channel id in each Get4 chip ) to geometry: sector, z-plane, counter, strip, side

variables:
octet                  nAfcks                          // number AFCK boards
unsigned short    nChannels                     // number of channels per AFCK board

unsigned short    afckAddress[12]            // MAC address of AFCK board
octet                  sector[12]                     // eTOF sector linked to the AFCK

unsigned short    channelNumber[ 576 ]    // channel number ( up to 9 RPCs with 64 channels each are connected to one AFCK ) = chipId * 10 + channelId
unsigned short    geometryId[ 576 ]          // eTOF plane, counter, strip and side corresponding to each channel
                                                            // geometry id = zPlane * 10000 + counter * 1000 + strip * 10 + side

frequency:

after initial upload, this table will only be updated when electronic boards need to be exchanged
or some error in the cable connections are found ( potentially once per RHIC run or less )

index name:

*table is not indexed

size:

the size per entry is 2344 bytes

write access:

fseck          --    Florian Seck          ( TU Darmstadt )
weidenkaff  --    Philipp Weidenkaff  ( Heidelberg University )

etofElectronicsMap.idl:

/* etofElectronicsMap.idl

*

* table: etofElectronicsMap

*

* description: parameters for convertion of electronic addresses to

*              etof geometry identifiers

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofElectronicsMap{
octet           nAfcks;              /* number of AFCK boards in the system */
unsigned short  nChannels;           /* number of channels connected to the AFCKs */

unsigned short  afckAddress[12];     /* MAC address of AFCK board */
octet           sector[12];          /* eTOF sector linked to the AFCK */

unsigned short  channelNumber[576];  /* channel number */
unsigned short  geometryId[576];     /* geometry id->plane,counter,strip,side */
};

/* end etofElectronicsMap.idl */

etof get4state

 state of Get4s regarding to clock-jumps


variables:

 unsigned long etofGet4State[1000000];    // state of get4s, changes & corresponding event id's 


frequency:

each entry covers a run

index name:

*table is not indexed

size:

 about 4MB per run

write access:

ysoehngen  --  Yannick Söhngen   ( Heidelberg University )

etofGet4State.idl:

/* etofGet4State.idl

*

* table: etofGet4State

*

* description:Get4States and state changes dealing with "Clock-Jumps"

*             0 - good,  1 - too early by 6.25ns ,2 too late by 6.25 ns,3 - bad

*

* author: Yannick Söhngen ( PI Heidelberg )

*

*/

 

struct etofGet4State {

  unsigned long etofGet4State[1000000]; /* state of get4s, changes & event id */

};

 

geometry alignment

geometry alignment parameters (local X, localY, localZ, rotation angles ) of the eTOF counters

variables:

float   offsetX[ 36 ]        // offset in localX (cm) for each eTOF module (12 sectors * 3 modules)
float   offsetY[ 36 ]        // offset in localY (cm) for each eTOF module
float   offsetZ[ 36 ]        // offset in local Z (cm) for each eTOF module
float   angleXY[ 36 ]      // rotation angle in local XY plane for each eTOF module
float   angleXZ[ 36 ]      // rotation angle in local XY plane for each eTOF module
float   angleYZ[ 36 ]      // rotation angle in local XY plane for each eTOF module
                                   // ( sector - 13 ) * 9  +  ( zPlane - 1 )

frequency:

once per dataset

index name:

*table is not indexed

size:

864 bytes per entry

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofGeomAlign.idl:

/* etofGeomAlign.idl

*

* table: etofGeomAlign

*

* description: geometry alignment parameters ( offset in localX, localY, localZ,

*              rotations in XY, XZ, YZ planes) of each etof module

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofGeomAlign{

float  offsetX[36];  /* offset in local X (cm) */
float  offsetY[36];  /* offset in local Y (cm) */
float  offsetZ[36];  /* offset in local Z (cm) */
float  angleXY[36];  /* rotation in local XY plane */
float  angleXZ[36];  /* rotation in local XZ plane */
float  angleYZ[36];  /* rotation in local YZ plane */

};

/* end etofGeomAlign.idl */

geometry alignment on counter level

geometry alignment parameters (local X, localY, localZ ) of the eTOF counters for individual counters

variables:

   float  detectorAlignX[108];  // detector alignment in local X (cm)   (12 sectors * 3 modules * 3 counters)
   float  detectorAlignY[108];  // detector alignment in local Y (cm) 
   float  detectorAlignZ[108];  // detector alignment in local Z (cm)                  

frequency:

once per dataset

index name:

*table is not indexed

size:

 1296 bytes per entry

write access:

ysoehngen --  Yannick Soehngen   ( Heidelberg University )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofAlign.idl:

/* etofAlign.idl
*
* table: etofAlign
*
* description: detector alignment parameters (local X,local Y,local Z)

*                    of each etof counter

*
* author: Yannick Söhngen (Universität Heidelberg)
*
*/

struct etofAlign {
    float  detectorAlignX[108];  /* detector alignment in local X (cm)  */
    float  detectorAlignY[108];  /* detector alignment in local Y (cm)  */
    float  detectorAlignZ[108];  /* detector alignment in local Z (cm)  */
};
/* end etofAlign.idl */

hit modification on counter level

Flag for modification of hits on counter level (flip local x & y)

variables:

   octet  detectorModFlag[108];  // flag for hit modification on counter level (1: flip local x & y, 2: flip local x, 3: flip local y, 4&5 : rotate by +- 90°)
             

frequency:

once per hardware replacement (about once per year)

index name:

*table is not indexed

size:

  108 bytes per entry

write access:

ysoehngen --  Yannick Soehngen   ( Heidelberg University )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofModCounter.idl:

/* etofModCounter.idl
*
* table: etofModCounter
*
* description: flag to modify Hits on Counter

*                    0: no modification, 1: flip local X & Y position            
*                    2: flip local X, 3: flip local Y, 4&5: rotate by +-90°

*
* author: Yannick Söhngen (Universität Heidelberg)
*
*/

struct etofModCounter {
    octet detectorModFlag[108];  /* flag for hit-modifications on counter level  */
};
/* end etofModCounter.idl */

hit param

parameters used in the eTOF HitMaker

variables:

float  maxLocalY               // maximum absolute local Y matching of digis of different sids of a strip
float  clusterMergeRadius  // maximum distance for hits on adjacent strips to be clustered together

frequency:

once per dataset

index name:

*table is not indexed

size:

8 bytes per entry

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofHitParam.idl:

/* etofHitParam.idl

*

* table: etofHitParam

*

* description: parameters used in the etof hitmaker for clustering

*

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofHitParam{

float  maxLocalY;           /* maximum absolute local Y for matching of digis */
float  clusterMergeRadius;  /* maximum distance for clustering of hits */

};

/* end etofHitParam.idl */

match param

parameters used in the eTOF MatchMaker

variables:

float   matchRadius              // maximum distance between eTOF hit and track intersection
octet  trackCutNHitsFit         // cut for tracks to be used in the matching: nHitsFit in TPC
float   trackCutNHitsRatio     // cut for tracks to be used in the matching: nHitsFit to nHitsPoss ratio in TPC
float   trackCutLowPt            // cut for tracks to be used in the matching: low pt

frequency:

once per dataset

index name:

*table is not indexed

size:

16 bytes per entry

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )


etofMatchParam.idl:

/* etofMatchParam.idl

*

* table: etofMatchParam

*

* description: parameters used in the etof matchmaker

*

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofMatchParam{

float  matchRadius;         /* maximum distance etof hit to track intersection */
octet  trackCutNHitsFit;    /* track cut nHitsFit in TPC */
float  trackCutNHitsRatio;  /* track cut nHitsFit to nHitsPoss ratio in TPC */
float  trackCutLowPt;       /* track cut low pt */

};

/* end etofMatchParam.idl */

pulser time difference in Gbtx

time difference of pulser digis within the same Gbtx (e.g. due to cables) compared to counter 1

variables:

float   pulserTimeDiffGbtx[ 144 ]     // time difference of one pulser to the pulser in counter 1 on the same Gbtx
                                                       // ( sector - 13 ) * 12  +  ( zPlane - 1 ) * 4  + ( side - 1 ) * 2 +  x
                                                       //  x = 0: counter 1 - counter 2,   x= 1: counter 1 - counter 3

frequency:

in general once per dataset

index name:

*table is not indexed

size:

576 bytes per entry

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofPulserTimeDiffGbtx.idl:

/* etofPulserTimeDiffGbtx.idl

*

* table: etofPulserTimeDiffGbtx

*

* description: time difference of pulsers within one Gbtx

*                    (used to correct for missing pulsers)

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofPulserTimeDiffGbtx{

float  pulserTimeDiffGbtx[144];  /* time difference between counters within one Gbtx */

};

/* end etofPulserTimeDiffGbtx.idl */

pulser tot peak

parameters for ToT used to find the pulsers in the events

variables:

octet  pulserTot[ 216 ]    // ToT peak position (bin between 0 and 255) of pulsers for each side of the RPC counters

frequency:

once (or up to a few times) per year if RHIC running

index name:

*table is not indexed

size:

the size per entry is 216 bytes

write access:

fseck          --    Florian Seck          ( TU Darmstadt )
weidenkaff  --    Philipp Weidenkaff  ( Heidelberg University )

etofPulderTotPeak.idl:
/* etofPulserTotPeak.idl

*

* table: etofPulserTotPeak

*

* description: parameters for ToT used to find the pulsers in the events

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofPulserTotPeak{
octet pulserTot[216]; /*ToT peak position (bin: 0-255) of pulsers per side*/
};

/* end etofPulserTotPeak.idl */

reset time offset

parameter for common T0 offset correction to sync the eTOF with the bTOF clock ( could be on run-by-run basis )

variables:

float    resetTimeOffset    // common T0 offset correction (bTOF clock reset)

frequency:

can change in each run (~4000 runs in 2018: FXT 3.0 GeV, isobars and first half of 27 GeV datasets), should be more constant in the future (--> entries will be much less frequent)

index name:

*table is not indexed

size:

the size per entry is 4 bytes -->  ~8 000 bytes per year maximum

write access:

fseck          --    Florian Seck          ( TU Darmstadt )
weidenkaff  --    Philipp Weidenkaff  ( Heidelberg University )

etofResetTimeCorr.idl:

/* etofResetTimeCorr.idl

*

* table: etofResetTimeCorr

*

* description: parameter for a common T0 offset correction to sync

*              the whole eTOF with the bTOF clock

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofResetTimeCorr{

float  resetTimeOffset;   /* common t0 offset correction to sync eTOF with bTOF clock */

};

/* end etofResetTimeCorr.idl */

signal velocity

velocity of electronic signals travelling across the RPC strips

variables:

float   signalVelocity[ 108 ]     // signal velocity in each RPC counter (12 sectors * 3 modules * 3 counters)
                                           // ( sector - 13 ) * 9  +  ( zPlane - 1 ) * 3  +  ( counter - 1 )


frequency:

once per RHIC run

index name:

*table is not indexed

size:

432 bytes per entry

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )


etofSignalVelocity.idl:

/* etofSignalVelocity.idl

*

* table: etofSignalVelocity

*

* description: calibration parameters of signal velocity

*              of etof counters

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofSignalVelocity{

float  signalVelocity[108];  /* signal velocity of each counter  */

};
/* end etofSignalVelocity.idl */

sim efficiency

efficiency of hit creation in eTOF counters used for simulation

variables:

float   efficiency[ 108 ]      // hit creation efficiency in each RPC counter (12 sectors * 3 modules * 3 counters)
                                      // ( sector - 13 ) * 9  +  ( zPlane - 1 ) * 3  +  ( counter - 1 )

frequency:

once per RHIC run or less

index name:

*table is not indexed

size:

432 bytes per entry

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofSimEfficiency.idl:

/* etofSimEfficiency.idl

*

* table: etofSimEfficiency

*

* description: efficiency for hit creation in etof counters

*

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofSimEfficiency{

float  efficiency[108];  /* hit creation efficiency in each counter */

};

/* end etofSimEfficiency.idl */

slewing correction

parameters for the slewing corrections applied to the eTOF digis in each channel and ToT bin


variables:

unsigned short   channelId[207360]           // ( sector - 13 ) * 576  +  ( zPlane - 1 ) * 192  + ( counter - 1 ) * 64 + ( strip - 1 ) * 2 + ( side - 1 )  --> 6912 channels
unsigned short   upperTotEdge[ 207360 ]   // upper edge of tot interval ( * 100 ) for corr --> 30 bins per channel
short                 corr[ 270360 ]                 // correction parameter ( * 100 ) to be applied to the digi time

frequency:

in general once per dataset

index name:

*table is not indexed

size:

the size per entry is 1244160 bytes

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofDigiTotCorr.idl:

/* etofDigiSlewCorr.idl

*

* table: etofSlewTimeCorr

*

* description: correction parameter to be applied to each channel (6912)

*              and tot bin (30) on the digi level --> 207360 values

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofDigiSlewCorr{

unsigned short channelId[207360];    /* channel id */
unsigned short upperTotEdge[207360]; /* edge of tot intervals for corr */

short          corr[207360]; /* correction parameter to be applied to the digi time */

};

/* end etofDigiSlewCorr.idl */
 

status map

status map of eTOF channels

variables:

octet   status[ 6912 ]     // status of each channel ( 0 - off / not existing,  1 - on )
                                   // ( sector - 13 ) * 576  +  ( zPlane - 1 ) * 192  + ( counter - 1 ) * 64 + ( strip - 1 ) * 2 + ( side - 1 )


frequency:

whenever some part of the detector is taken out for an extended period in time, in generally however only once per RHIC run

index name:

*table is not indexed

size:

6912 bytes per entry

write access:

fseck          --  Florian Seck           ( TU Darmstadt )
weidenkaff  --  Philipp Weidenkaff   ( Heidelberg University )

etofStatusMap.idl:

/* etofStatusMap.idl

*

* table: etofStatusMap

*

* description: status map of all etof channels

*              0 - off / not existing,  1 - on

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofStatusMap{

octet  status[6912];  /* status of each eTOF channel */

};

/* end etofStatusMap.idl */

timing window

parameters for the timing window of eTOF digis on each AFCK board

variables:

unsigned short    afckAddress[12]   // MAC address of AFCK board

float                   timingMin[12]       // lower edge of the timing window
float                   timingMax[12]      // upper edge of the timing window
float                   timingPeak[12]     // peak position in the timing window
float                   pulserMin[12]       // lower edge of the 'pulser-after-token' window
float                   pulserMax[12]      // upper edge of the 'pulser-after-token' window
float                   pulserPeak[12]     // peak position in the 'pulser-after-token' window

frequency:

once per dataset

index name:

*table is not indexed

size:

312 bytes per entry

write access:

fseck          --    Florian Seck          ( TU Darmstadt )
weidenkaff  --    Philipp Weidenkaff  ( Heidelberg University )

etofTimingWindow.idl:

/* etofTimingWindow.idl

*

* table: etofTimingWindow

*

* description: parameters for selection of digis inside the

*              timing window and pulser digis for clock synchonization

*

* author: Florian Seck ( TU Darmstadt )

*

*/

struct etofTimingWindow{
unsigned short  afckAddress[12];   /* MAC address of AFCK board */

float  timingMin[12];  /* lower edge of the timing window */
float  timingMax[12];  /* upper edge of the timing window */
float  timingPeak[12]; /* peak position in the timing window */
float  pulserMin[12];  /* lower edge of the pulser-after-token window */
float  pulserMax[12];  /* upper edge of the pulser-after-token window */
float  pulserPeak[12]; /* peak position in the pulser-after-token window */
};

/* end etofTimingWindow.idl */