CMON
CMON is CLAS Online Data Monitoring program. It does real time event reconstruction using old 'sda' program rewritten to C and modified for multithreaded environment.
Algoritms and Structure
Code location: $CLON/src/cmon. Following describes core components.
Pattern recognition library, located in prlib.s:
- ec_export.c - fills ECPI bank
- eclib.c - EC (Forward Calorimeter) calorimeter reconstruction library
- iclib.c - IC (Inner Calorimeter) reconstruction library
- pr_export.c - interface to offline packages, in particular makes DC1 bank
- prlib.c - Drift Chamber pattern recognition, in particular Road Finder
- sglib.c - Drift Chamber Segment Finder
Track reconstruction library, located in trlib.s. -r--r--r-- 1 boiarino clas 1350 Feb 25 2005 alu.c -r--r--r-- 1 boiarino clas 9612 Nov 3 2007 cmlib.c -r--r--r-- 1 boiarino clas 1128 Feb 25 2005 dcbrun.c -r--r--r-- 1 boiarino clas 13009 Nov 3 2007 dcdcam.c -r--r--r-- 1 boiarino clas 2709 Feb 25 2005 dcdocam.c -r--r--r-- 1 boiarino clas 22517 Nov 3 2007 dcdsect.c -r--r--r-- 1 boiarino clas 1872 Feb 25 2005 dcerun.c -r--r--r-- 1 boiarino clas 15654 Feb 25 2005 dcfield.c -rw-r--r-- 1 boiarino clas 10303 Mar 14 2010 dcfinde.c -r--r--r-- 1 boiarino clas 24888 Nov 3 2007 dcfit.c -r--r--r-- 1 boiarino clas 8977 Feb 25 2005 dcfitsl.c -rw-r--r-- 1 boiarino clas 43991 Dec 7 2010 dchist.c -r--r--r-- 1 boiarino clas 6816 Feb 25 2005 dcicyl.c -r--r--r-- 1 boiarino clas 7246 Feb 25 2005 dcipln.c -rw-r--r-- 1 boiarino clas 1473 Oct 30 2007 dclast.c -rw-r--r-- 1 fklein clas 2130 Nov 2 2007 dcpdst.c -r--r--r-- 1 boiarino clas 13628 Feb 25 2005 dcrkuta.c -r--r--r-- 1 boiarino clas 2279 Feb 25 2005 dcrotds.c -r--r--r-- 1 boiarino clas 6060 Feb 25 2005 dcstat.c -r--r--r-- 1 boiarino clas 8480 Feb 25 2005 dcswim.c -r--r--r-- 1 boiarino clas 6419 Feb 25 2005 dcswimvt.c -r--r--r-- 1 fklein clas 1837 Nov 2 2007 dctodst.c -r--r--r-- 1 boiarino clas 13565 Feb 25 2005 dctrfit.c -r--r--r-- 1 boiarino clas 4765 Feb 25 2005 dctrmat.c -r--r--r-- 1 boiarino clas 25659 Nov 4 2007 sclib.c -rw-r--r-- 1 boiarino clas 6001 Jan 29 2009 stlib.c -rw-r--r-- 1 boiarino clas 42033 Mar 14 2010 tglib.c -r--r--r-- 1 boiarino clas 550 Feb 25 2005 trbos.c -r--r--r-- 1 boiarino clas 14272 Feb 25 2005 trconfig.c -r--r--r-- 1 boiarino clas 2248 Feb 25 2005 trinit.c -rw-r--r-- 1 boiarino clas 3835 Mar 14 2010 trlib.c
Road Maps
Road maps are used by Pattern Recognition. To generate road map following command must be used:
makefulldict
If ran without parameters it will show usage:
Usage: makefulldict IWmin IWmax Pmin Pmax Charge [THETAmin THETAmax] GeV/c Degree Output will go to the prlink.bos file in the current directory.
Go to $CLON_PARMS/cmon/prlib/DICT/ directory and adjust local cmon.config file. Then run makefullduct, for example:
makefulldict 1 130 0.5 1.0 -1.
It will generate roads scaning starting point from wire 1 to wire 130, momentum from 0.5GeV/c to 1.0GeV/c for negative particles.
Several dictionaries can be merged by running
mergedict
with following usage:
Usage: mergedict <dictfilename1> <dictfilename2> Output will go to the prlink.bos file in the current directory.
Calibration Constants
Calibration constants are stored in offline database. It can be accessed at this link.
Calibration constants must be extracted from offline database and stored in a form of map files to be used by CMON. To extract information from database to maps, db2clonmap.pl script must be used. It can be run with following parameters:
db2clonmap.pl runMin=<minimum run> runMax=<maximum run> \ [system=<system name>] \ [skip_run_control=<non-zero to skip RUN_CONTROL system>] \ [runIndexTable=<run index table name>] \ [time=<date/time of validity>] \ [hostname=<db server hostname>] \ [quiet=<non-zero to supress printout>] \ [help=<non-zero for usage message]
For example, to extract tagger calibration parameters goto $CLON_PARMS/Maps and run
db2clonmap.pl system=TAG_CALIB runMin=1 runMax=1000000
it will create subdirectory Maps_1-1000000, create TAG_CALIB.map inside and fill it up.
Default runIndexTable is RunIndex. For some run periods calibration constants are stored under different runIndexTable name, for example for g8b runIndexTable was calib_user.RunIndexg8b. In that case use command
db2clonmap.pl system=TAG_CALIB runIndexTable=calib_user.RunIndexg8b unMin=1 runMax=1000000 db2clonmap.pl system=SC_CALIBRATIONS_V2 runIndexTable=calib_user.RunIndexg9 runMin=1 runMax=1000000
To extract entire database run following command (it is important to use 'skip_run_control=1', otherwise it takes forever)
db2clonmap.pl skip_run_control=1 runMin=1 runMax=1000000
After it finished, move all *.map files to $CLON_PARMS/Maps.
Calibration databases can be dumped in a form of ascii file using following procedure:
$CLAS_TOOLS/caldb/caldb_show_constants_run.pl s=TAG_CALIB ss=tag_t i=ci r=40000 > /home/boiarino/z123
JUST FOR INFORMATION, DO NOT DO THAT: To write it back remove first two lines and type:
$CLAS_TOOLS/caldb/caldb_write_and_link.pl s=TAG_CALIB ss=tag_t i=ci min=40000 max=50000 ci="test1" f=/home/boiarino/z123