Midas Online Data Base (ODB) Configuration
ODB basics
Below are some basic usage examples of midas' ODB
Accessing the ODB
Command line interface
You can edit the ODB via command line without needing a midas webserver running.
$MIDASSYS/bin/odbedit
Then you can navigate through the ODB as you would with linux directory commands. From here, you can type "help" or view the odbedit command list for a list of commands.
Via Midas Webpage
You can start a midas webpage by running mhttpd
(or mhttpd6
)
$MIDASSYS/bin/mhttpd
Then view the ODB by clicking the ODB button on the left sidebar
General ODB Configuration Examples
For a general guide on how to use Midas' ODB, see the ODB Access and Use wiki page. Below are a few of common ODB
Toggle Logger Data Writing
Field |
Description |
Path |
/Logger/Write Data |
Description |
Whether or not the Logger will write data |
Valid Values |
yes or no |
Suggested Value |
yes |
Change Logger Data Writing Directory
Field |
Description |
Path |
/Logger/Data dir |
Description |
What directory the logger will write data to |
Valid Values |
any valid path |
Suggested Value |
/path/to/your/online/directory |
Note: Change /path/to/your/online/directory
to whatever directory you want to write data to
Change Data Buffer Logger Writes to File
Field |
Description |
Path |
/Logger/Channels/0/Settings/Buffer |
Description |
What directory the logger will write data to |
Valid Values |
any valid buffer name (ex. SYSTEM , BUF001 , ...) |
Suggested Value |
SYSTEM |
Toggle Logger to generate ODB backups for each run
Field |
Description |
Path |
/Logger/ODB Dump |
Description |
Whether or not backups of the ODB will be generated after each run |
Valid Values |
yes or no |
Suggested Value |
yes |
Logger Max number of events per run
Field |
Description |
Path |
/Logger/Channels/0/Settings/Event Limit |
Description |
The threshold number of events to be taken before automatically stopping the run. The number of events may not be exact. 0 specifies no such threshold is applied. |
Valid Values |
any non-negative integer |
Suggested Value |
0 |
Logger File name key
Field |
Description |
Path |
/Logger/Channels/0/Settings/Filename |
Description |
Whether or not backups of the ODB will be generated after each run. The string is parsed to include both run and subrun. The first present %0{int}d will correspond to the run number. The second %0{int}d will correspond to the subrun number. One need not include both. |
Valid Values |
any valid string, though it should have at least one variable input to change with run number. |
Suggested Value |
run%05d.mid (For no subruns) or run%05d_%05d.mid (For subruns) |
Logger Run Duration
Field |
Description |
Path |
/Logger/Run duration |
Description |
The number of seconds between each run. After this amount of time the run wil automatically stop. 0 specifies no such duration is applied. |
Valid Values |
any non-negative integer |
Suggested Value |
0 |
Logger Subrun Duration
Field |
Description |
Path |
/Logger/Subrun duration |
Description |
The number of seconds between each subrun. When a new subrun starts, the run does not end, but a new midas file is logged to. 0 specifies no such duration is applied. |
Valid Values |
any non-negative integer |
Suggested Value |
0 |
Logger Subrun Byte Limit
Field |
Description |
Path |
/Logger/Channels/0/Settings/Subrun Byte limit |
Description |
The threshold number of bytes per subrun file before starting a new one. The number of bytes may not be exact. 0 specifies no such threshold is applied. |
Valid Values |
any non-negative integer |
Suggested Value |
yes |
Change Webpage Port
Field |
Description |
Path |
/WebServer/localhost port |
Description |
What port the webserver will run on |
Valid Values |
0000 to 9999 |
Suggested Value |
8080 |
Note: To generate this ODB path, run mhttpd
or mhttpd6
at least once. It doesn't need to be successful, it just needs to generate the WebServer
ODB directory.
Disable a Frontend
Field |
Description |
Path |
/Equipment/{Frontend Name}/Common/Enabled |
Description |
Whether a frontend is enabled for use or not |
Valid Values |
yes or no |
Suggested Value |
yes |
Note: Every Midas frontend generates a Common
section it's ODB. For example, Equipment/AMC13001/Common
will be generated. This is useful for toggling off crates in multicrate setups.
Change the Data Buffer for a Frontend
Field |
Description |
Path |
/Equipment/{Frontend Name}/Common/Buffer |
Description |
What midas buffer the frontend will write to |
Valid Values |
any valid string |
Suggested Value |
BUF{3 digit frontend #} |
Note: The event builder assumes every buffer for events starts with BUF
. So it's best to name frontends BUF
followed by their 3 digit frontend number. For example, for AMC13001
frontend, BUF001
is a good name.
Changing Run Number
Field |
Description |
Path |
/Runinfo/Run number |
Description |
The run the number for the experiment |
Valid Values |
any valid integer |
Suggested Value |
1 |
Note: If one decreases the run number, the logger will overwrite that run's data if a run is performed with the old run number again. For this reason, when loading and old ODB save you will want to increase the run number to a value larger than your last successful run number before taking data.
g-2 Modified DAQ Specific ODB Configuration
Below are some important settings in the ODB for the g-2 modified DAQ. This is not a complete description of every setting in the ODB. Many settings are artifacts from g-2 that don't serve any purpose anymore. You can find a script that will automatically set all these parameters to their suggested values in scripts/apply_recommended_ODB_settings.py
.
Master Frontend ODB settings
Trigger Source
Field |
Description |
Path |
/Equipment/MasterGM2/Settings/Globals/Trigger Source |
Description |
Determines what source the Master will use to trigger events |
Valid Values |
GPS , PP (currently broken), Fake , Socket (untested), None , ODB , and FC7 |
Suggested Value |
FC7 |
Note: The meaning of each value is specified below:
-
GPS: Uses the Meinberg GPS timestamps for Master triggers.
-
PP: Uses parallel port signals as the trigger source (currently broken).
-
Fake: Uses a fake signal for testing purposes. Further configuration in ODB.
-
Socket: Uses a socket connection as the trigger source (untested).
-
None: No trigger source is used, no master triggers are made.
-
ODB: Reads ODB to send triggers at a rate similar to the rate the AMC13 receives triggers.
-
FC7: Uses FC7's trigger counter over IPMI to trigger events
Front End Offset
Field |
Description |
Path |
/Equipment/MasterGM2/Settings/Globals/Front End Offset |
Description |
Offset for index for the IPs of the first frontend. For example if your MCH IP is 192.168.3.15, then you'd want this offset to be 3. |
Valid Values |
Positive integer < 1000 |
Suggested Value |
1 |
Encoder Front End
Field |
Description |
Path |
/Equipment/MasterGM2/Settings/Globals/Encoder Front End |
Description |
Identifier for frontend that corresponds to the crate containing the encoder FC7 |
Valid Values |
AMC13001 , AMC13002 , ... |
Suggested Value |
AMC13001 |
AMC13 Readout Frontend ODB settings
Any setting not mentioned is either an artifact of g-2 (doesn't do anything) or shouldn't need to be modified from its default value. For example, most of the TQ01
, TQ02
, TQ03
, and TQ04
no longer function.
Send to Event Builder
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Globals/Send to Event Builder |
Description |
Defines whether or not data is sent to event builder frontend |
Valid Values |
yes or no |
Suggested Value |
yes |
Note: It is best to have this set to yes
as it won't affect data readout even if the event buidler isn't used.
MCH IP Address
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Globals/MCH IP Address |
Description |
Set to MCH IP address for the MCH in this crate |
Valid Values |
Any valid IP address |
Suggested Value |
192.168.1.15 |
Note: This is the address in which the frontends sent IPMI commands to. If this is incorrect none of the crate components can be properly intialized for a data run. Each frontend (crate) should have it's own MCH IP address.
CCC: FC7 Slot Number (1-12)
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Globals/CCC: FC7 Slot Number (1-12) |
Description |
Slot number of the encoder FC7 in the uTCA crate |
Valid Values |
1 , 2 , ... 12 |
Suggested Value |
10 |
Note: For crates without an FC7, this value does not matter. Just set it to the same value as the crate with the encoder FC7.
CCC: FMC Location (top,bottom)
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Globals/CCC: FMC Location (top, bottom) |
Description |
The location of the SFP interface FMC card on the FC7 board |
Valid Values |
top or bottom |
Suggested Value |
top |
Note: See FC7 Labeling to decide whether your FMC SFP interface is on the top or the bottom (the FC7 firmware requires the SFP interface FMC is in the top slot).
CCC: FMC SFP Number (1-8)
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Globals/CCC: FMC SFP Number (1-8) |
Description |
The FC7 SFP slot number this AMC13 is connected to by optical cable |
Valid Values |
1 , 2 , ... 8 |
Suggested Value |
1 (for the first crate) |
Note: See FC7 Labeling to decide which port your optical connection is.
AMC13 10GbE Link Enable
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Link01/Enabled |
Description |
Toggles the 10GbE link for this AMC13 |
Valid Values |
0 or 1 |
Suggested Value |
1 |
AMC13 SFP IP Address
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Link01/AMC13 SFP IP Address |
Description |
Specifies the 10GbE link IP |
Valid Values |
Any valid IP |
Suggested Value |
192.168.50.1 |
Note: This is the AMC13 IP that data is sent over. If this is incorrect, not data will be transferred from the crate. Each frontend (crate) should have a different AMC13 SFP IP address.
AMC13 SFP Port Number
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Link01/AMC13 SFP Port Number |
Description |
Specifies which SFP port on the AMC13 is used for the 10GbE link |
Valid Values |
0x00001234 , unsure about others |
Suggested Value |
0x00001234 |
Note: 0x00001234
corresponds to the top port on the AMC13. I would not change this value unless you know what you're doing.
AMC13 T1 Firmware Version Required
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/AMC13/T1 Firmware Version Required |
Description |
The minimum required firmware version for the virtex (T1) FPGA in the AMC13 |
Valid Values |
Any positive integer |
Suggested Value |
33087 |
AMC13 T2 Firmware Version Required
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/AMC13/T2 Firmware Version Required |
Description |
The minimum required firmware version for the spartan (T2) FPGA in the AMC13 |
Valid Values |
Any positive integer |
Suggested Value |
46 |
AMC13 T1 Address Table Location
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/AMC13/T1 Address Table Location |
Description |
The path to the AMC13 virtex (T1) adress table xml file |
Valid Values |
Any valid path |
Suggested Value |
$GM2DAQ_DIR/address_tables/AMC13XG_T1.xml |
AMC13 T2 Address Table Location
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/AMC13/T2 Address Table Location |
Description |
The path to the AMC13 spartan (T2) adress table xml file |
Valid Values |
Any valid path |
Suggested Value |
$GM2DAQ_DIR/address_tables/AMC13XG_T2.xml |
Enable FC7
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/FC7-{slot #}/Common/Enabled |
Description |
Whether or not this FC7 in the crate is enabled or not |
Valid Values |
yes or no |
Suggested Value |
yes |
FC7 Address Table
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/FC7-{slot #}/Common/Address Table Location |
Description |
The path to the FC7 address table xml file |
Valid Values |
Any valid path |
Suggested Value |
$GM2DAQ_DIR/address_tables/FC7_CCC.xml |
FC7 Board Type
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/FC7-{slot #}/Common/Board (encoder,fanout,trigger) |
Description |
What job the FC7 is set to do |
Valid Values |
encoder ,fanout , or trigger |
Suggested Value |
encoder |
Note: The FC7 firmware has been modified so now the encoder
FC7 can do the job of the trigger
and encoder
FC7s.
FC7 Firmware Version Required
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/FC7-{slot #}/Common/FPGA Firmware Version Required |
Description |
The minimum required firmware version for the FC7 |
Valid Values |
Any valid string (ex. 8.1.7 ) |
Suggested Value |
8.1.7 |
Internal Trigger
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/FC7-{slot #}/Encoder/Internal Trig Enabled |
Description |
Whether an external or internal trigger are used to trigger events |
Valid Values |
yes or no |
Suggested Value |
no |
Note: This is useful for debugging because it removes the need for having/building an external trigger signal. However, the triggers are periodic so the digitized data will be "random" windows of signal or noise.
Internal Trigger Period (us)
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/FC7-{slot #}/Encoder/Internal Trig Period (us) |
Description |
The period of the internal trigger in micro seconds |
Valid Values |
any positive integer |
Suggested Value |
500 |
Note: After each trigger, there is some deadtime. Therefore this value should be longer than the deadtime; otherwise there will be unintended results.
Internal Trigger Pulse Width (ns)
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/FC7-{slot #}/Encoder/Internal Pulse Width (ns) |
Description |
The width of the internal trigger pulse in nanoseconds |
Valid Values |
any positive integer |
Suggested Value |
100 |
TTC deadtime (ns)
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/FC7-{slot #}/Encoder/TTC deadtime (ns) |
Description |
The amount of deadtime (time with no new triggers) after each trigger |
Valid Values |
any positive integer |
Suggested Value |
100000 |
Note: The achievable rate is limited by this value. For example, if using the suggested value the DAQ cannot trigger at more than 10 kHz.
Enabled WFD5
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Rider{slot #}/Board/Address Table Location |
Description |
Whether or not this WFD5 is active for data taking |
Valid Values |
yes or no |
Suggested Value |
yes |
WFD5 Address Table
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Rider{slot #}/Board/Address Table Location |
Description |
The path to the WFD5 address table xml file |
Valid Values |
Any valid path |
Suggested Value |
$GM2DAQ_DIR/address_tables/WFD5.xml |
WFD5 Master Firmware Version
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Rider{slot #}/Board/Master Firmware Version |
Description |
Channel Firmware version for the WFD5 |
Valid Values |
any valid version string |
Suggested Value |
3.1.1 |
WFD5 Channel Firmware Version
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Rider{slot #}/Board/Chanel Firmware Version |
Description |
Channel Firmware version for the WFD5 |
Valid Values |
any valid version string |
Suggested Value |
3.1.1 |
WFD5 Digitization Frequency
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Rider{slot #}/Board/Gitization Frequency (MHz) |
Description |
Frequency at which samples are digitized |
Valid Values |
800 divided by any power of 2 (for example, 200 is valid) |
Suggested Value |
800 |
WFD5 Circular Buffer Mode Enabled
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Rider{slot #}/Board/CircBuf Mode: Enabled |
Description |
Puts a WFD5 into circular buffer mode for data taking |
Valid Values |
yes or no |
Suggested Value |
yes |
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Rider{slot #}/Board/Async CBuf Waveform Length |
Description |
The total number of samples digitized for each waveform trigger |
Valid Values |
Any positive integer |
Suggested Value |
800 |
Note Each sample corresponds to a time window of 1/Digitization Frequency. So by default each sample corresponds to a 1.25 ns time window.
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Rider{slot #}/Board/Async CBuf Waveform Presamples |
Description |
How many of the waveform samples are taken before the trigger |
Valid Values |
Any positive integer |
Suggested Value |
600 |
Note: This value must be less than the value of WFD5 Waveform Length.
WFD5 Channel Enabled
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Rider{slot #}/Channel{channel #}/Enabled |
Description |
Whether this channel of the WFD5 is enabled for data taking or not |
Valid Values |
yes or no |
Suggested Value |
yes |
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Rider{slot #}/Channel{channel #}/Input Signal Offset |
Description |
Offset for pedestals signal sits on. Range of ADC values is -2048 to 2047. Setting of 0 corresponds to a pedestal of ~-1750 , value of 65535 corresponds to a pedestal of ~1750 |
Valid Values |
Integer between 0 and 65535 (2 byte positive int) |
Suggested Value |
0 for positive signals, 65535 for negative signals. |
TQ methods GPU Bank Processing
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/TQ{#}/GlobalParameters/GPU T,Q,P bank processing |
Description |
Whether the GPU is used to process this midas bank or not |
Valid Values |
yes or no |
Suggested Value |
no |
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/TQ{#}/GlobalParameters/GPU H bank processing |
Description |
Whether the GPU is used to process this midas bank or not |
Valid Values |
yes or no |
Suggested Value |
no |
Note: All of the TQ method settings are artifacts of g-2. We just want to make sure they are off.
WFD5 Async Mode
"Async Mode" refers to a mode where each midas event contains 20 traces from each digitizer channel, which may increase the effective data collection rate. However, this mode is currently not working.
To turn on async mode set WFD5 Async Mode Enabled (in another place) and TTC Async Mode Enabled to yes
. For each digitizer, set WFD5 Async Mode Enabled to yes
. Furthermore WFD5 Circular Buffer Mode should be set to no
. Otherwise the behavior will be unpredictable. I understand this is a bit convoluted, but this was hastily put together during the 2023 PSI LYSO test beam. There is slightly more documentation on this elog entry.
WFD5 Async Mode Enabled
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/Rider{slot #}/Board/Async Mode: Enabled |
Description |
Puts a WFD5 into async mode for data taking |
Valid Values |
yes or no |
Suggested Value |
no |
WFD5 Async Mode Enabled (in another place)
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/FC7-{slot #}/Encoder/WFD5 Async Mode Enabled |
Description |
Lets FC7s know WFD5s are in async mode for data taking |
Valid Values |
yes or no |
Suggested Value |
no |
TTC Async Mode Enabled
Field |
Description |
Path |
/Equipment/AMC13{frontend #}/Settings/FC7-{slot #}/Encoder/TTC Async Mode Enabled |
Description |
Puts FC7 into async mode for data taking |
Valid Values |
yes or no |
Suggested Value |
no |