
4b47edb8b34358c8efd4781da08fe350.ppt
- Количество слайдов: 18
Sy. Sal Analysis tools: Status and outlook Cristiano Bozza Salerno Emulsion Group Bern, March 2004
Software architecture basics Platform. NET (Windows), Mono (Linux) Most class libraries and executables do not need OS-specific binaries Languages Most code is written in C# Libraries can be used by programs in any. NET-supported language: C++, C#, BASIC, FORTRAN, . . . No recompilation or adaptation required Why this choice? In the real OPERA data-taking, quasi-on-line analysis will be needed to drive the microscopes Dedicated servers will run automated, distributed analysis tasks A natural framework for distributed computing is needed . NET / Mono
Software architecture overview Basic libraries Sy. Sal. Core, Imaging, Tracking 2, Scanning 2, Volume. Tracks Basic classes libraries Numerical. Tools, Math. Expression Common numerical operations and a powerful math parser Most commonly used computation libraries Quick. Mapper, Stripes. Frag. Link 2, Alpha. Omega. Reconstruction Pattern matching, fragment linking, volume alignment and vertex-track topological tree reconstruction Additional libraries Volume. Generation Customizable generation of vertex-track trees in a background of passing-throughs and uncorrelated tracks (Compton electrons, delta rays, etc. . . )
Software architecture overview Data analysis libraries Graphical. Analysis Produces several statistical plots that can be displayed or saved to a file in several popular formats (GIF, JPEG, EPS) Statistical. Graphics Passive GUI control that can be placed into user applications Statistical. Analysis. Manager Active GUI control that can be placed into user applications Manages several datasets, applies cuts, adds variables, etc. . .
Software architecture overview I/O libraries Scanning 2 and Volume. Tracks support file-based persistence for: Sy. Sal. Scanning. Plate. IO. Opera. Linked. Zone Sy. Sal. Scanning. Plate. IO. Opera. Raw. Data. Catalog Sy. Sal. Scanning. Plate. IO. Opera. Raw. Data. Fragment Sy. Sal. Total. Scan. Volume Opera. DB supports Opera DB - based persistence for Sy. Sal. Opera. Db. Scanning. Linked. Zone Sy. Sal. Opera. Db. Total. Scan. Volume + Sy. Sal. Opera. Db. Scanning. Batch Sy. Sal. Opera. Db. Computing. Infrastructure. User. Permission Sy. Sal. Opera. Db. Computing. Infrastructure. Machine Sy. Sal. Opera. Db. Computing. Infrastructure. Program. Settings
Software architecture overview Support for Opera Emulsion Scanning DB Level 1 Opera. Db. Connection, Opera. Db. Command, Opera. Db. Data. Adapter to issue SQL commands Level 2 Linked. Zone, Volume, Program. Settings used for storage/retrieval Level 3 Integrated Oracle-OPERA-OS authentication (Opera. Db. Login. Tools) Level 4 File paradigm for DB operations (Opera. Persistence)
Software architecture overview Support for Opera Emulsion Scanning DB Level 1 C# Opera. Db. Connection conn = new Opera. Db. Connection(“operadbsrv. mydomain. eu”, “user”, “pwd”); conn. Open(); Data. Set ds = new Data. Set(); Opera. Db. Data. Adapter da = new Opera. Db. Data. Adapter(“SELECT DOWNSTREAMSLOPEX, DOWNSTREAMSLOPEY FROM TB_VOLUMETRACKS”, conn, null); da. Fill(ds); int i; for (i = 0; i < ds. Tables[0]. Rows. Count; i++) { Console. Write. Line(“{0} {1}”, ds. Tables[0]. Rows[i][0]. To. String(), ds. Tables[0]. Rows[i][1]. To. String()); } conn. Close(); C++ Opera. Db. Connection *conn = new Opera. Db. Connection(“operadbsrv. mydomain. eu”, “user”, “pwd”); conn->Open(); Data. Set *ds = new Data. Set(); Opera. Db. Data. Adapter *da = new Opera. Db. Data. Adapter(“SELECT DOWNSTREAMSLOPEX, DOWNSTREAMSLOPEY FROM TB_VOLUMETRACKS”, conn, 0); da->Fill(ds); int i; for (i = 0; i < ds->Tables[0]->Rows->Count; i++) { Console: : Write. Line(“{0} {1}”, ds->Tables[0]->Rows[i][0]->To. String(), ds->Tables[0]->Rows[i][1]->To. String()); } conn->Close();
Software architecture overview Support for Opera Emulsion Scanning DB Level 2 C# Opera. Db. Connection conn = new Opera. Db. Connection(“operadbsrv. mydomain. eu”, “user”, “pwd”); conn. Open(); Linked. Zone lz = new Linked. Zone(2767, conn, null); conn. Close(); C++ Opera. Db. Connection *conn = new Opera. Db. Connection(“operadbsrv. mydomain. eu”, “user”, “pwd”); conn->Open(); Linked. Zone *lz = new Linked. Zone(2767, conn, 0); conn->Close(); The library takes care of issuing all the proper SQL commands to retrieve a specific complex object from the DB
Software architecture overview Support for Opera Emulsion Scanning DB Level 3 C# Opera. Db. Connection conn = Opera. Db. Credentials. Create. From. Record(). Connect(); conn. Open(); Linked. Zone lz = new Linked. Zone(2767, conn, null); conn. Close(); C++ Opera. Db. Connection *conn = Opera. Db. Credentials: : Create. From. Record()->Connect(); conn->Open(); Linked. Zone *lz = new Linked. Zone(2767, conn, 0); conn->Close(); The user doesn’t need to supply the username/password pair for Oracle login: they are recorded in an encrypted file
Software architecture overview Support for Opera Emulsion Scanning DB Level 4 – in a program Linked. Zone lz = (Linked. Zone)Opera. Persistence. Restore(“db: 2354. tlg”, typeof(Linked. Zone)); The Opera. Persistence library takes care of discriminating between DB references and files. DB objects have a virtual file path. Opera. Persistence automatically logs onto the DB when needed. Level 4 – OS shell C: > Opera. Copy db: 2354. tlg c: myfile. tlg It is possible to treat DB objects as if they were files in a generalized file system. (Opera. Persistence implements a GUFS: Grand-Unified File System. . . ) Opera. Persistence automatically logs onto the DB when needed. If a program is able to work with data files, it is immediately able to work with an OPERA DB This cannot replace smart use of DB, i. e. ability to extract only the interesting information units (e. g. a single base track for scanback)!!!
Software applications Ready-made programs Easy. Link. NET – GUI interactive utility for fragment linking Easy. Reconstruct – GUI interactive utility for volume alignment, vertex detection, topology reconstruction, interactive display and alignment data analysis Quick. Data. Check – GUI interactive data analysis program that natively supports TLGs, RWDs, TSRs as well as ASCII n-tuples TLGSel* – Command-line program that extracts subsets of tracks from a TLG file Batch. Link* – Command-line program that links fragments, and optionally performs automatic shrinkage correction and camera spot elimination Batch. Reconstruct* – Command-line program that performs alignment, vertex detection and topology reconstruction ASCII 2 TLG – Command-line utility that builds a TLG from n-tuples Qmap* – Command-line track pattern-matching utility Opera. Copy* – shell executable that copies objects between the file system and the DB Opera. Db. Zone. Loader – GUI interactive utility that loads linked zones into the DB * = supports Opera. Persistence “Grand-Unified File System”
Software applications Quick. Data. Check Produces several plots and fits Easy to use, high interactivity
Software applications Easy. Link Interactive fragment linking tool
Software applications Easy. Reconstruct Interactive alignment + analysis + vertex / topology reconstruction
Software applications Batch. Link Automatic shrinkage correction (“beam-like” precondition is not required)
Software applications Coming soon Batch. Intercalibrate – Command-line program that computes the intercalibration parameters from tracks and generates a new mark map in the intercalibrated reference frame Batch. Plot – Command-line program that generates analysis plots for automatic data monitoring “Driver programs” are also under development: Free scanning and automatic fragment linking Vertex location (includes scanning, linking, intercalibration, alignment and vertex detection) Vertex selection Brick management in a scanning cluster Scanning cluster management
Software development Recent improvements of Sy. Sal. NET algorithms Vertex reconstruction in Alpha. Omega. Reconstruction is being extensively tested and validated. Memory and network management in Stripes. Frag. Link 2 has been improved to work in extreme conditions (high density and areas > 30 cm 2, multi-GB datasets easily handled) Work on these tools has been triggered by the vertex location test An ideal playground to set up and test methods, precisions and strategies for OPERA!
Next future The software is improving very steadily towards its final shape In OPERA we will have: • Lower background • Smaller data sets • easier than now! “Stay tuned!”. . . new developments are coming soon. . .