Full Simulation

This will give a brief roadmap to the nld-specific, ie non-arve (gismo) code.

Code Organization

The nld code as of this writing is restricted to creating detector volumes and arranging for digitization of energy deposit in active media. A simple smearing of MC particle parameters is done as an early 'track fit'.

main:
BeamPipe inert tube
Coil inert tube
VXDSystem digitized hits via TkDig
TrackerSystem digitized hits via TkDig
EMCalSystem digitized hits via CellArray
HADCalSystem digitized hits via CellArray
TrackSystem 'fitted' tracks
MCPrint MCParticle I/O

The tracking systems, VXD & Tracker, share a common digitization scheme, while the calorimeters share another one. All these systems are defined by an ascii input file, which is handled by the iniData class.

The Systems define their geometries in their constructors and set up their digitizations via Digitizerinterface, whose score function calls the System's addHit function when the particle is in the System.

Output is controlled by DataControl, which is a System itself, and calls all the other Systems that have registered with it. DataControl calls their write functions.

Windows NT/95

The SLAC central fileserver's group disk (V:\) contains an LCD\ folder holding all the LCD code. The latest version is in the lcd-working\ folder, while older archives are in named folders, like nld-june98. There is also an installation of root here. Visual C++ 5.0 is used and the workspace file will be found in the nld (sub)folder. The nld project defines the GUI version; conld the batch. Note that one must apply a service patch of level 3 or higher to Visual C++. See the instructions for setting up from scratch (ie arve and nld zip files).

You will need a couple of  environment variables to run the code:

> set LCD_DIR=<directory containing executables nld_win and nld_bat>
> set PEGS4PATH=%LCD_DIR%/PEGS4

SLAC UNIX

The code is kept in nld group space: /afs/slac.stanford.edu/g/nld (hereafter referred to as $LCDROOT)).The latest version of the code is called lcd-working; archives are named, usually by date. From time to time when production releases happen, it may be that the current lcd-working has been moved to a new directory pending installation of the new version.

The nld code is arranged to allow binaries for multiple architectures. A common source area is shared; the Gnu Makefile lives here. Batch (nld_bat) and X-windows (nld_win) versions of the exe are available in the bin/ directory. We are using the egcs g++ compiler.

You will need a couple of  environment variables to run the code:

> setenv LCD_DIR <directory containing executables nld_win and nld_bat>
> setenv PEGS4PATH $LCD_DIR/PEGS4

See the readme file that comes with the code distribution for any further requirements.

Code Use

There are default initialization files for detector geometry and generator setup. Currently on NT, they live in the nld subfolder; on unix they live in the bin/ directory. We have two generators: NBeam - multi-particle; HepEvt - reads stdHEP files.

Interactively, one can manipulate choices by menu selections. In batch, the syntax is (eg SLAC unix):

> $LCD_DIR/nld_bat Detector.ini 'generator-name' Gen.ini 100 mydir/output.dat runNumber rndmSeed

where the first two ini files specify the geometry and generator properties; '100' is an example of 100 events; and the .dat file is the filespec of the output file. (Note for SLAC unix: farm output files go to /nfs/surrey02/nld. This is mounted only from batch farm machines - morgans, percheron, pintos, etc. /nfs/surrey01/work/ is available for general users as scratch space.

 


Generators

Particle input is obtained from one of two generators:

Farm Work

A scheme has been devised to handle bulk running of MC jobs.


R.Dubois Last Modified: 01/13/04 12:37