Applications

Three types of application: AIX only, NT only, both AIX and NT versions.  Some applications are supported and some are not and I'll make note of each.

AIX and NT

ROOT

A command driven HEP analysis package.  We currently use the beta versions of ROOT.  I'll cover initialization, macros, and top level commands for both AIX and NT. ROOT isn't really supported at SLAC but has proven maintainable for analysis purposes.

AIX

Before you can use ROOT you need to set some environment variables in your .cshrc (assuming C-shell).  Root needs a system directory:

setenv ROOTSYS /afs/slac/g/nld/root/  (provided the site nld space is populated when you read this)

and you need to add the binary directory to your path:

setenv PATH $ROOTSYS/bin:$PATH

as well as the library files:

setenv LIBPATH $ROOTSYS/lib

After this done, you will have access to the executable: root and the utilities rootCint (the ROOT C interpreter) and h2root the PAW Ntuple conversion tool.  The executable starts rootCint of course, and you access ROOT objects through it.

NT 

After you have created a ROOT directory and have unpacked the libraries, executables, etc, you can add the binaries to your path at your nearest command prompt or root.bat:

PATH = %PATH% ; */root/bin

where * might be a root directory of your design.  You don't even really need to do this of course, just move into the binary directory and fire it up (default PATH is current).

You're all set for some analysis.  Start ROOT and take for example S:/chadc/root/valid.c, a macro we used to analysed recent NLD data, and execute it.   To list all the ROOT system commands just issue "?" (no quotations), otherwise try:

root [1] .x S:/chadc/root/valid.c

and see what happens.  If you were to create a class that extends ROOT, your data type for example, you would use .l followed by your file name.   Another useful command: class / Class.  If you run issue Class <THF1> after valid.C you should get the class definition at the stdout.  Kind of useful if you're not online.

EMACS

This is supported software on both architectures.  Richard has a manual that documents the product in much detail. 

AIX

- initialize

>> between your vanilla .login and .cshrc, the path is set: issue emacs at either a vesta or morgan prompt (although vesta would be better).

>> there are options but I didn't use any of them and found the default settings sufficient

- features: script protocol recognition, auto-backup, directory navigation

>> protocol recognition: the app recognizes C, Fortran, and C-shell/Bash scripts, at least to my knowledge (there's probably more)

>> auto-backup

You can set the interval between saves are take the default (15 secs I think).   Unsaved versions are temp files #[your file name]# and backups are ~[your file name]

This function can be turned off (see manual)

>> directory navigation: more than word processor

For example, start emacs and open a directory, say ~/.  There is a whole instruction set to manage files and directories.  Each new directory is buffered and is stored by emacs to be read in any order.

NT

If Emacs is not already set up on your machine, map //ntfs02/pub from the Network Neighborhood and enter Applications/Supported/Emacs-19.34.  From this folder run Setup-SLAC.cmd which will perform the appropriate magic (Display, etc) on your machine resulting in a Windows shortcut, a link to the executable on //ntfs02/pub.

You'll have all the functionality described for AIX version.  Remember that this app will not live on you machine and that disconnecting //ntfs02/pub will cut you off from it.

AIX only

NTUPLER

A FORTRAN app written by Dave Wagner.   This tool converts GISMO ASCII output into *.hbook file (see Code & Data).  The current release generates an ntuple file test.hbook no matter what *.root file argument is supplied.  You need to rename this file and store as the next NTUPLER is used it overwrite any file test.hbook.

See the README file in whatever space NTUPLER comes to live in for current executables and the scheme for maintaining those versions.  The latest NLD build is 980306 14:07 Version 1.01.03 as of the time stamp on these Term Documents.

ISAJET

A manual for ISAJET is on my user disk space: \\sldnt17\users\chadc\manuals\isajet713.doc.   The hope is that can be used to generate full Monte Carlo of e+ e- scattering, and to investigate SUSY events in NLD.  I used subsection "[5] Main Program" of the manual and attempted to make ISAJET a stand alone application.

At present, in my afs space: /afs/slac.stanford.edu/chadc, there are two ISAJET projects: /gisdev/isajet,  and /isajet.   The former is the most stable although it doesn't do much, the latter is a little more experimental.  Both versions compile FORTRAN code using the xlf compiler (see xlf).

Three file types pertain to ISAJET event generation: *.lis, *.car, and *.dat.

- *.car: describes the interaction to be simulated, in a format ISAJET understands (~chadc/gisdev/isajet/isajet.car).

- *.lis: not sure if this is a summary or actual data produced or what, but it seems to hold jet data for the interaction indicated in the *.car.

- *.dat: the machine dependent binary supposedly written by ISAJET.  Though this doesn't get written right now, this file should be the one used by GISMO as an event source.

ij713 runs ISAJET but the *.dat file isn't written in either of my project spaces or the NLD site space. 

NT only

Ramon Berger (x3446) is your NT administrator.  He has created a web page containing information about our cluster: http://www-sldnt.slac.stanford.edu/nt/

VISUAL STUDIO 5.0/ SourceSafe 5.0

This is the primary Development Kit for NLD code.  I've learned a few things about this product and am confused by others.   Studio itself is a powerful environment and has some very nice debugging features, but SS has some particular features that haven't been worked out yet.

VS File extensions

- Workspace Files (*.dsw): "master project file".  contains project file locations relative to each other, a "global package" listing for internal project dependencies, and the source files under source control

- Project Files (*.dsp): contains project settings, definitions particular to DevStudio development

- Browse Files (*.bsc): optional file that allow you to trace variables right in the source.  Under Project Settings, Browse Info, select "Build browse info file" and this trace feature is enabled.

So adding files to an existing project is easy.  Right-click on the project name, browse for the file and select it.  This file can be anywhere that DevStudio can see though keeping source in same directories is probably a reasonable thing to do.   Adding new projects to an existing work space requires that you choose the type of project (Win16, Win32, DLL, etc) and that you deselect "Create a new Workspace" which is the default.

Studio is possessive of files which are visible to it.  If you try to move source out of a project directory, even if you don't have the project open in Studio, it will bleat at you and will somehow disallow such an action under "Access Violation" System error.

Directories

Studio creates folders as a matter of protocol and project management: a workspace gets a new folder at the root (C:/program files/devstudio/myprojects in my case), projects added get subfolders containing respective source if you like.

Views

There are 3 different views in the Workspace panel (ALT+0): File, Class, Help

File

Presents your files nicely, under their Studio virtual project spaces.

Class

Very useful pane.  Groups objects contained under what seem to be project packages along with member data, member functions, nested objects, etc.  Double click these icons and have the source cursor appear on the line declaring the member.  Nice, very convenient.

Help

Sort of cheesy.  It's supposed to be a bit of a table of contents but its not easily browseable.  Better to use a full search from the Help pop down.

Release Status

All NLD projects are built with the DEBUG flags (see Project/Settings, C/C++ tab (ALT+F7)).  The Project Settings can be set for a release build.

DEBUG BUILD

- can be used with browse to view symbols dynamically.  Executing with F5 will load the symbols into Studio and contain the exe thread.  Breakpoints can be set (F9 on the line to be broken), symbols viewed through Debug Windows, and line-by-line execution can be managed.

- allows a link to be established between an independent running (ctrl-F5) app and Studio.  If the your project app hangs (or any app for that matter) in this mode of execution, select Build/Start Debug/Attach to Process... and Studio will link with that app symbol and give the disassembly.  You can then view the source by analyzing the stack and conducting a trace.

This feature of Studio is available to the developer of any app.  The only problem is, you never have all the code and can only view the machine instructions of some 3rd party app that has hung itself.

RELEASE BUILD

I've never created a release build.  One might assume that all the *.obj files would be destroy and the executable would be stand-alone.  Attaching to it's hung process would probably be as futile as attaching to any other code.

Custom Build

Under Project/Settings, Custom Build tag (ALT+F7) select the Project you are interested in, select C/C++ tab, then click Project Settings dialog.   See the MS C++ distribution for possible flags and output options for the build.

Makefiles

The command line utility for building Makefile projects is NMAKE.  If you can convert a Makefile from elsewhere into a Microsoft Makefile, you can use NMAKE to build that project outside of the Studio environment.  It's sort of a deprecated feature of the whole distribution and speaks to the legacy of past developers as far as I can tell.  

In principal, procedural, multistep builds can be conducted under the Custom Build tab.  The MS documentation actually discourages the use of this feature and suggests link commands be switched under the Link tab, Project Options.  As usual, they want you to upgrade and develop "the Microsoft way".  This is fine in some cases, but, well, you know how that story goes.

SourceSafe

Hated it.  This product seems to be somewhat lacking in functionality.  We could not find a way to stop overwriting each others work.  It works fine with if one uses it alone, but that's not really the point.  I've written a HOW TO for submitting your Workspace for source control, but I don't recommend doing it.

Short story: Couldn't make it work, try CVS.

EXCEL

Didn't expect to use this app much but it turned out to be quite useful.  I created 3 *.xls for the validation studies: ptldata, Quicky, Tracks.  While there is nothing complicated about those projects, I added some functionality to my configuration.

Select Tools/Data Analysis... and you get a dialog full of useful little statistical widgets.  The EXCEL track Id histograms were created with this tool.  There are also full Regression analysis instructions which give you c2 and some additional statistics that the vanilla best fit lacks.

I learned that EXCEL will eat Flat files.  Say you want to analysis a GISMO data file.  Select File/Open... and select the file.  An import wizard automatically fires up and asks you for some delimiters to integrate the file into EXCEL (Columns, qualifiers, etc).  I found this function particularly useful.

FrontPage

This product is trivial to use.  When you start FP98, you will get the FP Explorer and be prompted to connect to an FP web.  If you are using my configuration of SLDNT4, you will have the NLD web to choose from (and your own if you have created it).   Double click *.htm documents to start FP Editor, or View it with an empty document, and Voila: webmaster.

FrontPage is great for processing simple pages.  Play with it like you would Word97 or any other word processor for that matter.  You will have write access to the NLD page where my studies and GISMO progress is documented. 

If you feel ambitious, we couldn't get the ActiveX hit counter to work.  Try an applet, or better yet, try creating an ActiveX control from VS.

Speak with Tony Johnson about setting up a personal FrontPage Web.

IPEG

The PC version of PEGS (a preprocessor for EGS) generates material for EGS code in the NLD GISMO project.  I documented my use of this application as Material Generation on the NLD web.  Most everything is there and the application is not that hard to use.

OUTLOOK

Again, Tony Johnson is the one to consult with.  If you decide you want an exchange mail account, he will register you with the server and you're done.  Visit the outlook web site   


C.Colgur  Last Updated: 01/13/04 12:45