Table of Contents

Data handling at CNAF

Personal Certificate and VO Enrollment

To read and write the storage areas using gfal tools first you need be enrolled in the ICARUS experiment VO: icarus-exp.org. The enrollment requires a valid personal certificate. Instructions on how to obtain it are here. Once you have a valid certificate, you have to install it in a browser and point (with that browser) to the Enrollment Url reported in operation portal site. Select the valid personal certificate just installed when asked for by the browser. Once you have filled the enrollment form, you have to wait for the VO manager to approve your enrollment.

Read/Write storage areas

Once enrolled, you need create a proxy. Instructions on how to create it are here.

The usefull tools to handle files are:

Detailed information about gfal utils can be found here

Create proxy with fermilab VOMS extensions

Being fnal_user your username at FNAL:

source /cvmfs/icarus.opensciencegrid.org/products/icarus/setup_icarus.sh
setup cigetcert
cigetcert -i 'Fermi National Accelerator Laboratory' --myproxyserver=myproxy.cnaf.infn.it --myproxyretrievers='/DC=org/DC=incommon/C=US/ST=Illinois/O=Fermi Research Alliance/CN=(fifebatch|(hepcjobsub0(1|2))|jobsubdevgpvm01).fnal.gov' --myproxyhours=24 --hours=672 -u <fnal_user>
voms-proxy-init -noregen -rfc -voms 'fermilab:/fermilab/icarus/Role=Analysis'

or in alternative:

kx509
voms-proxy-init -noregen -rfc -voms 'fermilab:/fermilab/icarus/Role=Analysis'

Samweb

It is possible to use samweb at CNAF. First create a proxy with fermilab VOMS extensions, then:

source /cvmfs/icarus.opensciencegrid.org/products/icarus/setup_icarus.sh
setup fife_utils

In the following links to webpage with usefull info:

Locate a file

To locate a file which filename is filename.root, do:

filename="filename.root"
md5=$(echo -n "user.icaruspro:${filename}" | md5sum)
ls -lrt /storage/gpfs_data/icarus/plain/user/icaruspro/${md5:0:2}/${md5:2:2}/${filename}  

Example: how to get the list of the file paths for a samweb selection

samweb -e icarus list-files "run_number = 8460 and data_stream = bnbmajority and data_tier = raw" > list_filenames.txt
for filename in $(cat list_filenames.txt); 
do 
  md5=$(echo -n "user.icaruspro:${filename}" | md5sum); 
  filepath="/storage/gpfs_data/icarus/plain/user/icaruspro/${md5:0:2}/${md5:2:2}/${filename}"; 
  if [ -f ${filepath} ]; 
  then 
    echo ${filepath} >> list_filepaths.txt; 
  else 
    echo ${filename} >> list_missing_files.txt; 
  fi;
done;

File transfer from FNAL machines

To be able to copy files from FNAL to CNAF you need (only once):

scp -r ~/.globes "fnal_user"@icarusgpvm01.fnal.gov:~/.
mkdir -p ~/vomses
scp -r /etc/vomses/icarus-exp.org* "fnal_user"@icarusgpvm01.fnal.gov:~/vomses/.

Then, you do, ignoring possible errors:

voms-proxy-init --voms icarus-exp.org --valid 72:00 -vomses ~/vomses/icarus-exp.org-vomsigi-na.unina.it
gfal-ls srm://storm-fe-archive.cr.cnaf.infn.it:8444/srm/managerv2?SFN=/<space token>

where <space token> can be:

File transfer\access from CNAF machines

source /opt/exp_software/icarus/HTGETTOKEN/setup.sh
export BEARER_TOKEN_FILE=/tmp/bt_u$(id -u)
htgettoken -a htvaultprod.fnal.gov -i icarus
export BEARER_TOKEN=$(cat ${BEARER_TOKEN_FILE})

then you should be able to copy files from FNAL:

xrdcp xroots://fndca1.fnal.gov:1094/pnfs/fnal.gov/usr/icarus/archive/rucio/user/icaruspro/00/00/data_dl1_fstrmNUMI_run8009_8_20220406T062939.root .
xrdcp file-test.root xroots://fndca1.fnal.gov:1094/pnfs/fnal.gov/usr/icarus/persistent/users/mtenti/.
gfal-ls https://fndcadoor.fnal.gov:2880/pnfs/fnal.gov/usr/icarus/persistent/users/mtenti
gfal-ls gsiftp://fndca1.fnal.gov:2811/pnfs/fnal.gov/usr/icarus/persistent/users/mtenti
gfal-copy file-test.root https://fndcadoor.fnal.gov:2880/pnfs/fnal.gov/usr/icarus/persistent/users/mtenti/.
$> root -l
root [0] TFile *_file0 = TFile::Open("xroot://fndca1.fnal.gov:1094/pnfs/fnal.gov/usr/icarus/archive/sbn/sbn_fd/data/artroot/reconstructed/bnbmajority/Run1/offline/icaruscode/icarus_decoder_v09_37_02_09/stage1/v09_37_02_09/00/00/84/60/data_dl2_fstrmBNBMAJORITY_run8460_3_20220608T115225_20220805T191625_pot_20220805T214639-stage0_20220812T075544-stage1.root")

Support

For any kind of support refer to user-support@cnaf.infn.it