FTT

fobToHV Database table request

fobToHV
1) Variables and update frequency:
```
octet fob; /* fob 1-96 */
octet cable; /* HV cable 1 - 32 */
octet board; /* HV board 0 - 2 */
octet channel; /* HV channel on board 1 - 11 */
```

Update frequency:
A few times per year. In 2022 it has changed twice so far.

2) idl structure
```
/* fobToHV.idl
*
* Table: fobToHV
*
* description: // sTGC (ftt) map from FOB to HV
*
*/

struct fobToHV {
    octet fob[96]; /* fob 1-96 */
    octet cable[96]; /* HV cable 1 - 32 */
    octet board[96]; /* HV board 0 - 2 */
    octet channel[96]; /* HV channel on board 1 - 11 */
};
```
3) non-indexed, update entire database each time.
4) size of structure: 384
5) jdb

fobToStation

fobToStation
1) Variables and update frequency:
```
octet fob; /* fob 1-96 */
octet station; /* HV cable 18 - 35 */
```

Update frequency:
A few times per year. In 2022 it has changed once so far.

2) idl structure
```
/* fobToStation.idl
*
* Table: fobToStation
*
* description: // sTGC (ftt) map from FOB to Station
*
*/

struct fobToStation {
    octet fob[96]; /* fob 1-96 */
    octet station[96]; /* station identifier 1 - 35 */
};
```
3) non-indexed, update entire database each time.
4) size of structure: 192
5) jdb

fttDataWindows DB request

DATA WINDOWS
1) Variables and update frequency

```
octet uuid; /* fob(1-96) x vmm(1-4) = index 1 - 384 */
octet mode /* 0 = timebin, 1 = bcid */
short min; /* time window min > -32768 */
short max; /* time window max < 32768 */
short anchor; /* calibrated time anchor for BCID */
```

Update frequency:
Every single run.
This is essentially a status table which defines a few things:
uuid: identifies the VMM
mode: time mode to use for determining good data ranges (e.g. 0 OFF, 1 use timebin, 2 use bcid, etc)
min, max: define time window in timebins or bcids
anchor: calibrated bcid=0 for each VMM - changes every run

2) IDL structure
```
/* fttDataWindows.idl
*
* Table: fttDataWindows
*
* description: // sTGC (ftt) data time windows
*
*/

struct fttDataWindows {
    octet uuid[385]; /* fob(1-96) x vmm(1-4) = index 1 - 384 */
    octet mode[385]; /* 0 = timebin, 1 = bcid */
    short min[385]; /* time window min > -32768 */
    short max[385]; /* time window max < 32768 */
    short anchor[385]; /* calibrated time anchor for BCID */
};
```

3) non-indexed, update entire database each time.
4) size of structure: 3080 bytes
5) jdb

fttHArdwareMap request info

1) Variables and update frequency:
Row_num    
FEB_num    
VMM_num    
VMM_ch         
strip_ch

Very rare update - stores a hardware map which is static unless there is a mistake discovered or a hardware failure that requires remapping. May be updated < 10 times in next few years.

2)  IDL structure:
```
/* fttHardwareMap.idl
*
* Table: fttHardwareMap
*
* description: // sTGC (ftt) hardware map
*
*/

struct fttHardwareMap {
    octet feb[1251]; /* 1-6 */
    octet vmm[1251]; /* 1-4 */
    octet row[1251]; /* 0-4 */
    octet vmm_ch[1251]; /* 0-64 */
    octet strip[1251]; /* 0-166*/
};
```

3) I am always a little confused about this. Updates rare, expect 1250 rows each with the structure above
4) size of structure
5 bytes * 1251 array lengths
Total size = 6255bytes

5) jdb