r8 - 15 Jun 2018 - 14:05:48 - PabloMartinezAgulloYou are here: TWiki >  Sandbox Web  > IDAlignmentWebDisplay

Inner Detector Alignment Web Monitor

* page in development *


The Alignment Monitoring Web Display is an application intended for monitoring the alignment results obtained at the calibration loop. It helps to display the computed alignment correction plus many plots related with the performance (as the detector residuals).

The run-by-run alignment procedure was successfully introduced in the Tier0 IDAlignmentCalibLoop on early 2011. This prompted a need for an easy way to access to the IDAlignmentCalibLoop output in order to spot ID misalignments as soon as posible and take an action. For Run-2, there were observed short time scale movements or drift of the IBL detector and a lift up of the Pixels package at the beginning of the run. Therefore it was necessary to adopt an strategy that checks the alignment at LumiBlock? level.

The Web application consists in a server, managed by ATLAS Distributed Computing, and a collection of scripts to produce plots, update the information and handle the http requests.

How to run the web monitor

The code

The current code is stored in GitLab and the old version in SVN . Several changes have been made from the old to the new version. The most significant is the simplification of the code which makes it much more easy to understand and keep updated.


  • update_runs.py : This is the main script for handling and updating the information. When executed it loops over all ID alignment calibration loop folders (/afs/cern.ch/user/a/atlidali/w0/calibLoop/Tier0/data) of the selected year looking for new runs. Then, it extracts the run information (number of ID tracks, recordtime, etc), stores the alignlogfiles in the server and saves all the available information in a database file named sever_runinfo201X.db (being 201X the year). The Tier0 calibration loop folders to be read for each year are defined in the function GetFoldersWithCalibLoopOutput of ConfigServer.py . This data is managed using the functions of RunInfo.py . The db file stores additional information from AMI using pyAMI commands . Note that for accessing AMI is necessary a grid certificate. This information is managed using the functions of AMIHelper.py . update_runs.py needs ConfigServer?.py, RunInfo?.py, AMIHelper.py and MsgHelper?.py.

    • ConfigServer.py : This script was created to simplify the structure of update_runs.py in comparison to the equivalent in the old code . Here are specified the paths of the different folders that are accessed and created by update_runs.py, RunInfo?.py and AMIHelper.py. It also contains several functions to extract and print the information, get analysis log files, extract the status of the calibration loop alignment results for a given run, create directories and more. These functions are used in update_runs.py.

    • RunInfo.py : By defining the class runinfo, this script contains the functions, lists and classes that handle the information of the runs. The dictionary DB works as a database where the variables to be read from the calibration loop are stored. The dictionary listOfRuns defines the lists ands dictionaries that classify the runs attending to different criteria.

    • AMIHelper.py : It is the equivalent of RunInfo?.py but for AMI information. Inside the class amiServer are defined the functions to collect the information from ATLAS Metadata Interface (AMI).
  • MakeMajorAlignMonPlots.py : This is the central script to produce plots. It is necessary to provide a configuration file (MakeAlignmentMonitoringPlots.py -c <configurationFile>)

    • userConfig.py : Configuration file for MakeMajorAlignMonPlots?. Here the user configures the input files, the directories from where the histograms are imported and the kind of output
    • utilities.py : Contains the functions to draw the different plots.

  • index.py : This script is the main code to handle the http requests. It is based on cherrypy , a light python framework to develop web applications. When it is run in the terminal (python index.py) it displays the Alignment Web Monitor in the local server. The local server address is indicated in the terminal with the line =ENGINE Serving on, note that is just an example and, therefore, your local server may be different.

  • HTML CSS Javascript

-- PabloMartinezAgullo - 05 Jun 2018

Edit | WYSIWYG | Attach | PDF | Raw View | Backlinks: Web, All Webs | History: r8 < r7 < r6 < r5 < r4 | More topic actions
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback