...
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. | 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 |
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 |
...