Category: software
Atlas TAGs
I’ve presented two talks in the Event TAG Developer Workshop in CERN:
Extract and Skim Tags via Athenaeum
The public service interface is implemened by tagExtract_trf.py script, which is linked also to tagSkim_trf.py script. Those scripts run on different ports, but that is only formal organisation (clients can access both servers in the same way).
Servers can be called
|
|
![]() |
![]() |
New extract command
New command is available to perform extraction with the Event Tag database from the command line:
source /afs/cern.ch/sw/lcg/external/Java/bin/setup.sh
extract
-manager [CERN|CHICAGO], default = CERN
-python <Python options file>
-url <worker ip:port>, default = http://lxvm0341.cern.ch:10001
-key <insider key>
-output <output Root file>, default = test_<random>.root
-query <sql query>
-collname <collection name>
-lumi <luminosity>, default = Unknown
-release <release>, default = Atlas,takeFromEnv
-conn <connection string>
-target <target directory>, default = /tmp
-atts <requested attributes>, default = RunNumber,EventNumber
-email <notification email>
-lumiencode <is luminosity encoded ?>, default = False
The user can choose the (Athenaeum) extraction manager (-manager
) and the extraction worker (-url
). All options can be collected in a Python options file (-python
). Other formats of options file will soon follow. The options are taken as they appear on the command line and the options files. That means that an option file will overwrite all command line options set before, but its options will be overwritten by command line options set after.
When performing tag extraction with ELSSI, the job notification letter contains the command line to reproduce the same job.
New Histogramming service for Atlas Tag database
There is a new histogramming service for Atlas Tag database. It is now completely independent service hosted on the CERN J2EE server. It can be called from ELSSI or from Web. The service talks directly to the Oracle database. It supports all databases from tnsnames.ora
file (as a byproduct, a script which translates tnsnames.ora
into context.xml
usable in JSP services has been written). Currently, the service just show the 1-D histograms, other functionality (2-dim histograms, fits, …) could be easily added if needed because there is a complete analyses package running behind the service.
The accumulated testing examples are available from http://cern.ch/SQLTuple/HistogramTest.html. The service API is:
http://cern.ch/SQLTuple/Histogram.jsp
?database=<database name as declared in tnsnames.ora>
&select=<SQL select clause as "column_name as histogram_name">
&from=<comma separated table names as "schema1.table1,schema2.table2>
&where=<SQL where clause>
&limit=<maximum number of rows to analyse, "0" indicates no limit, the default is "1000">
The time for creation of one histogram from one table is roughly linear with the number of events (which could be controlled by limit
parameter):
t = 3s + 1s * (nevents / 100000) + 1s * (nevents / 25000)
This number should be multiplied if more histograms are requested and more tables are queried.
PHP/JavaScript solutions have been abandoned for two reasons:
- All PHP/JavaScript do very nice drawing. But they don’t understand what is a histogram. That means, that we would have to implement all functionality about binning, selecting limits, text legends,…
- There is a serious memory limit on the PHP server so that we could only accumulate histograms up to about 1000 entries there. (There is no limit on the new service).
How Extraction works
![]() |
|
other Athenaeum posts |
Extraction Architecture
![]() |
|
other Athenaeum posts |
Three Tier Tag Extraction with Athenaeum
The main aim is to separate the extraction execution and the management of the extraction servers. The other aim is to facilitate access to the extraction service.
Two involved services are:
|
![]() |
|
Athenaeum Architecture |
other Athenaeum posts, ATLAS TAG User Services Overview |
Family of Athenaeum Servers
New version of Athenaeum supports multiserver configuration. In that configuration, a family of servers (called brothers) run in parallel. All servers are equal and offer exactly the same functionality. User can start a new server using Fork command. List of running parallel server can be requested using Family command (this commands also consolidates the family of servers by removing dead brothers and updating databases). Both new methods are available from the command line, all supported APIs (Java, Python, PHP, C++) and via Athenaeum Web Service. |
![]() |
other Athenaeum posts |