Software

From New IAC Wiki
Jump to navigation Jump to search

Getting the analysis software

Minimal CLAS software for EG1 analysis

download BOS file utilities from the CLAS/packages CVS repositroy

download files from the JLAB CVS repository using the command

type the command below in order to tell CVS to use ssh

setenv CVS_RSH ssh

if you have an account on the JLAB computers you can do

cvs -td :ext:USERNAME@cvs.jlab.org:/group/clas/clas_cvs co packages/fpack

where USERNAME is your JLab username

The above will download packages from JLAB's CVS repository

I only needed the following subdirectories under the "packages" subdirectory to compile the EG1 reader code.

cvs -td :ext:USERNAME@cvs.jlab.org:/group/clas/clas_cvs co packages/fpack
cvs -td :ext:USERNAME@cvs.jlab.org:/group/clas/clas_cvs co packages/cms
cvs -td :ext:USERNAME@cvs.jlab.org:/group/clas/clas_cvs co packages/Makefile
cvs -td :ext:USERNAME@cvs.jlab.org:/group/clas/clas_cvs co packages/bosio
cvs -td :ext:USERNAME@cvs.jlab.org:/group/clas/clas_cvs co packages/include

unless the environmental variable OS_NAME is set the Makefile will default to Linux.

Then "cd" to the "packages" subdirectory and type "make"

If you get the error

cc1: error: unrecognized command line option "-fwritable-strings"

then you need to remove this depreceated switch from the file

flags.Linux.mk

near line 45 in the above file change

CFLAGS += $(CLEVEL) -fwritable-strings 

to

CFLAGS += $(CLEVEL) 

Re-type "make" within the "packages subdirectory if you got the above error.

otherwise look in the lib subdirectory and see if you have make the fpack library

packages >ls ../lib/Linux/
libfpack.a

Download the EG1 dsts library

now checkout the EG1 dst library after moving up a subdirectory back to the "CLAS" subdirectory.

cvs -td :ext:USERNAME@cvs.jlab.org:/group/clas/clas_cvs co eg1_dst/dstlib


Before you can compile the EG1 software using "make" set environmental variable telling the makefile where to look for the Makefile scripts

setenv CLAS_CMS /home/tforest/src/CLAS/packages/cms

An also tell the dst make file where to put the libraries it is going to built

setenv TOP_DIR /home/tforest/src/CLAS

Now go to the dstlib subdirectory

cd eg1_dst/dstlib

and type

make lib

you should see the dst library in the CLAS/lib subdirectory

dstlib >ls ../../lib/Linux/
dst_read.o  libdstlib.a  libfpack.a

Compile the dstdump utility

now lets compile a program to read the contents of an EG1 dst file called dstdump

return to the CLAS subdirectory

cd ../../

checkout dtsdump

 cvs -td :ext:USERNAME@cvs.jlab.org:/group/clas/clas_cvs co eg1_dst/dstdump

you will also need header include files from packages/bosio to compile dstdump

 cvs -td :ext:USERNAME@cvs.jlab.org:/group/clas/clas_cvs co packages/bosio
 cvs -td :ext:USERNAME@cvs.jlab.org:/group/clas/clas_cvs co packages/include

You will need to tell the Makefile where to look for the bosio headers by setting the environmental below

setenv CLAS_PACK /home/tforest/src/CLAS/packages

go the dstdump subdirectory and compile dstdump by typing "make"

cd eg1_dst/dstdump/

if you get teh erro message

/usr/bin/ld: cannot find -ldstlib

Then you need to edit the Makefile in eg1_dst/dstdump so the line

DSTLIB = -L$(CLAS_LIB) -L$(TOP_DIR)/lib/LinuxRH7 -ldstlib

points to the CLAS/lib/Linux subdirectory or whatever OS name you are using inder CLAS/lib I changed mine to

DSTLIB = -L$(CLAS_LIB) -L$(TOP_DIR)/lib/Linux -ldstlib

and set the CLAS_LIB environemental variable

setenv CLAS_LIB /home/tforest/src/CLAS/lib/Linux

now when you type "make" under the subdirectory eg1_dst/dstdump you should get and executable


I got the following file from JLAB

/cache/mss/clas/eg1b/production/pass1/v1/4p2gev/misc/dst/dst28509_00.B00

then I ran dstdump with a switch to dump out events

dstdump >dstdump -dump 5 ~/dst28509_00.B00 -dump 15 | less

EG1 DST reader

The EG1 dsts reader is used to uncompress the EG1 DST data files for analysis. The DST library has at least 3 version now so you must use the correct DST library with your data file.

UNIX software

apt-get install paw apt-get install paw++ apt-get install xemacs

Getting Data files from JLAB

downloading to offsite place

running on JLAB farm

Contents of EG1 DST files

Name BOS bank Description
p_id EVNT.ID Particle ID 1= electron ...
1= electron
2= proton
3= neutron
4= [math]\pi^+[/math]
5= [math]\pi^-[/math]
6= [math]K^+[/math]
7= [math]K^-[/math]
8= deuteron
9= Helium 3
10= Helium 4
11= photon
12= positron
p_x EVNT.P*EVNT.dir_cos[o] Momentum in X direction
p_y EVNT.P*EVNT.dir_cos[1] Momentum in Y direction
p_z EVNT.P*EVNT.dir_cos[2] Momentum along beam pipe
v_x EVNT.vertex[0] position of vertex in X
v_y EVNT.vertex[1] in Y
v_z EVNT.vertex[2] in Z
q EVNT.Charge Particle's Charge
beta EVNT.Beta Beta particle
sector DCPB.SCTR or ECPB.ScHT or LCPB.ScHT or SCPB.ScPdHT sector
chi_sqr DCPB.Chi2 track goodness of fit
cc_pe CCPB.Nphe/10 number of photoelectrons in Cerenkov detector
cc_chi_sqr CCPB.Chi2CC geometrical matching angle between CC hit and nearest SC hit(in rad)
trl1_theta TRL1.DC1 angle on tracking layer one
trl1_phi TRL1.DC1 angle
trl1_x TRL1.DC1_pos[0] position at first DC layer in X
trl1_y TRL1.DC1_pos[1] position at first DC layer in Y
trl1_z TRL1.DC1_pos[2] position at first DC layer in Z
sc_e SCPB.Edep energy deposited in the scintillator
ec_in ECPB.Ein energy deposited into inner part of electron calorimeter
ec_out ECPB.Eout into outer part of electron calorimeter
ec_tot ECPB.Etot total energy deposited into calorimeter
ec_pos_x ECPB.Position[0] the position in electron calorimeter in X
ec_pos_y ECPB.Position[1] the position in electron calorimeter in Y
ec_pos_z ECPB.Position[2] the position in electron calorimeter in Z
ec_m2hit ECPB.M2_hit second moment hit pattern in the calorimeter
sc_paddle SCPB.ScPdHt SC paddle number
tdc_time SCPB.Time flight time
track_length SCPB.Path track length
flag based on EVNT.Status and TRL1.hits If value is > 10 then 6 superlayer were used in track fit
sc_x DCPB.SCplane[0] intersection with SC plane in X
sc_y DCPB.SCplane[1] intersection with SC plane in Y
sc_z DCPB.SCplane[2] intersection with SC plane in Z
sc_cx DCPB.SCdir_cos[0] direction cosine in X at SC plane
sc_cy DCPB.SCdir_cos[1] direction cosine in Y at SC plane
sc_cz DCPB.SCdir_cos[2] direction in Z

FAQ

fwriteable-strings error

cclose.c -o /home/didbtama/src/CLAS/obj/Linux/fpack/cclose.o
cc1: error: unrecognized command line option "-fwritable-strings" 

To get rid of this error we copied flags.LinuxRH.mk to flags.Ubuntu.mk and changed line

     CFLAGS += $(CLEVEL) -mcpu=pentium -fwritable-strings

to be

CFLAGS += $(CLEVEL) -mcpu=pentium

we also needed to copy the file
link.LinuxRH.mk to link.Ubuntu.mk