Git Product home page Git Product logo

fermigridutilities's Introduction

FermiGridUtilities

This repository is a tool intended to speed up the process of creating .pndr files from any samweb definition containing a set of reco2 .root files.

Usage

All the settings can be found in run.sh. The settings are:

  • user_name: the Fermi services account to use to authenticate with Kerberos and get a grid certificate
  • project_name: the name of the samweb project containing (only!) relevant reco2 .root files.
  • larsoft_release_name: the LArSoft version used to process the files (see next item) e.g. v06_85_00.
  • qualifier: the qualifier associated to your LArSoft release, e.g. e17:prof
  • tarball_path: a fully-qualified path to a tarball of your local LArSoft install. This must exist in /pnfs/uboone/resilient/.
  • max_files: the number of files to process.
  • events_per_file: the number of events per file to process.
  • prestage: whether to prestage the files in the supplied samweb definition before attempting to read them. This will take some time, but if your files are not staged nothing will happen.
  • file_prefix: the file prefix to give to the output .pndr files. Output files will look like: Pandora_Events_${file_prefix}_${counter}.pndr.
  • resumbit: whether to resubmit failed jobs. This setting is set to false as default, as it does not work for pandora_writer.fcl: the output root files are flagged as invalid output. This functionality has been retained for when the script is used with a .fcl file that produces valid .root output files. One resubmit cycle corresponds to project.py --xml $xml_name --stage pndr --check followed by project.py --xml $xml_name --stage pndr --makeup. Jobs will be resubmitted until all jobs have been processed succesfully, or until the maximum number of resubmit cycles has been reached, defined by resumbit_cycles below.
  • resumbit_cycles: if resumbitting failed jobs, how many resubmission cycles to maximally allow.
  • is_data: whether the reco2 files are real data. Set to false for simulated data. This must be set correctly to allow POT to be counted accurately.
  • fcl_file_name: the .fcl file to run on each reco2 file in the samweb definition. The repository comes prepackaged with pandora_writer.fcl.

The output files will end up in /pnfs/uboone/scratch/users/${user_name}/${project_name}_collected_pndr. All other necessary working directories will be created by the script, if they do not already exist.

Usage is simply: source run.sh

Output

What happens practically is that pandora_writer.fcl is run on each of the reco2 .root files in the supplied samweb definition and a project.py .xml file is automatically created according to the provided settings.

The script will also fetch the correct grid certificates for you, submit the relevant grid jobs, and display their progress. In addition, POT information is collected only for those jobs that produces a usable .pndr as output and is reported as the script finishes running. The POT output is also saved to file in saved_pot_output.txt.

The resulting .pndr files are automatically retrieved from the grid output subdirectories and moved to /pnfs/uboone/scratch/users/${user_name}/${project_name}_collected_pndr.

Debugging

It is possible for the kx509 user proxy to become corrupted. When this happens, you will see Python errors that end in 'TypeError: 'NoneType' object is not iterable'. To fix this issue, enter jobsub_rm --user=$user_name and remove the listed file for which the filename begins with /tmp/x509up_. After this, run.sh should work as normal.

fermigridutilities's People

Contributors

jorisdevries avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.