Clone wiki

Tomography PreExperiment Data Collector / Home


The main contributor to this project is Institute of Materials Research, Helmholtz-Zentrum Geesthacht, Germany.

This project is a contribution of the Helmholtz Association Centres and Technische Universitaet Muenchen to the ESS Design Update Phase.

The project's funding reference is FKZ05E11CG1.

Copyright (c) 2012. Institute of Materials Research, Helmholtz-Zentrum Geesthacht, Germany.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA


PreExperiment Data Collector is dedicated to gather all information from the user that can be provided prior to the experiment. Such information can be, for instance, a sample name or a set of parameters for the technique which will be used during the experiment.

The information is specified by the experiment operator. Meta data which describes the information is stored in json format.

The Data Collector is implemented as a standalone web application which also supports Tango interface. Therefore the application can be easily integrated into any experiment�s environment operated by Tango.


Check the web-client demo page:

Readonly demo

System requirements

  • Java > 1.6
  • exported TANGO_HOST

User Guide

The application provides web and tango interface to user�s data set. Data set layout is defined in MetaData.json file. Each data set is stored in the server�s file system using the following path pattern: {CATALINA_ROOT}/webapps/{APP_NAME}/home/{USER_NAME}/{BEAMTIME_ID}/{DATA_SET_NAME}.dat. All upload documents are stored in the server�s file system using the following path pattern: {CATALINA_ROOT}/webapps/{APP_NAME}/home/{USER_NAME}/upload/{FILE_NAME}

For Getting started and other detailed section goto Complete user guide

Developer Guide

The following section describes how to setup and build project. For more details see Implementation section.

Environment setup

  1. Download and install Apache Ant ( Ant is used to manage web-client development lifecycle.
  2. Download and install Apache Maven ( Maven is used to manage webapp development lifecycle.
  3. Download and install Apache TomCat (
  4. Configure TomCat’s authentication realm. For simplicity’s sake one can add test user to the {CATALINA_HOME}/confs/tomcat-users.xml with role “user”.
  5. Download or clone project’s source code.
  6. Export TANGO_HOST
  7. Setup your favorite IDE accordingly.

Build and run project

  1. Goto {PROJECT_ROOT}
  2. Run ant to build web-client
  3. Run mvn package to build web app
  4. Deploy web app to TomCat

  • – this parameter defines beam time id. All users datasets are associated with the This means that each dataset is simply stored in a folder named after in user’s directory on the server.
  • specifies implementation that is used to perform save and load operations on the users datasets. Default value = simply stores serialized java objects.
  • tango.server.class specifies Tango server name. The name should be registered in the Tango devices data base a priory. Default – JsonDS.
  • specifies Tango server instance name. The instance should be registered in the Tango devices data base a priory. This parameter is useful to distinguish development, test and production Tango instances.
  • tango.server.arguments tango start up coma separated arguments, i.e. -nodb,.... Empty by default.

Login properties will be stored as environmental variables during web application deployment. This file may have no properties at all in case realm configured in {CATALINA_HOME}/confs/server.xml does not need any.

  • – Kerberos realm.
  • – Kerberos domain.
  • – absolute path to external configuration file, e.g. /home/user/.jaas/jaas.conf=======

Have fun!