Keys in the ODB /Logger/Channels subtree

From MidasWiki
Revision as of 16:15, 13 August 2013 by Suz (talk | contribs)
Jump to navigation Jump to search

Links


Creating the /Logger/Channels subtree

The ODB /Logger/Channels subtree is a subdirectory of the ODB /Logger tree, created when the MIDAS logger utility mlogger is started for the first time. The keys will be filled with default values which users may change as required to customize their experiments.

By default, only one logging channel with the value 0 if defined (i.e. Logging Channel 0). Multiple logging channels may be defined by the user.




Multiple Logging Channels

By default, only one logging channel is created (Logging Channel 0). To create multiple logging channels, an existing Channel subtree can be copied.

e.g. to create a second logging channel (Channel 1) using odbedit

[local]cd /Logger
[loca]]logger>cd channels
[local]Channels>ls 
0
[local]Channels>copy 0 1
[local]Channels>ls 
0
1

If more than one logging channel is defined, there will be a multiple subtrees

  • /Logger/Channels/0/,
  • /Logger/Channels/1/,
  • ...

present, each with a Settings and Statistics subtree.

Thus the parameters for each logging channel can be set individually.

To send different events to different logging channels, they may be selected by Event ID key or Trigger mask key. See also Event Filtering key




/Logger/Channels/<logging-channel-number>/Settings subtree

The keys in the ODB /Logger/Channels/<logging-channel-number>/Settings subtree are shown below for the default logging channel 0.

For a single logging channel 0, one subtree

  • /Logger/Channels/0/Settings

will be present.


If multiple logging channels are defined, each will contain its own ODB Settings subtree,

i.e.

  • /Logger/Channels/0/Settings
  • /Logger/Channels/1/Settings




/Logger/Channels/0/Settings/Active

Type: BOOL

Default: "Disk"


If set to "y", this logging channel is active. Data are only logged from channels that are active. Set to "n" to disable data logging from this channel.

Note that for data to be logged from any active logging channel, the /Logger/Write data key must also be set to "y".




/Logger/Channels/0/Settings/Type

Type: STRING

Default:

Specify the type of media on which the logging should take place. It can be "Disk", "Tape" or "FTP" (see Filename key).


/Logger/Channels/0/Settings/Filename

Type: STRING

Default: "run%05d.mid"

For disk logging
key Filename specifies the name of a file to contain the data. Default value is "run%05d.mid" where "%05d" is replaced by the current run number in the same way as described for the ODB Dump file key. This key may contain a directory string in addition to a filename, so that different logging channels may have their data logged into specific directories. If the key does NOT also contain a directory string, the directory given in the key /Logger/Data dir key will be used. The contents of the key Filename must match that of the Format key.
For tape logging
key Filename specifies a tape device i.e.
  • /dev/nrmt0 or /dev/nst0 under UNIX or
  • \\.\tape0 under Windows NT.
FTP mode
the data is written directly to a remote computer via FTP. Key Filename specifies the access information for the FTP server. It has the following format:
 <host name>, <port number>, <user name>, <password>, <directory>, <file name>
for example
 myhost.my.domain,21,john,password,/usr/users/data,run%05d.mid

The normal FTP port number is 21, or 1021 for a Unitree Archive like the one used at the Paul Scherrer Institute.

By using the FTP mode, a back-end computer can write directly to the archive.


/Logger/Channels/0/Settings/Format

Type: STRING

Default: "MIDAS"

Specifies the format to be used for writing the data to the logging channel. It can take one of four values: MIDAS, ROOT, ASCII and DUMP.

For disk logging, the extension for the Filename Key above must match one of the following:

  • .mid for MIDAS (or .mid.gz - see Compression key)
  • .root for ROOT
  • .asc for ASCII
  • .txt for DUMP

For ROOT format the data logger will automatically convert the format specified in the frontend equipment list to ROOT format (see format for details). The ASCII format converts events into readable text format which can be easily analyzed by programs that have problems reading binary data. While the ASCII format tries to minimize the file size by printing one event per line, the DUMP format gives a very detailed ASCII representation of the event including bank information, serial numbers etc., so it should be used mainly for diagnostics.


/Logger/Channels/0/Settings/Compression

Type: INT

Default: 0

The key Compression defines the Compression Level of the data. If set to 0, compression is turned off. If set > 0, the data files are compressed before being written. In this case,

  • the file extension ".gz" must be appended to the Filename key (see also Format key)
  • and ZLIB support must be compiled into the MIDAS package (see NEED_ZLIB ).

This feature applies only to files saved onto disk in MIDAS format. ROOT format is already compressed.


/Logger/Channels/0/Settings/ODB Dump

Type: BOOL

Default: "y"

If this flag is set, a complete dump of the ODB is performed to this logging channel before and after every run. The ODB content is dumped in one long ASCII string reflecting the status at begin-of-run event and at end-of-run event. These special events have an ID of EVENTID_BOR and EVENTID_EOR and a serial number equal to the current run number, and are not visible using the mdump utility. An analyzer in the off-line analysis stage can use these special events to restore the ODB to its online state. The dump of the ODB into the event stream for this logger channel is independent of the /Logger/ODB Dump key, which is used to dump the ODB to an ASCII or XML file on disk.



/Logger/Channels/0/Settings/Log messages

Type: DWORD

Default: 0

This is a bit-field for logging system messages as message events along with the event data from the experiment. If a bit in this field is set, the respective system message is written to the logging channel as a message event with an ID of EVENTID_MESSAGE (0x8002). The bits are 1 for error, 2 for info, 4 for debug, 8 for user, 16 for log, 32 for talk, 64 for call messages and 255 to log all messages. For an explanation of these messages refer to Buffer Manager , Event ID key and Trigger mask key.




/Logger/Channels/0/Settings/Buffer

Type: STRING

Default: "SYSTEM"

This specifies the buffer where the logger will find the event. It is usually set to "SYSTEM" and is specified in the equipment list for this event.




/Logger/Channels/0/Settings/Event Filtering

Type: STRING

Default:

By specifying a buffer other than the "SYSTEM" buffer, (see Buffer key, event filters can be implemented. For example, an analyzer can request all events from the "SYSTEM" buffer, but only write acceptable events to a new buffer called "FILTERED". When the logger is set to now request only events from the new buffer instead of the "SYSTEM" buffer, only filtered events are logged.

Event selection for logging channels can also be done by specifying the Event ID key and/or the Trigger mask key.




/Logger/Channels/0/Settings/Event ID

Type: INT

Default: -1


This is the ID of the event(s) to be logged. It is specified in the equipment list for this event. To log events with any ID, the Event ID is set to -1 (EVENTID_ALL). The Event ID parameter and/or the Trigger Mask may be used to select events to be sent to different logging channels, or as an Event Filtering system.



/Logger/Channels/0/Settings/Trigger mask

Type: INT

Default: -1

Specifies which events to log. See Equipment list parameters to see how events may be selected by their trigger mask. For a logging channel to receive all events, -1 is used for both the Event ID key or and the /Logger/Channels/0/Settings/Trigger mask key . This parameter and/or the Event ID may be used to select events to be sent to particular logging channels, or for Event Filtering.



/Logger/Channels/0/Settings/Event limit

Type: DOUBLE

Default: 0

This field can be used to stop a run when set to a non-zero value. The statistics value Events Written is checked against the limit Event limit . When this condition is reached, the run is stopped automatically by the logger. The next run can then be started automatically if desired (see Auto restart ).




/Logger/Channels/0/Settings/Byte limit

Type: DOUBLE

Default: 0



This field can be used to stop a run when set to a non-zero value. The statistics value Bytes written is checked against the limit Byte limit . When this conditions is reached, the run is stopped automatically by the logger. The next run can then be started automatically if desired (see Auto restart ).




/Logger/Channels/0/Settings/Subrun Byte limit

Type: DOUBLE

Default: 0


Todo:

   More information needed about defining subruns

This field can be used to stop a subrun when set to a non-zero value. When this conditions is reached, the run is stopped automatically by the logger. The next run can then be started automatically if desired (see Auto restart ).




/Logger/Channels/0/Settings/Tape capacity

Type: DOUBLE

Default: 0


This field can be used to stop a run when set to a non-zero value. The statistics value Bytes written total in the is checked against the limit Tape capacity. When this conditions is reached, the run is stopped automatically by the logger.




/Logger/Channels/0/Settings/Subdir format

Type: STRING

Default: ""

This field optionally specifies a subdirectory, which is appended to the directory string in the key Filename.

It is used to place the data log file into a date-stamped subdirectory. This is useful where a large numbers of datafiles are produced, or experiments are active for a long time period, and it is desirable to store the data in sub-directories according to their date. This can be done automatically using the Subdir format field.

If the Subdir format field is not empty, the data log file will be placed in a subdirectory. The name of this subdirectory is composed by the given Subdir format string. Its format follows the definition of the system call strftime() . (See man strftime). Ordinary characters placed in the format string are copied to the output character array "s" without conversion. Conversion specifiers are introduced by a '%' character, and are replaced in "s" as follows for the most common ones:

  • %Y : Year (ex: 2002)
  • %y : Year (range:00..99)
  • %m : Month (range: 01..12)
  • %d : Day (range: 00..31)

The other characters are: %a, %A, %b, %B, %c, %C, %d, %D, %e, %E, %G, %g, %h, %H, %I, %j, %k, %l, %m, %M, %n, %O, %p, %P, %r, %R, %s, %S, %t, %T, %u, %U, %V, %w, %W, %x, %X, %y, %Y, %z, %Z, %+. (See man strftime for explanation).




/Logger/Channels/0/Settings/Current filename

Type: STRING

Default: ""

This key will reflect the full path of the current saved data file.