Category: software

Simple Analysis with Tags

I have added a possibility for simple analysis of data stored in Atlas Tag Database. This functionality is available from FDR ELSSI Web Service and from my Tag Database Web Service Interface replica. Following are simple instructions.
There are two new buttons on Display Results folder: Draw Selection and
Analyse Sel;ection.
Selection from Tags
Draw Selection will draw simple 1D histograms from selected columns. Google Chart API is used. Drawing of Tags
Analyse Sel;ection will create more sophisticated 1D or 2D histograms from selected columns You can choose 1, 2 or 3 columns to create 1D, 2D or weighted 2D histograms. The interface will also allow further analyses by changing selection parameters directly from the histogram page. SQLTuple Web Service is used. Analysing of Tags

Athenaeum with Cool Payloads

New mini-release of Athenaeum contains testing parameter files for LAr Cool payloads encrypted by Root&Pool. Those files are available from the Athenaeum/src/net/hep/atlas/Core/Athenaeum/Test directory within Athenaeum distribution (you can download it or get it from the CERN Java repository in /afs/cern.ch/sw/lcg/external/Java/Athenaeum.

All those files can be tested in CERN using following commands:


source /afs/cern.ch/sw/lcg/external/Java/bin/setup.sh
athenaeum http:/voatlas16.cern.ch:54323 insider Cool TestingParameters.py

Within complete Athenaeum distribution, complete test can be performed with ant check command.

This is the status of LAr encrypted payloads under Athenaeum:

  • LArRampCompleteOK
  • LArPedestalCompleteAthena crash
  • LArAutoCorrCompleteOK
  • LAruA2MeVMCAthena crash
  • LArShapeCompleteOK
  • LArOFCCompleteOK
  • LArDAC2uAMCAthena crash
  • LArDetCellParamsCompleteno testing data
  • LArMphysOverMcalCompleteOK
  • LArCaliWaveContainerOK
  • LArCaliPulseParamsCompleteno testing data

Up-to-date status is available from the here.

Athenaeum command has been described in another post.

(currently unavailable) Note, that JAS3-based graphical client (or simple athenaeum command) is more suitable than Web Service for browsing detailed payloads. While Web Service makes browsing simpler (there is nothing to install), running within Web Client poses additional restrictions to the available memory and bandwidth.

New GraXML Features

I have released a new minor version of GraXML. Besides bug-fixes, it has two new features:

  • Right-click on objects in TreeView pops up menu with graphical operations applicable to
    associated geometrical object. User can choose one or several objects. Only leafs are supported.
    Some items perform directly the operation (like making object transparent or wireframe), Picking
    selects object for further actions (like changing of color via top-right panel). More actions will be added later,
    including interactions with associated programs (e.g.Atlantis).
  • User can show a scene floor, which is placed below the scene.

User using WebStart to call GraXML will get this new version automatically on next call. Both GraXML Web Start
and Atlantis+GraXML Web Start are updated.

GraXML with Floor and Popup Actions

New Athenaeum command available

New Athenaeum command allows to run standard Athenaeum tasks on the server. User doesn’t have to supply her Python script, she can use the standard one (which is contained in the Athenaeum applications and used in JAS3 plugin and JSP Web Service). User only supplies her options script. There are several standard tasks currently supplied: Cool, Event, Fork, Info and Restart. Simple results are returned as Strings, more complex results as XML fragments.

Athenaeum is installed within CERN AFS cell, user can use, for example, following commands:


# setup Java (you should put this into your login profile)
source /afs/cern.ch/sw/lcg/external/Java/bin/setup.sh
# find out which tasks are available:
athenaeum
# look at Info task source
athenaeum http://voatlas16.cern.ch:54324 insider Info
# execute Cool task on voatlas16.cern.ch:54324 server
# using myCoolOptions.py script to specify options
athenaeum http://voatlas16.cern.ch:54324 insider Cool myCoolOptions.py

This is a simplest myCoolOptions.py script:


server             = "oracle://ATLAS_COOLPROD"
dbname             = "COMP200"
schema             = "ATLAS_COOLONL_LAR"
user               = ""
password           = ""
lod                = ""
showPoolRef        = "false"
foldersChoice      = ""
tagsChoice         = ""
channelsChoice     = ""
startTime          = "Sat Jan 01 00:00:00 CET 2000"
stopTime           = "Tue Jan 01 00:00:00 CET 2030"
startRun           = "0"
startEvent         = "0"
stopRun            = "2147483647"
stopEvent          = "4294967295"
startLumi          = "0"
stopLumi           = "4294967295"
larCondTypeChoice  = ""
payloadLimit       = "10"

For LAr Ramp payloads asks following script:


server             = "oracle://ATLAS_COOLPROD"
dbname             = "COMP200"
schema             = "ATLAS_COOLONL_LAR"
user               = ""
password           = ""
showPoolRef        = "false"
startTime          = "Sat Jan 01 00:00:00 CET 2000"
stopTime           = "Tue Jan 01 00:00:00 CET 2030"
startRun           = "0"
startEvent         = "0"
stopRun            = "2147483647"
stopEvent          = "4294967295"
startLumi          = "0"
stopLumi           = "4294967295"
larCondTypeChoice  = ""
payloadLimit       = "2"
lod                = "everything"
channelsChoice     = ""
foldersChoice      = "/LAR/ElecCalib/Ramps/Ramp"
larCondTypeChoice  = "*"
tagsChoice         = "LARElecCalibRampsRamp-comm-01"

Outside CERN, user has to install Athenaeum and replace athenaeum alias with full command: java -jar ${ATHENAEUM_HOME}/lib/AthenaeumExt.exe.jar. He has probably to set up an SSH tunnel to the Athenaeum server as well, like this: ssh -L54324:voatlas16.cern.ch:54324 user@voatlas16.cern.ch

(currently unavailable) All Athenaeum functionality is available via graphical clients which can be installed and run using Web Start. If you have correctly integrated Java 1.5 or 1.6 with you browser, that link will install and start Athenaeum client or you machine (Linux, MS or MacOSX). You may also do it with following command: javaws http://cern.ch/hrivnac/Activities/Packages/WebStart/JAS3/jas3.jnlp.

Simplified Athenaeum version is also available as a JSP Web Service.

More informations about Athenaeum are available from its Home Page.

New Old Atlas Graphics Page

is here. It contains links to all major Atlas graphics applications.

How to get HEP in Java ?

Ok — so the question is — given where particle physics is now – how do we get them in?

My contribution to the Java discussion on the Gordon Watts blog:

Short answer:
——————-
Write useful applications.
Examples from Atlas: Atlantis, Tag Collector, AMI,…
Examples from HEP: FreeHEP, jHepWortk,…
 
Longer answer:
———————-
Write useful applications + convince bosses to allow non-Root/non-C++ components. There is a big problem with CERN IT management: they have chosen to choose one framework/language and to boycot anything else.
The first choice was LHC++/Objy/IrisExplorer, the second is Root. The second choice is clearly better, but the main problem persist: bureaucratic
monopolisation. Any project capable of disturbing Root/C++ monopoly is illegal in CERN. There are many concrete examples: people are asked to remove their code from LCG repository because it is in Java, proposed presentations and tutorials are refused for the same reason.
Java is not the only victim, non-Root C++ projects suffer as well.
Many choices made by LCG (Atlas incl.) have been made just to lock us in the “chosen” technology: Root C++ dialect.At the beginning of LCG, there were some some (shy) attempts to make real modular architecture with abstract interfaces. Several RTAGs went in that direction. All that has been canceled. Java RTAG (yes, it was scheduled) was renamed to “future languages” RTAG and silently canceled later. Etc,etc

Java is more then twice faster then C++ in real life benchmark

Atlas uses Octopus to convert its geometry database from Oracle to SQLite. Octopus is written in 100% Java, as well as MySQL JDBC driver. Until recently, we were using native C++ implementation of SQLite, interfaced with Octopus via JNI. We have now migrated into 100% Java implementation of SQLite. This implementation has been created automaticaly using NestedVM tool. NestedVM converts MIPS binary (result of GCC compilation) code into Java classfiles. This way, any language, which can be compiled by GCC, can be translated into Java. Resulting Java is supposed to be quite slower as original code (or equivalent code written directly in java) because it contains only very low-level language constructs (quite close to assembler).

What was our surprise, when we have found that new 100% Java implementation is more then twice faster than previous mixed Java-C++ implementation. We get that speed-up on top of usual advantages of Java: platform independence (we just need one distribution, which runs on every platform, 32 or 64 bit based), exact reproducibility of results and order-of-magnitude smaller executable.

GraXML gives 3D View to Atlantis

Atlantis and GraXML There is now a prototype of Atlantis with 3D View possibility provided by GraXML. Following Atlantis elements can be shown in GraXML:

  • S3D
  • SiCluster
  • STr (simplified)
  • InDetTrack (only some descriptions)
  • Jet
  • BJet
  • TauJet
  • Electron
  • Muon
  • Photon
  • ETmis
Launch Web Start The complete application is available via Web Start, it can be downloaded and started directly from you Web Browser if your Java (1.5 or 1.6) is correctly installed. Otherwise, you can download and start it using javaws command.

There is Simple Guide to Atlantis-GraXML package.

Object Extensions

My contribution to the discussion on another blog, concerning possibilities to dynamically extend objects with new methods

If you are allowed to use Java, you can use Groovy (which is bytecode-compatible with Java). Then you can do something like this:


// Define "extension" method within a class
class IntegerCategory {
  static boolean isEven(Integer value) {
    return (value&1) == 0
    }
  }    

// Use it
  use (IntegerCategory.class) {
    println 2.isEven()
    println 3.isEven()
    }

I don’t agree that nobody is using Java & comp. for data analyses. There are many users of JAS and jHepWork (certainly not in Atlas). And The Atlas event display – Atlantis – is written in Java.The example I mentioned above was not directly in Java, but in Groovy. Groovy is a kind of Java-extension – dynamically typed language. It is completely compatible with Java (you can freely mix them in one program) and it has many unsafe features which some people would like to have in Java (like operator overloading, multiple inheritance,…). And it has excellent support for XML and SQL. It is, for example, very easy to create a histogram from SQL table: http://hrivnac.free.fr/wordpress/?p=72.

Java itself can support features you have asked for via “Dynamic Proxy”:
http://www.ibm.com/developerworks/java/library/j-jtp08305.html
It is very powerful system, but a bit complex.

[It is strange that all my cotributions are marked as spams - maybe because of included URLs ?]

The complete thread is here.

Java Web Start in Atlas

Atlas Web Start
Despite managerial boycot, Java is well used in Atlas. There are also several WebStart-based applications available:

  • https://twiki.cern.ch/twiki/pub/Atlas/PvssDataViewer/PvssDataViewer.jnlp
  • http://atlaseditor3d.web.cern.ch/AtlasEditor3D/images/EMDH.jnlp
  • http://triggertool.web.cern.ch/triggertool/TriggerTool.jnlp
  • http://cern.ch/atlas-l1calo/l1calomap/l1calomap.jnlp
  • http://www.hep.ucl.ac.uk/atlas/atlantis/webstart/atlantis.jnlp
  • http://www.hep.ucl.ac.uk/atlas/atlantis/webstart3d/atlantis3d.jnlp
  • http://cern.ch/hrivnac/Activities/Packages/WebStart/GraXML/GraXML.jnlp
  • http://cern.ch/hrivnac/Activities/Packages/WebStart/JAS3/jas3.jnlp