FAX end-user Tutorial


A step-by-step how-to tutorial for using FAX as an end-user. The tutorial examples can be downloaded here. If something does not work or you have any questions, please contact atlas-adc-fax-operations@cernNOSPAMNOSPAMPLEASE.ch.

Setup environment

Setting up the FAX environment is done using a package from the lsetup (more here):

     export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase
     source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh
     lsetup fax
If you will need ROOT, you should set it up directly from lsetup:
lsetup fax root

A FAX access endpoint is automatically setup for you. This is done automatically but a full list of endpoints and their grid sites is available here FaxRedirectors. You can find it in the environment variable STORAGEPREFIX. Create the usual grid proxy:

    voms-proxy-init -voms atlas

Check availability of the dataset or dataset container in FAX

Use fax-is-dataset-covered, available upon invoking lsetup fax. It takes the dataset or dataset container name as an argument. For each input dataset, it will print number of FAX endpoints containing full and incomplete replicas. Example (user.ilijav.HCtest.1 is a test dataset that exists at several sites):

   fax-is-dataset-covered user.ivukotic:user.ilijav.HCtest.1

Copy a dataset to a local storage

Use fax-get to copy a dataset from FAX to local storage. Command supports multiple streams, retries, partial dataset copy, skipping non-root files, timeouts and more. Example:

   fax-get user.ivukotic:user.ilijav.HCtest.1

Find global logical file names (gLFNs)

Currently there are two conventions for the global logical file namespace used by FAX:

  • Use tool fax-get-gLFNs:
    fax-get-gLFNs user.ivukotic:user.ilijav.HCtest.1  > my_list_of_gLFNS.txt 

Copy a file from FAX to local disk

  • With the environment setup above:
    xrdcp $STORAGEPREFIX/atlas/rucio/user.ivukotic:group.test.hc.NTUP_SMWZ.root /tmp/myLocalCopy.root 

Open and inspect a file with ROOT

  • Open and list the file contents with ROOT.
  • Then:
       root -l 
       TFile *f = TFile::Open("root://fax.mwt2.org//atlas/rucio/user.ivukotic:group.test.hc.NTUP_SMWZ.root"); 
       if(f) f->ls();

Using FAX from a prun job

Instead of giving the --inDS myDataset option, provide it with --pfnList my_list_of_gLFNS.txt.


When using SampleHandler one need to use special driver: FAX driver.

Additional examples


  • Always, always, always use TTreeCache. Without it performance will be very bad. It should be used even if you don't use FAX.
  • If using TChain, don't create TFiles and give them to TChain but directly give filenames to TChain. TChain will make sure files can be opened.
  • Messages like this
    Xrd: XrdClientMessage::ReadRaw: Failed to read header
    can be safely ignored and will be removed in future versions of xrootd.

Major updates:
-- IlijaVukotic - 10 Dec 2013

Responsible: IlijaVukotic
Last reviewed by: Never reviewed

Edit | Attach | Watch | Print version | History: r28 < r27 < r26 < r25 < r24 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r28 - 2016-06-20 - SamuelMeehan
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Atlas All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback