collection of database tables for the eTOF
CalibMaker
HitMaker
MatchMaker
SimMaker
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 (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 */
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 */
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 */
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 */
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 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 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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 */
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 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 */
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 */