SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version? Maintenance: Version 3...

23
SPD-MOOD v4 Henrik Tydesjö 1 SPD-MOOD v4

Transcript of SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version? Maintenance: Version 3...

Page 1: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 1

SPD-MOOD v4

Page 2: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 2

Why A New Version? Maintenance:

Version 3 close to becoming a monster after 3 years of code fixes and temporary solutionsVersion 4 is better following the philosophy of object oriented programmingand gives a nice possibility for anyone to add new code in a simple way

Increasing number of requests for new functionality:Version 4 offers user to select specifically what to monitor, minimizing the resources and time spent for each individual need

Stability of operation:Version 3 had some problems of stability, lacking some proper handling ofposix threads and mutexes (Root ‘signal/slot’ handling related)Version 4 is greatly improved in this context

Another major benefit is the way in which SPD-MOOD displays data It is now completely re-organized and improved

The displaying is based on a ‘multiple window’ systemwhich is in many ways more flexible and convenient for the user

Page 3: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 3

Additional New Features ‘Run Until Event’

Stop running at specified event number Consistency Error Flag

Bar in main window showing green (ok) or red (error occurred)Possibility to reset this flag (to see if problem persists)

‘Screen-Shot All’Make screen-shots of all the displays that are open

Trigger mask May be set for all or single monitoring histogram(Two 32-bit words compared to the trigger pattern in raw data)Event accepted when:(trigMask1 & trigPattern1) OR (trigMask2 & trigPattern2)

Page 4: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 4

Main Window, Setup Window

Setup window – personalizeyour monitoring:

Choose what to monitor Choose what to display

Main window, some features: Define data source (Login) Collect data (Run…) Operations on all available

monitoring objects Global options (pixel mask,

trigger mask etc.)

Page 5: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 5

How To RunLOGIN Panel:

Data Source: Online Offline Offline File List

Data Format: DATE ROOT

Main Window:

Login(open login panel)

Run Run Until Event Run N Events Run One Event

Page 6: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 6

Setup Window: How Does It Work?Two kinds of monitoring objects: ‘Histogramming’ objects ‘Displaying’ objects

Histogramming object Parameters that need to

be monitored (e.g. using histogram) Collects statistics as SPD-MOOD runs ‘Reset’ functionality ‘Pause’ functionality ‘Trigger mask’ functionality

Displaying object Display window (see next slide) Link to ‘histogramming’ object (change

properties of hist. obj.) ‘Update’ functionality (draw histogram) ‘Screen shot’ functionality ‘Movie’ making functionality

Example for histogramming object (Cluster multiplicity):

‘+’ Create new hist. obj.‘-’ Delete last hist. obj. created Number of hist. obj.

Open display(s) - Create displaying object(s)

Page 7: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 7

Display Window

Update: Update displayReset: Reset histogramClone: Copy displaying object -

open new display windowconnected to same hist. obj.

Close display (hist. obj. still present)

Movie: Make movie based on screenshots when ‘Au-Up’ *

Pause: Pause collecting stats for connected hist. obj.

Au-Re: Automatically reset the connected hist. obj. after each event

Au-Up: Automatically update the display at next eventfulfilling certain conditions(‘modulus’ and updating time)

Kill: Close display and delete hist. obj.Trig mask: Set trigger mask for connected hist. obj.Screen shot: Make screen shot of this display

*) Not shown in this display

Page 8: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 8

Display Example: Clones4 displays of same hist. obj. – ‘clones’ (3 shown here)Au-Up Ev# set to display every 4th event in each display

Page 9: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 9

Save/Load Configuration and Setup As in Version 3 the global configuration parameters are saved automatically

upon exiting the program (for instance, the data source is stored)Again there is the possibility to save a specific configuration to fileto retrieve it later (see ‘File’ menu of SPD-MOOD main window)If you believe the values are screwed-up, there is a possibility to revertto a default set of values (this problem appeared once during 2008)

The setup (which histograms/displays to use) may also be saved(see ‘File’ menu of SPD-MOOD setup window)There is a default setup (which may be changed), always loaded atprogram start-upSetup may also be saved to a file, for instance you may have several such as:

‘MyFavoriteCosmic.setup’‘MyFavoriteUniformityScan.setup’‘MyFavoriteBeamInjection.setup’

Also the size and location-on-screen of the display windows are saved

Page 10: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 10

Underlying Code Structure (I)There is a set of ‘singleton’ classes that contains the essential part of code:

TMMainFrameMain window + connection to Setup window (TMSetupDisplays)

TMConfigGlobal configuration parameters (data source, active eqs, etc.)

TMControlMutexHandles mutex locks (SPD-MOOD needs to be a multi-threaded application)

TMControlSPDInterface to raw data (via DATE monitoring library and AliRoot RawReaders)Parses data and sends information to Histogramming objects.

TMDisplayingList populated via TMSetupDisplaysList of Displaying objects (basically display windows on screen)Facilitates operations on all displaying objects

TMHistogrammingList populated via TMSetupDisplaysList of Histogramming objects (Filled from TMControlSPD during running)Facilitates operations on all histogramming objects

Page 11: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 11

Underlying Code Structure (II)

TMHistogrammingList

TMControlSPDTMMainFrame

TMDisplayingList

ProcessPixelProcessClusterResetAuto

etc…

Start/Stop Run

Update AllScreen-Shot AllClose All

Raw Data

UpdateAutoDisplays Reset All

GetEvent

Login

Page 12: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 12

TMDisplayingShowDet

Draw Reset GetNrEvents etc…

Hist. Obj.Disp. Obj.

Underlying Code Structure (III)T

MH

istogramm

ingL

ist

TM

Disp

layingL

ist

TMHistogrammingClustersPerHSA

TMDisplayingHitMapEq TMHistogrammingHitMapEq

TMHistogrammingFastorEq

TMHistogrammingHitMapEq

TMHistogrammingGlobalClusterXY

TMHistogrammingGlobalClusterZY

TMDisplaying

TMDisplaying (clone)

Page 13: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 13

How To Add New Code1) Make a new histogramming object:

Write class that derives from TMHistogramming classThere is a template class (TMHistogrammingTEMPLATE) in source directory to help get started

2) Make a new displaying object (optional):In most cases, the base class TMDisplaying can be usedOtherwise write class that derives from TMDisplaying

3) Add code to manage added objects from Setup Window:TMSetupDisplays class (.h .cxx files)Look for lines like this for hint where code is needed:

// ADD CODE HEREMain additions needed:

Each hist. obj. should have unique ID defined in TMSetupDisplays.h Add buttons (‘+’ , ‘-’ , ‘SHOW’) to Setup Window

to manage the new histogramming object Code to create histogramming object upon button click Code to create corresponding displaying object upon button click

In most simple case only 9 lines of code added or changed

Page 14: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 14

TMHistogramming ClassMethods that may be implemented (overriding the base class methods) in the new class deriving from TMHistogramming: StartEvent (eventHeaderStruct *event, UInt_t globalEventNumber)

Called before any processing of event.ProcessPixel (UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row)

Called for each pixel hit found in raw data. ProcessClusters (HenrikClusterFinderSPD* clFinder)

Called after data parsing. Access to clusters found in the entire event. ProcessCluster (Float_t x, Float_t y, Float_t z, UInt_t module,

UInt_t size, UInt_t widz, UInt_t widphi, UInt_t type)Called after data parsing. Called for each cluster found by HenrikClusterFinderSPD. May be used instead of ProcessClusters(…).

ProcessEvent (eventHeaderStruct *event)Called after data parsing.

EndEvent (AliITSRawStreamSPD *str, UInt_t globalEventNumber)Called at the end of the event loop.

In addition, methods Draw (TPad *pad) and Reset () should be implementedAll histograms used in Version 3 and a few new ones have been added so far

Page 15: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 15

Ex: Clusters per HS

Page 16: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 16

Ex: Bunch Crossing Modulus 4

Page 17: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 17

Ex: Hit-Map for Half Sector

Double-click opens chip display:

Page 18: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 18

Ex: FastOR Signals per Equipment

Page 19: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 19

Ex: Consistency Errors vs. Event Number

‘Show Error Codes’ button opens list of error codes:

Page 20: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 20

Installation (I)1) Target a Linux machine for installation

Development made on SLC42) Install ROOT if not present (see http://root.cern.ch)

Any Root version should be fine, but in case of problems, check SPD-MOOD web documentation to see which ROOT version was used for development

3) Install DATE (optional)Needed for online monitoring (does not need full DATE installation)

4) Download and install ‘mpeg2encode’ and ‘mpgtx’ (optional)Needed for movie making functionality (may be found on web)Add these binaries to PATH environment variable

5) Download SPD-MOOD.tgz files are found on SPD-MOOD web documentation pageUn-pack by (in the case of version 4.01):> tar zxvf SPDMood_v4.01.tgz

Page 21: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 21

Installation (II)6) Add environment information to login script

‘SPDMOOD_SITE’ should be set to the downloaded directory nameIn bash shell, add something like this to .bashrc file:export SPDMOOD_SITE=/local/home/spd/SPDMood_v4.01export PATH=$SPDMOOD_SITE/bin:$PATHexport LD_LIBRARY_PATH=$SPDMOOD_SITE/lib:$LD_LIBRARY_PATH

7) Edit $SPDMOOD_SITE/build/MakefileFirst two lines may be edited according to desired mode of operation:WITH_DATE = 1 if DATE will be used (otherwise put 0)WITH_MOVIE = 1 if movie making is desired (otherwise put 0)

8) Build the code> cd $SPDMOOD_SITE/build> make

9) Run Application > SPDmood.exeMight require to re-run login script first. In case connection to grid is desired, run:> gridSPDmood.exe

Page 22: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 22

Grid Connection

From SPD-MOOD v4.03 on: Grid files may be accessed directly through ALIEN To source /tmp/gclient_env_$UID script, and

automatically connect to grid at program start-up, run:> gridSPDmood.exeThis should of course be preceded by an ‘alien-token-init’

Data source should start with alien:// , for instance:alien:///alice/data/2008/LHC08d/000062834/raw/08000062834000.10.root

Page 23: SPD-MOOD v4Henrik Tydesjö1 SPD-MOOD v4. Henrik Tydesjö2 Why A New Version?  Maintenance: Version 3 close to becoming a monster after 3 years of code.

SPD-MOOD v4 Henrik Tydesjö 23

Further DetailsSee SPD-MOOD web documentation for further details:

http://tydes.home.cern.ch/tydes/doc/SPDMood

This presentation Download page, description of updates for each version Installation guide Lists explaining all menus and buttons