6/1/2000 H. A. Neal 1
The University of Michigan MDT
Production Database
Shawn McKee, Chunhui Han, Homer Neal
ATLAS MDT Site Visit
Ann Arbor
June 1, 2000
6/1/2000 H. A. Neal 2
Outline of Presentation
• Design Philosophy
• Database Layout
• Tables and Fields Captured
• Data Input Strategies
• Analysis and monitoring
• Comparison of RDB and OO approaches
• Demonstration of package
Reference: http:// atwww .physics. lsa . umich . edu / aspdb /um_db.asp
6/1/2000 H. A. Neal 3
n We will collect and store every piece of data that is known to bear
directly on the principal physics performance of the muon chamber
n We will collect and store chamber
production data related to the
raw material parameters, production conditions and produc tion procedures, including all information required by the ATLAS - wide muon coordinating groups.
n We will automate each and every measurement possible. Each
manual entry of a measured quantity to our database
must be
justified and approved by the MDT group.
n The database is to be available to any authorized user via the web.
That is, a key member of the UM - MDT group should be able to
log on to the web anywhere in the world and, after sufficient
authorization checks, have the same functionality as if he or she
was in the production lab.
Database Design Philosophy
6/1/2000 H. A. Neal 4
n The initial database application package will be based upon
Microsoft ACCESS.
n An ACCESS database, or whatever other application is specified by
ATLAS, will be explicitly maintained to provide an interface to the
ATLAS MDT global database.
n Whenever possible , the database structure, even though relational in
basic character, will be developed in full recognition of the current
features of object oriented databases. This is done because of known
benefits for OO databases, because we know the ultimate ATLAS
eve nt storage paradigm will be that of OO databases, and because of
the likelihood that database migration of the future will probably be
toward OO databases.
Design Philosophy - continued
6/1/2000 H. A. Neal 5
The structure of the production database reflects the current measurement procedures.
All the measurements are carried out in eight main “stations”:
1) Wiring Station
2) Leak Checking Station
3) Dark Current Station
4) Cosmic Ray Station
5) X - ray Station
6) Emmi Station
7) R esistance Station
8) Frequency Station
As the name suggests, each station carries out one specific task. Each station is manned
with one to two operators. Each station generates separate text data files, which will be
processed by Perl programs to input data into the database.
UM MDT Production Stations
6/1/2000 H. A. Neal 6
Table 1: WirOperation ________________________________ _________________ 33
Table 2: Wirrun ________________________________ _____________________ 33
Table 3: Wirparam ________________________________ ___________________ 34
Table 4: Leakchkoperation ________________________________ ______________ 34
Table 5: Leakchkrun ________________________________ __________________ 34
Table 6: Leakchkparam ________________________________ ________________ 35
Table 7: Dcoperation ________________________________ __________________ 35
Table 8: Dcrun ________________________________ ______________________ 35
Table 9: Dcparam ________________________________ ____________________ 35
Table 10: Croperation ________________________________ _________________ 36
Table 11: Crrun ________________________________ _____________________ 36
Table 12: Crparam ________________________________ ___________________ 36
Table 13: Xrayoperation ________________________________ ________________ 38
Table 14: Xrayrun ________________________________ ___________________ 38
Table 15: Xrayparam ________________________________ _________________ 38
Table 16: Emmioperation ________________________________ _______________ 39
Table 17: Emmirun ________________________________ ___________________ 39
Table 18: Emmiparam ________________________________ _________________ 39
Table 19: Resistoperation ________________________________ _______________ 40
Table 20: Resi strun ________________________________ ___________________ 40
Table 21: Resistparam ________________________________ _________________ 40
Table 22: Freqoperation ________________________________ ________________ 40
Table 23: Freqrun ________________________________ ____________________ 41
Table 24: Freqparam ________________________________ __________________ 41
T able 25 ________________________________ __________________________ 42
Table 26 43
List of Tables in Tube Production Database
6/1/2000 H. A. Neal 7
Crparam Parameter Point
Crgasmix Gas Mixture Percentage Of Each Gas
Crgaspurityar Argon Purity Code
Crgasco2 Co2 Purity Code
Atmprsmin Minimum Atmospheric Pressure During Run
Atmprsmax
Maximum Atmospheric Pressure During Run
(Mbar)
Hvop Operational Hv (Depending From Gas Mixture)
Prsinmin Minimum Input Pressure During Run (Psi)
Prsinmax Maximum Input Pressure During Run (Psi)
Prsoutmin Minimum Output Pressure During Run (Psi)
Prsoutmax Maximum Output Pressure During Run (Psi)
Tempmin Minimum Temperature During Run (K)
Tempmax Maximum Temperature During Run (K)
Threshold Tdc Discriminator Threshold (Mv)
Tdcgain Nominal Tdc Gain
Adcgain Nominal Scanning Adc Gain
Example of Parameter table: Table Crparam
6/1/2000 H. A. Neal 8
Id Primary Key
Idtube Tube Id From Barcode
Tubeend Which Tube End Is Being Measured (N Or S)
Xraydy Measured Offset In “Y” Direction (Microns)
Xraydz Measured Offset In “Z” Direction (Microns)
Xraydy180
Measured Offset In “ Y 180 Degrees” Direction
(Microns)
Xraydz180
Measured Offset In “ Z 180 Degrees” Direction
(Microns)
Xrayoff Measured Radial Offset (Microns)
Xraydt Timestamp For Measurement
Xrayrun Pointer To Xray Run Number
Example of Operation Table: Table Xrayoperation
6/1/2000 H. A. Neal 9
Freqparam Parameter Pointer
Freqdrive Driving Frequency For Wire Tension Test (Hz)
Freqpuldur Driving Frequency Pulse Duration (S)
Freqwait Waiting Time After Driving Pulse (S)
Freqsamp
Sampling Frequency For Tension Determination
(Khz)
Example of Paramter Table: Table Freqparam
6/1/2000 H. A. Neal 10
Idtube Tube Id
Scode Status Code For The Tube
Darkcurave Average Dark Current
Dccnt Measurement Count In Dc Station
Leakdt Timestamp For Leak Check
Leakrate Gas Leak Rate
Lccnt Measurement Count In Leakchk Station
Resistdt Timestamp For Resistance Measurement
Resistn
Resistance Measurement 1 End-Plug To Tube, North-
End
Resists
Resistance Measurement 1 End-Plug To Tube, South-
End
Rcnt Measurement Count In Resist Station
Wirstartdt Timestamp For Wiring Measurement
Tubelencode Barcode Of Tube Length (Mm)
Tubelen Measured Tube Length (Mm)
Wirfreq Measured Wire Frequency (Hz) Just After Wiring
Tension Inferred Wire Tension (G) Just After Wiring
Wcnt Measurement Count At Wir Station
Freq Frequency (Hz) During Remeasurement
Freqdt Timestamp For Frequency Remeasurement
Freqtemp Temperature (C) During Frequency Remeasurement
Fcnt Number Of Frequency Remeasurements
Xraydts Timestamp For Xray Measurement, South-End
Xrayoffs Measured Radial Offset (Microns), South-End
Cnts Measurement Count At Xray Station, South-End
Xraydys Y Offset On Tube South End (Microns)
Xraydzs Z Offset On Tube South End (Microns)
Xraydtn Timestamp For Xray Measurement, North-End
Xrayoffn Measured Radial Offset (Microns), North-End
Cntn Measurement Count At Xray Station, North-End
Xraydyn Y Offset On Tube North End (Microns)
Xraydzn Z Offset On Tube North End (Microns)
Summary
Table
6/1/2000 H. A. Neal 11
6/1/2000 H. A. Neal 12
One nice aspect of Perl is its hash variable types, which are well meshed to database tables, fields and
values. For example, if we have a table in ACCESS called ResistOperation with 4 fields :
IdTube, ResistN, ResistS and ResistDate , we can easily mimic this in Perl with a
hash data type:
$ResistOperation{IdTube} = 1;
$ResistOperation{ResistN} = 0.001;
$ResistOperation{ResistS} = 0.002;
$ResistOperation{ResistDate} = “8/18/99 12:43”;
We could then create a new record in ACCESS for this table with the following code:
$Table = “ResistOperation”;
$istat = CreateRecord($Table,\%ResistOperation);
if (!$istat){print “CreateRecord failed with $istat\n”}
It is important to note that we don’t have to input every field of a table in this call…only the ones we
have data for or have chosen to fill.
PERL and its use in modifying ACCESS Tables
6/1/2000 H. A. Neal 13
1.1.1 AN EXAMPLE OF A PAW ANALYSIS SESSION.
We show an example of using the downloaded Summary_Table.rz file inside PAW using the
Windows NT version. We first “double-click” on PawNT.exe in our \cern\bin directory and hit
enter at the workstation type request:
Figure 1 Example of PAW command window using WinNT
The “set 2buf 11” is to implement “backing-store” which saves any graphics in the HIGZ window if
they become covered by other windows. We then open the ntuple file and print the contents:
‘PAW> H/FILE 25 Summary_Table.rz’,
‘PAW> NT/PRINT 1’
See the plot on the next page for the NTUPLE contents. We now prepare to plot some data by
executing a local PAW setup file and then create a plot.
‘PAW> EXEC Setup.kumac’
‘PAW> NT/PLOT 1.TubeLen-TubeLenc-23.15%WirStart abs(TubeLen-TubeLenc-23.15)<5’
Example of
the Use of
the
Database to
Generate
NTUPLE,
which is
picked up
and
processed
by PAW
6/1/2000 H. A. Neal 14
6/1/2000 H. A. Neal 15
6/1/2000 H. A. Neal 16
Example
of Plots
Prepared
Nightly as
Database
is Updated
6/1/2000 H. A. Neal 17
6/1/2000 H. A. Neal 18
“Universal Data Access is Microsoft’s strategy for providing access to information across the
enterprise. … Universal Data Access provides high-performance access to a variety of information
sources, including relational and non-relational, and an easy to use programming interface that is
tool and language independent.”
Since we are using ACCESS on a Microsoft platform we have chosen to utilize Microsoft’s MDAC
(Microsoft Data Access Components) to enable Universal Data Access. These components include
ActiveX Data Objects (ADO), Remote Data Service , (RDS, formerly known as Advanced Database
Connector or ADC), OLE DB , and Open Database Connectivity (ODBC).
Sharing the Data with Various Applications
6/1/2000 H. A. Neal 19
WWW Access
• ASP (Active Server Page) was chosen as our primary web publishin g
tool
• ASP is Microsoft’s latest server - based technology to create interactive
HTML pages for a www site
• We used a freeware version -- ASP - db, which publishes our database
to www
• The following slide shows the complete code to access any table in the
database
6/1/2000 H. A. Neal 20
For general access to our production database we have found an ASP based product which quickly
and easily “publishes” our database to the WWW: ASP-db. There is a free version available for
download from http://www.aspdb.com and commercial versions of varying capability for purchase.
To demonstrate how easy it is to accomplish this task, here listed below is the complete code to
access to any table in our production database, as well as filtering and download options:
<% Response.Buffer = True %>
Welcome to the UM ATLAS Production Database Page.
<%
Set MyDb=Server.CreateObject("ASPdb.Free") ' Create the ASP-db object
MyDb.dbQuickProps="1;UM_DB;*;grid;4,auto,lightgrey" ' Set its std prop.
MyDb.dbDBType = "SQL" ' It is an SQL database
MyDb.dbNavigationItem =
"top,prev,next,bottom,gridrow,filter,download,color,reload"
MyDb.aspdbfree ' Display it!
%>
Publishing a Database to the Web
6/1/2000 H. A. Neal 21