Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Some existing documentation can be found in /afs/slac/g/glast/ground/PipelineConfig/BeamTest-tasks/beamtestPipeline/current/doc.
install.txt and operation.txt may both be read directly, but need to be updated.  Running make in the doc directory will use IAndTPipeline.tex and several .dot files to make a .pdf.

...

Source  /u/gl/glast/pdb_config/dpf_config_prod.csh (or .sh if you use BASH) to run the pipeline text-mode management tools, which are installed in $PDB_HOME (which is set by the config script).

The environment variable beamtestPlRoot must be set to point to the location where the scripts are installed.

There is a master configuration file (setup/svacPlSetup.cshrc) that sets disk locations, code versions, and all kinds of fun stuff.  It sets over 100 environment variables that are needed at task install or run time. 

Pipeline Tasks and Associated Scripts

...

Pipeline tasks are structured as a linear chain of steps.  Each step must succeed before going on to the next one.  Each step must be attempted, until one fails or the last one succeeds.  That is to say, there is no flow control, and no parallelism.  In order to deal with this, and to reduce the chance that a step would not be reached due to the failure of a previous step on which it did not logically depend, the work we do in the pipeline is split into 7 tasks, all but one of which (updateELogDB) are launched by other tasks.  This launching is done without GINO's (the pipeline infrastructure) knowledge.

The names of files registered with GINO is constrained to follow a certain format.  When one task produces a file that is used as input to another task, the name given by the first task is not the name expected by the second one.  Thus, part of the process of one task launching another is to create symbolic links with the name expected by the downstream task. 

Most steps within a task (Task Processes (TPs)) consist of a wrapper, which interfaces with GINO and a script which does the work, usually by running some external app.  The digi & recon reports, and beamtest tuple, create a c-shell script and then execute it.

The code for the bt pipeline is found in /afs/slac/g/glast/ground/PipelineConfig/BeamTest-tasks/beamtestPipeline/current

The cvs repository for the code is heresvac/svacPipeline, branch beamtest. It contains a branch with the following features:

...

Task Name: configReport

Description: Makes instrument configuration report. 

Uses external app ConfigTables, which is in SAS CVS as svac/ct2. 

 Purpose

 Associated Scripts

Input

 Output

Comments

make config report

 configTablesWrapper.pl

 

 

 pipeline side

make XML file defining task

 genXml.pl

 

 

 currently makes 2 XML files, LICOS version should be removed

Task Name: digiReport

Description: Makes digitization report. 

Uses external app BeamTestReport. 

 Purpose

 Associated Scripts

Input

 Output

Comments

 make digi report

 genDigiTestReport.pl

 

 

 external side

make digi report

 genDigiTestReportWrapper.pl

 

 

 pipeline side

make XML file defining task

 genXml.pl

 

 

 

...

 Purpose

 Associated Scripts

Input

 Output

Comments

determine whether to reconstruct run

 decideRecon.pl

 

 

 

start digitization task

 genDTRLaunchWrapper.pl

 

  

 pipeline side

make XML file defining task

 genXml.pl

 

 

 currently makes 2 XML files, LICOS version should be removed

digitize LDF data

 ldfToDigi.pl

 

 

 external side enter

run in eLog  digitize LDF data

 ldfToDigiWrapper.pl

 

 

 pipeline side enter

launch recon task run in eLog

 recLaunchWrapper.pl

 

 

 pipeline side

 

 reprocess-v2r0.csh

 

 

  delete

 

  reprocess.csh

 

  

 probably delete

 

 reprocessEM2.csh

 

 

 delete

 

 retDefToDigiWrapper.pl

 

 

LICOS stuff, not used by beamtest

 

 setEvents.pl

 

 

  LICOS stuff, not used by beamtest

 

 setEventsWraspper.pl

 

 

LICOS stuff, not used by beamtest

...

 Purpose

 Associated Scripts

Input

 Output

Comments

used by cleanupRecon.csh, gets rid of junk on one host

 _cleanup0ne.csh

 

 

  utility, not used in pipeline

clean up junk left on  local disks of batch hosts by failed chunks

  cleanupRecon.csh

 

 

 utility, not used in pipeline

   shared by all TPs that copy files

  copyWrapper.pl

 

 

 pipeline side

 reset eLog links to reports & ROOT files so there isn't a confusing mixed set of versions while reprocessing

  deleteLinks.csh

 

 

  utility, not used in pipeline

  shared by all TPs that delete files

  deleteWrapper.pl

 

 

 pipeline side

  merge tuple chunks into single file

  haddMerge.py

 

 

 external side

  merge tuple chunks into single file

  haddWrapper.pl

 

 

 pipeline side

 

  makeLinks.pl

 

 

not used

 look things up in eLog

  queryElogReportTable.pl

 

 

  

 launch a task from within another task

  TaskLaunch.pl

 

 

 

 Sometimes thigs don't work, and you try again and it's fine.  Usually due to some transient NFS issue. 
This script will attempt an action up to 5 times.  It's used by recon to copy & move files.

  tryAFewTimes.csh

 

 

 

 change things in eLog

  updateElogReportTable.pl

 

 

  

 Enter links to ROOT files and data reports into the eLog DB.

  updateUrl.py

 

 

 

 Enter links to ROOT files and data reports into the eLog DB. 

  urlWrapper.pl

 

 

 pipeline side
The name of the TP using this must be the same as the name of the DB field that will hold the URL. 

 

Task Name: offLineTest

Description:  I don't even know what this is.

 Purpose

 Associated Scripts

Input

 Output

Comments

 

 setup.csh

 

 

 

  start ConfigTables task

 test.pl

 

 

 

Task Name: online

Description: loads the database

The files in this directory are used to launch a run.  They are intended to minimize the required knowledge of how all of this stuff works.  This simplifies the job of external systems that need to launch runs, and allows us to make internal changes without having to agree on a changed interface.

 Purpose

 Associated Scripts

Input

 Output

Comments

launch a run

 BeamTestLaunch.pl

 

 

 


 LicosLaunch.pl

 

 

 not used

 

 SVACLaunch.pl

 

 

 not used

 

 SVACWrapper.pl

 

 

 not used


 getAlgFile.pl

 

 

  not used

...

Merging the chunks of the recon file uses 4 TPs.  The first (mergeRecon) performs the actual merge, from chunk files on the staging disk to a recon file on the staging disk.  The second deletes the chunk files from the staging disk.  The third copies the merged recon file from the staging disk to its final destination on NFS.  The fourth deletes the berged merged file from the staging area.  This may seem unreasonably complicated, but it reduces the amount of work that must be redone on a rollback, and in some cases a rollback wouldn't work otherwise - we used to get situations where something would fail after the chunks had ben deleted, and we'd have to redo the reconstruction.

...

 Purpose

 Associated Scripts

Input

 Output

Comments

 finish up a run

  cleanup.py

 

 

  external side

finish up a run

  cleanupWrapper.pl

 

 

 pipeline side

control job for reconstruction of chunks

  doRecon.pl

 

 

 external side

control job for reconstruction of chunks

  doReconWrapper.pl

 

 

  pipeline side  

launch reconReport task

  genRTRLaunchWrapper.pl

 

 

  pipeline side

make XML config file for task

  genXml.pl

 

 

 

  merge chunks of recon file

  mergeRecon.py

 

 

external side

 merge chunks of recon file

  mergeReconWrapper.pl

 

 

  pipeline side

 

  recon.py

 

 

 obsolete

 reconstruct one chunk

  recon0ne.csh

 

 

 

 

  reconWrapper.pl

 

 

 obsolete

 

  reprocess-licos.csh

 

 

 delete

 

  reprocess-v3r1p5.csh

 

 

delete

 

  reprocess-version.csh

 

 

 delete

 launch recon report beamtestTuple task

  RunRALaunchWrapper.pl

 

 

 pipeline side

 prepare chunk jobs

  setupRecon.py

 

 

 external side

 prepare chunk jobs

  setupReconWrapper.pl

 

 

 pipeline side

Task Name: reconReport

Description: lo Makes recon report.

Uses external app BeamTestReport.

 Purpose

 Associated Scripts

Input

 Output

Comments

 make recon report

 genReconTestReport.pl

 

 

 external side

make recon report

 genReconTestReportWrapper.pl

 

 

 pipeline side

make XML file defining task

 genXml.pl

 

 

 

...

Task Name: svacTuple

Description: loads the database Makes beamtest tuple

Uses external app BeamTestTuple (part of BeamTestRelease). 

 Purpose

 Associated Scripts

Input

 Output

Comments

make beamtest tuple

 RunRootAnalyzer.pl

 

 

 external side

make beamtest tuple

 RunRootAnalyzerWrapper.pl

 

 

 pipeline side

make XML file defining task

 genXml.pl

 

 

 

 

 reprocess-licos-v3r5p5.pl

 

 

  delete


 reprocess-v3r4p6.csh

 

 

  delete


 reprocess.csh

 

 

  delete

...