The CMGEO flow diagram is presented below. This part interfaces with UGINIT via a call to DCMSGEOM and tries to read constants structure from the input GEANT.RZ file (using IODB key word ``DETI'' and ``RGET'' as a control card). If the requested file does not exist or there are any problems with the GEANT structure then the program recreates this structure using title data file(s) and saves them (structures) optionally as the output GEANT.RZ file (using IODB keyword ``DETO'' and ``RSAV'' as the control card).
* | |->DCMSGEOM (*) steering for reading of detector titles * | | | * | | |->DE_PINI (*) particle table initialisation * | | | |->PYINIT Use PYTHIA particle tables * | | | |->IO_OPEN_FILE (*) * | | | |->LULIST * | | | |->LUGIVE Use JETSET interpreter * | | | |->IO_CLOSE_FILE (*) * | | | * | | |->IO_OPEN_FILE (*) Opens the input rz file * | | | |->DE_OPEN (*) * | | | |->GLOOK/GRFILE/GRIN/GREND from rz-file if any * | | | |->IO_CLOSE_FILE (*) * | | | * | | |->DE_SETUP (*) Interpret setup information * | | | |->GETNUM * | | | |->DCDECO (*) * | | | |->DE_FORM (*) Form identifier of the setup * | | | * | | |->IO_UNIT (*) Check unit for split title file * | | | * | | |->DC_TIT (*) load one split file * | | | |->IO_DIR (*) * | | | |->TZINIT * | | | * | | |->TZINIT Read titles, initialise field map, creates * | | | | CMS geometrical setup * | | | |->TZUSER (*) Interprets the title banks and converts * | | | | into GEANT structure * | | | |->DCVALU (*) Test validity of the title block * | | | |->DCGEAN (*) * | | | | |->DCVALU (*) * | | | | | * | | | | |->DC_ACT (*) * | | | | |->DCVOLU (*) Create a new volume * | | | | | |->GLOOK * | | | | | |->DCSVOL (*) * | | | | | |->DCMATF (*) Find a medium * | | | | | |->DCMATM (*) Create a new medium * | | | | | | |->DCMATF (*) * | | | | | | |->GSMATE * | | | | | | |->GSMIXT * | | | | | | |->GSTMED * | | | | | | |->GSTPAR * | | | | | |->GSVOLU * | | | | | |->DCRPAR (*) Reduced volume parametrisation. * | | | | | |->GSVOLU/GSPOS/GSATT * | | | | | * | | | | |->DCDVN (*) Create division * | | | | | |->GLOOK * | | | | | |->GFPARA/GSVOLU/GSPOSP * | | | | | |->GSDVN * | | | | | * | | | | |->DCDVN2/DCDVT/DCDVT2/DCDVX (*) Divisions * | | | | | * | | | | |->DCNEAR/DCNEXT/DCORD (*) Ordering techniques * | | | | | * | | | | |->DCPOS/DCPOSP (*) Position the volumes * | | | | | |->DCROTM(*) * | | | | | |->GSPOS * | | | | | * | | | | |->DCSATT (*) Set attributes * | | | | | |->DCLOOK (*) * | | | | | |->GSATT * | | | | | * | | | | |->DCDET/DCDETV/DCDETA (*) Sensitive detector * | | | | | |->DCVALU (*) * | | | | | |->DCLOOK (*) * | | | | | |->GLOOK * | | | | | |->GSDET/GSDETV/GSDETA * | | | | | * | | | | |->DCDETH/DCDETD/DCDETT/DCDETU (*) Hit/Digit/ * | | | | | |->DCVALU (*) Trigger-primitive/User * | | | | | |->DCLOOK (*) parameters * | | | | | |->GLOOK * | | | | | |->GSDETH/GSDETD/GSDETU * | | | | | * | | | | |->DCGMAT (*) Material table * | | | | |->DCGMIX (*) Mixture table * | | | | |->DCTMED (*) Tracking medium parameters * | | | | |->DCTPAR (*) Special TMED parameters * | | | | |->DCROTX (*) Rotation matrices * | | | | |->DCSENS/DCMEDI (*)Sensitive media * | | | | |->DCMEDU/DCMATU (*)User parameters for medium * | | | | | and materials * | | | | | * | | | | |->DCHITS/DCHITR (*)Hit banks * | | | | | |->GLOOK * | | | | | |->DCLOOK (*) * | | | | | |->GFATT * | | | | | |->DCVALU (*) * | | | | | |->TZFIND * | | | | | |->GSDETH/GSDETR * | | | | | * | | | | |->DCPGON (*) Polygon/Polycones * | | | | | * | | | | |->DCCMSD (*) Calls special routines * | | | | | |->DTAVER/... (*) Special routines * | | | | | * | | | | |->DCTPNT (*) Position two-point volumes * | | | | | |->DC2PNT (*) * | | | | | |->DCROTM (*) * | | | | | |->GSROTM * | | | | | |->GSPOSP * | | | | | * | | | | |->DCCKOV (*) Define constants for Cerenkov * | | | | |->DCMATM (*) * | | | | |->GSCKOV * | | | | * | | | |->DCGEOM (*) Special polygon/polycone handling * | | | | |->DCVALU (*) * | | | | |->DCPGON (*) * | | | | |->DCSYMP (*) * | | | | |->DCSVOL (*) * | | | | |->DCROTM (*) * | | | | * | | | |->DCDRAW (*) Interface to GDRAW routines * | | | | |->DCVALU (*) * | | | | |->GGCLOS * | | | | |->DE_SATT (*) * | | | | | |->GLOOK * | | | | | |->GFATT/GSATT * | | | | |->GDELET/GDOPEN/GDCLOS/GDRAW/GDRAWC * | | | | |->DCSATT (*) * | | | | * | | | |->GGCLOS * | | | | * | | | |->DCSETU (*) Interpret SETUP data card * | | | | |->DE_SETUP (*) * | | | | * | | | |->DCONST (*) Load material constants * | | | |->DC_ACT (*) * | | | |->DCGMAT (*) * | | | |->DCGMIX (*) * | | | |->DCTMED (*) * | | | |->DCTPAR (*) * | | | |->DCROTX (*) * | | | |->DCSENS (*) * | | | |->DCMEDI (*) * | | | * | | |->IO_UNIT (*) * | | | * | | |->DE_SETS (*) Complete Sets structure * | | | |->GLOOK * | | | |->GSATT * | | | |->GSDET * | | | |->GSDETH * | | | * | | |->TZFIND * | | | * | | |->DE_SATT (*) Set special attributes * | | | * | | |->DE_PART (*) Complete particle table * | | | |->IG2JET (*) * | | | |->LUNAME/LUCOMP/LUCHGE * | | | |->IJET2G (*) * | | | |->GSPART * | | | |->GSDK * | | | * | | |->DE_PARX (*) Update particle table in memory * | | | |->LUCOMP * | | | * | | |->GGCLOS * | | | * | | |->DE_MEDI (*) Special action for tracking media * | | | |->GPHYSI * | | | * | | |->GLOOK Print GEANT structures * | | |->GPMATE/GPTMED/GPROTM/GPVOLU/GPSETS/GPPART * | | | * | | |->DE_PRNT (*) Print run conditions * | | | * | | |->DTRKGET (*) Load track parameters by scanning * | | | |->UTLOOPD (*) geometry tree * | | | |->DCTYPE (*) * | | | |->UTLOOPX (*) * | | | |->GFATT * | | | |->UTDETV (*) * | | | |->GLVOLU * | | | |->GFINDS * | | | |->FUSER (*) * | | | * | | |->IO_OPEN_FILE (*) Saves the geometry constants * | | |->DE_OPEN (*) * | | |->GLOOK/GRFILE/GROUT/GREND to the rz-file if any * | | |->IO_CLOSE_FILE (*) * | |