SBND Calibration Database
Author: Marina Reggiani-Guzzo, PDRA at University of Edinburgh, mguzzo@ed.ac.uk
Last update: 23 May 2024
Hi there, this document contains all the information you need to know about the SBND calibration database. Please contact the author if you find any wrong/outdated information on this page.
General comments
- This page is under construction, this message will be removed when the displayed information is definite!
- If you are working on the SBND calibration, please check if the information for your calibration is listed below, otherwise please update SBND Calibration Database Spreadsheet
Databases
There are two databases for SBND: development database and production database. The “development database” is an intermediate stage used to validate the values that will later on be uploaded to the “production database”, which is the one accessed by analyser modules and simulations. That means that, every time the database needs to be updated (whether it is a value changing, or including/removing variables) it will be implemented in the “development database” first. The change should be validated by the person requesting the change, and once confirmed that everything looks ok, the changes will be pushed to the “production database”.
Folders
Each database is a set of multiple folders. Each folder contain the following 4 tables:
- table_data: contains information about channel number and all the desired columns
- __iov_id: automatically created. integer representing the number of uploads was done, starting from 1, it matches with iov_id in table_tag_iovs
- channel: automatically created.
- variables: list of variables included manually by us (find the list of these variables below)
- table_iovs: contains information about the moment when the table was filled via the bin/write_data.py script
- iov_id: integer representing the number of uploads was done, starting from 1
- begin_time: automatically filled when a table it uploaded to the database (format: YYYY-MM-DD HH:MM:SS)
- active: boolean variable indicating if table is active (flag=t) or deactive (flag=f) in the database
- table_tags: contains a description of the uploaded data, automatically filled via the bin/tag_data.py script
- tag: tag chosen by the user to refer to this entry, usually vXrY (eg. v1r1, v1r2)
- created: format YYYY-MM-DD HH:MM:SS
- comments: analougos to “commit” on GitHub, contains a brief description of the content in current version
- table_tag_iovs: contains information linking the tag variable in table_tags to the iov_id one in table_iovs
This section displays a list of the variables in the database, as well as their description and unit.
tpc_channelstatus
- Folder description: This folder contains wire-channel specific variable information
- Channel number: Represents “wire channel”
- Number of rows: 11,264 (one for each wire channel)
- URL with current values in Production Database:
Variable Name | Type | Description | Unit |
---|---|---|---|
status | integer | 0=Dead, 1=Alive, 2=Abnormal | N/A |
eresponse_gain | real | Pre-amplifier response parameter (voltage ←→ charge) * | mV/fC |
eresponse_timing | real | Pre-amplifier shaping time * | us |
eresponse_k3 | real | 1st pole term in numerator * | N/A |
eresponse_k4 | real | 2nd pole term in numerator * | N/A |
eresponse_k5 | real | 1st pole term in denominator * | N/A |
eresponse_k6 | real | 2nd pole term in denominator * | N/A |
* More information on DocDB 35489 (slide 13).
tpc_globalconstants
- Folder description: This folder contains non-channel specific information
- Channel number: No meaning
- Number of rows: 1
- URL with current values in Production Database:
Variable Name | Type | Description | Unit |
---|---|---|---|
field_response | text | ||
sce | text | ||
e_lifetime_cosmic_etpc | real | Electron lifetime measured with muons, East TPC | ms |
e_lifetime_cosmic_etpc_err | real | Electron lifetime error measured with muons, East TPC | ms |
e_lifetime_cosmic_wtpc | real | Electron lifetime measured with muons, West TPC | ms |
e_lifetime_cosmic_wtpc_err | real | Electron lifetime error measured with muons, West TPC | ms |
e_lifetime_prm_inline | real | Electron lifetime measured with long inline purity monitor * | ms |
e_lifetime_prm_inline_err | real | Electron lifetime error measured with long inline purity monitor * | ms |
e_lifetime_prm_short | real | Electron lifetime measured with cryostat short internal purity monitor * | ms |
e_lifetime_prm_short_err | real | Electron lifetime error measured with cryostat short internal purity monitors * | ms |
e_lifetime_prm_long | real | Electron lifetime measured with cryostat long internal purity monitors * | ms |
e_lifetime_prm_long_err | real | Electron lifetime error measured with cryostat long internal purity monitors * | ms |
egain_i1_wtpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Induction 1 plane, West TPC | ADC/e- |
egain_i2_wtpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Induction 2 plane, West TPC | ADC/e- |
egain_c_wtpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Collection plane, West TPC | ADC/e- |
egain_i1_etpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Induction 1 plane, East TPC | ADC/e- |
egain_i2_etpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Induction 2 plane, East TPC | ACD/e- |
egain_c_etpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Collection plane, East TPC | ADC/e- |
diffusion_l | real | Longitudinal diffusion constant | cm2/s |
diffusion_t | real | Transverse diffusion constant | cm2/s |
* More information on DocDB 33432.
tpc_yz_correction
- Folder description: This folder contains the non-uniformity map for the YZ plane. The map is a 2D histogram of Y=4m and Z=5m with a bin width of 5 cm on both directions. Therefore 400/5=80 bins along Y direction, and 500/5=100 bins along Z direction
- Channel number: The channel number has no physical meaning. This table is better described by the bin number/edges for each entry
- Number of rows: 2 (2 TPCs) x 80 (bins along Y) x 100 (bins along Z) = 16,000
- URL with current values in Production Database:
Variable Name | Type | Description | Unit |
---|---|---|---|
tpc | text | W = west TPC, E = east TPC | N/A |
ybin | integer | Bin number in Y direction, from 0 to 79 | N/A |
zbin | integer | Bin number in Z direction, from 0 to 99 | N/A |
ylow | real | Low-edge bin position in Y direction | cm |
yhigh | real | High-edge bin position in Y direction | cm |
zlow | real | Low-edge bin position in Z direction | cm |
zhigh | real | High-edge bin position in Z direction | cm |
scale | real | Non-uniformity scale for a point on the YZ plane | N/A |
tpc_x_correction
- Folder description: This folder contains the non-uniformity map for the X direction. The map is a 1D histogram of X=4m with a bin width of 10 cm. Therefore 400/10=40 bins along X direction
- Channel number: The channel number has no physical meaning. This table is better described by the bin number/edges for each entry
- Number of rows: 2 (2 TPCs) x 40 (bins along X) = 80
- URL with current values in Production Database:
Variable Name | Type | Description | Unit |
---|---|---|---|
tpc | text | W = west TPC, E = east TPC | N/A |
xbin | integer | Bin number in X direction, from 0 to 79 | N/A |
xlow | real | Low-edge bin position in X direction | cm |
xhigh | real | High-edge bin position in X direction | cm |
scale | real | Non-uniformity scale along X direction | N/A |
pds_calibration
- Folder description: This folder contains general information about the PDS system (reco, timing, decoding…)
- Channel number: PMT channels
- Number of rows: 120
- URL with current values in Production Database:
Variable Name | Type | Description | Unit |
---|---|---|---|
breakout_box | integer | Breakout box to which the PMT is connected | N/A |
caen_digitizer | integer | CAEN digitizer to which the PMT is connected | N/A |
caen_digitizer_channel | integer | CAEN digitizer channel to which the PMT is connected | N/A |
total_transit_time | real | Total transit time | ns |
reconstruct_channel | bool | Whether the channel is used for reconstruction | N/A |
cosmic_timing_correction | real | Timing correction derived from cosmic muon calibration | ns |
spe_amp | real | Mean amplitude of SPE | ADC |
spe_amp_std | real | Std of the SPE amplitude | ADC |
gauss_w_wc_power | real | Power parameter for Gauss noise filter | N/A |
gauss_wc | real | WC parameter for Gauss noise filter | GHz |
ser_vec_0 → ser_vec_550 | real | ADC count per bin (550 in total) for the Single Electron Response (SER) pulse (More info: DocDB 38059) | ADC |
crt_feb_calibration
- Folder description: This folder contains CRT calibration information at a readout board level (group of 32 channels)
- Channel number: FEB MAC5 address
- Number of rows: 142 (140 Bern, 2 MINOS)
- URL with current values in Production Database:
Variable Name | Type | Description | Unit |
---|---|---|---|
channel (feb_mac5_address) | integer | Hardware address of physical readout board | N/A |
type | integer | 0 Bern / 1 MINOS | N/A |
t0_timing_offset_cable_length | real | Cable delay for T0 clock reset delivery | ns |
t0_timing_offset_calibrated | real | Calibrated ‘other’ delays for T0 clock reset delivery | ns |
t1_timing_offset_cable_length | real | Cable delay for T1 clock reset delivery | ns |
t1_timing_offset_calibrated | real | Calibrated ‘other’ delays for T1 clock reset delivery | ns |
Note the types of different numbering schemes are enumerated in this spreadsheet: https://docs.google.com/spreadsheets/d/1ReXP3Q2DuU-mO_vaQXZWj1h8NVdt6r13sBigYDvihXo/edit?usp=sharing
crt_channel_calibration
- Folder description: This folder contains CRT calibration information at a single channel level
- Channel number: Online channel ID (100 * MAC5 + Channel #) N.B. this is different to the offline channel ID (32 * GDML ID + Channel #)
- Number of rows: 4544 (4480 Bern, 64 MINOS)
- URL with current values in Production Database:
Variable Name | Type | Description | Unit |
---|---|---|---|
channel | integer | Online channel ID | N/A |
feb_mac5_address | integer | Hardware address of physical readout board | N/A |
type | integer | 0 Bern / 1 MINOS | N/A |
raw_channel_number | integer | Board readout channel 0 - 31 | N/A |
status | integer | Channel status (good, bad, quiet etc) | N/A |
pedestal | integer | Value of baseline in absence of signal | ADC |
gainfactor | real | Electronics amplification amount | PE/ADC |
Note the types of different numbering schemes are enumerated in this spreadsheet: https://docs.google.com/spreadsheets/d/1ReXP3Q2DuU-mO_vaQXZWj1h8NVdt6r13sBigYDvihXo/edit?usp=sharing The enumeration for the channel status is defined in this header file: https://github.com/SBNSoftware/sbnobj/blob/develop/sbnobj/SBND/CRT/CRTEnums.hh#L48-L54
What happens when a variable does not exist in an older version of the database?
In a scenario where a variable has to be added to the database later on, it has been decided that this variable will assume the value of -999
for older version, and therefore should be defined manually by the user when doing analysis. For example, imagine that the first version of the database contains the variables version1=['field_response','sce']
, but then a few months we learn that we should also include diffusion
, so the second version of the database will contain the variables version2=['field_response','sce','diffusion']
. So what happens when someone wants to perform an analysis with an older version of the database? It will lack the information about diffusion
in this simple example. There are two possible solutions for this situation:
- Either the latest value is assumed automatically, or
- An “error/non-physical” value (such as
-999
) is set to the variable for older versions to indicate that the variable was not measured back then. Option (1) is not ideal because the latest value might not be valid/true for an older version of the database, so we’d be risking making automated wrong assumptions. Option (2) is the one used for the SBND calibration database, which means that the analyser should make a decision of which value to use, and make sure that the assumptions taken are valid.
Managing the database
Please find a detailed tutorial on how to manage the database here: How to manage your database?