other subroutines in alphabetical order:
A D
G M
R S
T V
main routine
calls:
shinit.sfcalled from: shell
shell initialization
calls:
called from: shell
main analysis routine
structure:
rdevt
if (evnt_type = 3 or 4) decode_em_isp
if (evnt_type = 15)
decode_sad
if (evnt_type < 3)
evinit
decode
if (overlay) overlay_evt
if (trigmsk = 0) or (trgmsk.&.trgword <> 0)sfpr_init
if (rdemul) rdevmx
if (reproc)
if (ismont) tk_mc_matchif (dcproc) dcanal
if (vcproc)
vdanal
vcanal
if (sfproc1..3) sfanal1,2,v
if (midproc) midanal
if (rdemul) tk_emvx_match
if (not rdemul) primrefit
if (emproc) emanal
if (prestar_proc)
get_station
if (iok_station > 0) prestar
if (star_proc)
if (not prestar_proc) set_start_vert
if (iok_start_vert_ > 0) star_sstar2
if (prerefit_proc) prerefit
usanal
grevt
wrtevtQUIT if selected in menu
if (evnt_type >2) decode_isp
called from: shell
main shell finish routine
calls:
called from: emanal
Alex's EMCAL cluster search, calls some of his routines
called from: dcthit2,sfvdhits2,tkksy,tkdcambig,tkvcds,vcthit,vdanal
finds closest hit to position in selected plane
called from: tkksy
bsthit for emcal clusters
called from: dclhit2
adds temp line array to qdlin array
called from: dclmat
copies temp track to final DC track array
calls: dctcln
DC track reconstruction
structure:
(check for sufficient, > max hits)
loop (1..ndvw)
dclin
dclcln
if (dplev >1) dprlin
dclmat
loop (1..ndctk)
dcthit2
dctcln
called from: tkdcem
fits DC tracks to given emcal cluster
calls:
called from: dclcln,dclmat3,svkdpr
copies line parameters into temp array
called from: dctcln,dcthit,dcthit2,vdanal,tkfix
copies DC track parameters into temp array
called from: decode
fills reconstructed line arrays
cleans up DC line buffer
calls:
called from: dclin
looks for DC hits on planes in selected view
calls:
makes lines in view ivw
calls: dclhit2
called from: dclhit2
fits temp line to 2 parameters
called from: dcanal
matches up line segments in different views to create track
calls:
called from: dclmat
matches track in 2 views to line in 3rd view
calls: dcgetl
called from: dclcln
puts the line parameters back where they belong
called from: dctcln,dcthit,dcthit2,vdanal,tkfix
puts the track parameters back where they belong
cleans out ghost tracks
calls:
called from: dclmat,dcthit,dcthit2,dcemdhits
fits track using temp array, result back to temp
calls: eqslv
adds hits to selected track and refits
calls:
called from: dcanal
re-finds(?) hits on selected track and refits
calls:
called from: shanal
raw data decoding
structure:
(lot of flag-setting)
if ((not ismont) and sf_deco)
loop (1..nrec)if (sfdeco1) decode_sf
if (not sfdeco1) decode_sf_fib
sf_translate
ON ityp =rec_hits : if (not redecode)
htbufi
sf_translate
4302 :
if (dc_deco)
decode_vc
decode_ksu
1920: stml
2280: if (em_deco) decode_em
4448: decode_trig
2341: mod_2341
2249: nothing
2228: decode_tdctrig
2738: if (mid_deco) decode_mid
rec_mctrk: mevbufi
if (redecode) loop (1..ntotpl)
loop(1..tru_nhitpl)
thmget
if (ipl < i2sf) mcaddsfht
if (ipl >= i2sf) mcadddcht
rec_evt_info: evtbufi
if (not redecode)
rec_trk: tkbufi
rec_strk: stkbufi
rec_slin: slibufi
rec_vtrk: vtkbufi
rec_drtk: dtkbufi
rec_dlin: dclbufi
rec_vtx: vtxbufi
rec_em: embufi
rec_trig: trgbufi
4345559: vsbufi
4542277: -
called from: decode
decodes more EMCAL data
called from: shanal, decode_isp
A. Kulik interspill stuff (event type 3,4)
called from: shanal
interspill record decoder
calls:
called from: decode
decodes KSU data
calls:
called from: decode
decodes muon ID data
called from: shanal, decode_isp
decode SAD records for event type 15
called from: decode
decodes sf
called from: decode
decodes sf if flag sfdeco1 is not set
called from: decode
decodes TDC trigger counters
called from: decode
decodes trigger bits
called from: decode
decodes VDC data
calls: vdcfill
called from: evinit
defines target configuration depending on run #
prints out info about line
calls: tkmget
called from: decode
fills rec. track arrays
called from: shanal
EMCAL analysis control
calls:
called from: decode
Fills EMCAL arrays
called from: shinit
initializes calorimeter related variables
called from: dctfit,sftfit,tkfit,vctfit,vdtfit,tkfituv
solves least square equation set
called from: shanal
event intialization
calls:
called from: decode
fills event info array
called from: tkdcem
fills emdhits array with em hits for given x,y
called from: vtxadd
fits tracks to vertex
calls:
called from: tkdcem
returns y pos of em cluster for given x
returns multiple scattering error for track in temp array
called from: tkfix
given station # returns downstream station #
called from: mevtki
finds "aesthetic"(?) start and end z pos for tracks
called from: shanal
Main graphics routine
structure:
if (fpass) grinit (0)
grinit
if (detview1..8) grview1..8
if (ismont and grpl_tru) grmchits
grmenu
called from: grevt
initializes graphics
called from: grevt
plots MC hits and tracks
calls: thmget
called from: grevt
Handles the graphics menu together with grmenu2.sf
called from: grevt
8 different routines for various event display views
called from: tkseg
gets or puts temp array into save array
called from: decode
unpacks hit buffer
called from: svkdpr
makes KSY lines using supplied vertex position
called from: decode_ksu
fills KSU hit array
called from: decode_ksu
maps ksu drift chamber
called from: rdempeds
Reads LED values from file
called from: sflfit,msffit,vclfit
not on E872 website!!! But in shell library
called from: decode
adds single mc hit to sf output (lots of Reinhard pulseheight stuff)
calls:
called from: decode
adds single mc hit to non-sf plane and to mc_truth common, contains three d's in a row!
calls: puthit
called from: decode
fills MC hit arrays
calls: mevtki
called from: mevbufi
fills MC track arrays
calls:
called from: shanal,svkdpr,tkfix
looks for hits in the muon ID associated with tracks
calls: bsthit
called from: decode
decodes module 2341 (?)
called from: multsft
variant of sflfit
calls: linfit
called from: sfpr_init
variant of sflmat_stn not requiring unique matches
calls:
called from: shanal
overlays hit, calorimeter info from last event
called from: emanal
EMCAL pattern recognition
called from: shanal
executes all basic refitting tasks
calls:
called from: shanal
called from: mcaddsfht,mcadddcht
Adds single hit to qhit output structure
called from: evinit
reads in changeable sheet configuration
called from: shinit
reads myanal.ctl file, sets control variables
called from: shinit
reads cut file, sets cut variables
called from: evinit
reads in drift velocities for KSU, VDC
called from: evinit
reads in run dependent pedestal files
calls: led_array
called from: shanal
reads emulsion vertex filed (.ecv)
called from: shanal
reads one event from DAFT record
called from: evinit
reads in detector geometry from file, makes alignment correction
called from: sflmat_stn,multsft,sfvdhits
bsthit for SF
called from: decode
translates SF cluster position into E872 coords
called from: sflhit,sflhit_stn,tkseg,tkfix
adds temp line array to qdlin array
calls: sflcln
called from: sflmat,sflmat_stn,tkseg,tkfix
copies temp array to final SF track array
calls: sftcln
called from: shanal
sf tracker without multiple scattering
structure:
sfvdhits
loop (u,v views, all stations)
sflin
sflcln
loop (1..nsfstn)
sflmat
if (splev >0) sprlin
sftmat
tkcln
sfthit
sfvdhits2
called from: shanal
sf tracker projecting hits into SF station 4 whilst looking for hits
structure:
loop (all stations, u and v view)
sflin_stn
sflcln
loop (1..npr)
sflmat_stn
sftcln
sftrkmat1
sftrkmat2
sftcln
sfvdhits2
sf tracker using vertex constraint
structure:
loop (1..npr)
sflin_stn
sflcln
sfvtx
if (nvx(1) > 0)
sflinv_stn
sflcln
if (nonly) return
if (nvx(1) > 0)
sflin_stn
sflcln
sfvtx
if (nvx(2)>0)
sflinv_stn
sflcln
sflin_extnd
called from: sflcln,sflin_extnd,sflinv_stn,sflmat_stn,multsft,sfvtx,sprlin,tkseg,tksfds
,sflinwght,tkfix,vtxsfl
copies line parameters into temp array
called from: multsft,sftcln,sftmat,sftmat2,sftrkmat1,2,tkseg,tkfituv,tkfix
copies selected sf track parameters into temp array
called from: sfanal1,sfanal2,sfanalv,sfaddl,sflin_extnd,vtxsearch,sflinwght
cleans up sf line buffer, home of the infamous variable "shit1"
calls:
called from: sflhit,sflhit_stn,tkseg,tkfix
fits temp line
calls: linfit
called from: sflin
looks for SF hits
calls:
called from: sflin_extnd,sflin_stn,sflinv_stn
looks for SF hits between selected stations
calls:
called from: sfanal1
makes sf line in selected station and view
calls: sflhit
called from: sfanalv,vtxsearch
extends SF lines to downstream station
calls:
makes lines spanning selected stations in selected view
calls: sflhit_stn
called from: sfanalv,vtxsearch
makes sf lines spanning selected stations in selected view using vertex constraint
calls:
called from: vtxsearch
finds vertex weight
calls:
called from: sfanal1
match up line segments in each view
calls:
called from: prerefit,sfanal2,vtxsearch
matches line segments in each view to create tracks
calls:
called from: shanal
initializes SF pattern recognition
calls: multsft
called from: sflcln,sflinv_stn,sflmat_stn,tkseg,sflinwght,tkfix
Copies line parameters from temp array back to qslin
called from: sftcln,sftmat,sftmat2,sftrkmat1,2,tkseg,tkfix
puts temp track array back into buffer
called from: sfanal2,sfaddt,trkfix
cleans out ghost tracks
calls:
called from: sflmat,sflmat_stn,tkseg,tkfix
fits track using temp array, results in temp
calls: eqslv
called from: sfanal1
refits final tracks, looks for hits in sf
calls:
called from: sfanal1
matches SF tracks between stations
calls:
called from: sftmat
follows track in temp array downstream
calls:
matches up SF tracks at the target
called from: mcaddsfht
translates sf hit into fiber number
called from: mcaddsfht
translates fiber number into sf hit coordinate
called from: sfanal2
matches final tracks, SF tracks to SF tracks
calls:
called from: sfanal2
matches SF tracks to other SF tracks
calls:
adds SF hits to final tracks
calls:
called from: sfanal1
adds VC/DC hits to SF final tracks
calls:
called from: sfanalv
Finds an SF vertex
calls: sfgetl
called from: decode
fills reconstructed track arrays
called from: sfanal1
prints out line parameters
calls: sfgetl
called from: decode
fills reconstructed track arrays
called from: decode
decodes emcal data
called from: prerefit
pattern recognition using SF,VC,KSU,DC
calls:
called from: decode,grmchits,mevtki
gets true MC hit
called from: mcaddsfht
adds true MC hit to buffer
called from: shanal
matches emulsion vertex tracks to final tracks
calls: vtxfind
called from: shanal
matches reconstructed and MC tracks
called from: sflmat_stn,sftmat,sftrkmat2,dcemdhits,tkdcambig,vdanal
adds temp track to track buffer
calls: tkcln
called from: decode
fills reconstructed track arrays
called from: sfanal1,svkdpr,tkadd,vdanal
cleans out ghost tracks
calls:
called from: tkksy
Fits different DC ambiguities to find final track
calls:
called from: svkdpr
makes final tracks using DCX lines and emcal hits
calls:
called from: sflmat_stn,sfthit,sftmat,sftmat2,sftrkmat2,sfvdhits,dcemdhits,tkdcambig
,tkseg,tkvcds,vdanal
final track fitting
calls: eqslv
track fit in magnetic field
calls:
called from: filvec
fits track in mosty upstream sf station
calls:
called from: vtxsfl
checks final tracks for SF/DC lines
calls:
called from: sflmat_stn,sfthit,sftrkmat1,sfvdhits,sfvdhits2,svkdpr,tkcln,tkfsds,tkvcds
,vcanal,vtx_update,vtxfind,vtxadd,tkfituv,tkfix
puts selected track in temp array
called from: svkdpr
creates tracks using DC X and KSY lines
calls:
called from: mevtki
adds temp mc track to mc track buffer
gets mc track and puts it in temp array
projects track to given z pos
called from: sflmat_stn,sfthit,sftmat2,sftrkmat1,2,sfvdhits,sfvdhits2,tkcln,tkseg,tkfsds
,tkvcds,vtx_update,vtxfind,tkfix
puts temp array back into selected track
called from: sflmat_stn
segments final track
calls:
SF line search using downstream tracks
calls:
called from: tkvcds
swims track in temp
adds VC hits to track
calls:
called from: decode
Fills trigger counter arrays
called from: shanal
Do whatever you like here
called from: shfin
user finish routine (dummy)
called from: shinit
user initialization routine
called from: vclhit2
adds temp line to qvlin array
calls: vclcln
called from: vclmat
copies temp track array to final vc track
calls: vctcln
called from: shanal
VC analysis jacket routine
structure:
loop (1..ntrks)
tkget
vclin
vcclns
vclmat
vctcln
called from: tkvcds,vclclns,vclcln,vclmat3,vprlin
copies vc line from qvlin to temp
copies VC track to temp
cleans up VC line buffer
calls:
cleans out VC ghost lines
calls:
called from: vclhit2
fits temp VC line
calls: linfit
called from: vclin
looks for VC hits using temp line params
calls:
finds VC lines
calls:
called from: vcanal
matches line segments in each view, creates track
calls:
called from: vclmat
matches 2 line track to 3rd view
calls: vcgetl
puts line parameters from temp to qdlin
puts temp track into track buffer
cleans out ghost tracks
calls:
fits track using temp array, results -> temp
calls: eqslv
called from: vclmat
adds hits to selected track, refits
calls:
called from: shanal
VC line and track finding based on existing DC tracks
structure:
if (ndctk = 0) return
loop (1..ndctk)
dcgett
loop (over VCX planes)
loop (1..nhitpl(ipl))
if (gotone)bsthit
if (vtnht > 8) vdtfit
if (vtchi < vcchicut)
called from: decode_vc
Fills VDC arrays
called from: tkfits
VC/DC fitting
calls: vdswim
called from: vdfits2
swims track through VC planes
called from: vdanal
fits VC track using DC track as constraint
calls: eqslv
cern vertex finding routine
called from: vclin
prints out info about VC line
calls:
called from: decode
fills reconstructed track arrays
called from: prerefit,vtxfind,vtxadd,vtxsearch,vtxsfl
updated UV vertex array
calls:
called from: vtxfind
adds track to selected vertex
calls:
called from: decode
fills event info array
called from: prerefit,tk_emvx_match
simple vertex finding program
calls:
called from: prerefit
vertex grid search
calls:
called from: prerefit,vtxsearch
vertex search with SF lines
calls:
writes out raw data to file
A description of the STAR routines can be found here.
Author: Patrick Berghaus