Introduction to Grain

Grain is a data sorting and analysis framework used at the moment with data collected using the GREAT Total Data Readout (TDR) data acquisition system. The TDR system differs greatly from conventional data acquisition systems as it reads out all the information from the detector systems as time stamped singles data. It does not use or require any event triggers in hardware. All event parsing/building is done later in software. The GREAT TDR system has it's own Event Builder (EB). Grain is a complementary system which can be used in series or parallel to the native EB or completely stand-alone in both online and offline environments.

Grain consists of:

  1. a simple analysis interface which allows one to view the data beign processed and to perform some data analysis tasks
  2. a data sorting engine which implements a user configurarable TDR event parser
  3. an application programming interface which allows the physicists to write their own data sort programs which can be dynamically loaded into the sort engine
Grain is written entirely in Java and should be directly runnable on most of the popular computer hardware platforms. The sorting API is also pure Java and thus no translation to other programming language is required before the code can be compiled.

Grain is designed to be modular and extensible and can be used in any low energy nuclear physics experiment by implementing the data input and parsing modules.