To-do list 27-Dec-2012

KAB - some notes on things to do (ordering and grouping is rather arbitrary)

  1. SCF - get PMT working with latest boardreader and eventbuilder apps
    • include both single-node and multi-node running DONE
  2. SCF - modify the init, startRun, and stopRun scripts to use the PMT cfg file DONE
  3. KAB - finish documenting the initialization PSet contents
    • this should include whatever code modifications are needed to get the hard-coded paths out of the PSet strings
  4. SCF - test the stopping and restarting of runs with real V1720 readout. Fix any problems that are uncovered. Backed out. Alessandro didn't like my fix.
  5. merge the latest feature/pmt branch code to the develop branch, when appropriate
  6. KAB - update the instructions on the Wiki pages to change references to the feature/board_reader branch to the develop branch DONE
  7. KAB - plan for a simple demo system that Stefano can use in his System Control tests (document the use of it on the Wiki) DONE
  8. KAB - refresh our memory of what the shutdown command should do, and add that to the applications
  9. SCF - look into improving the filenames on disk (see art and artdaq Redmine issues, esp. art #3189)
  10. KAB - look into feeding the initialization string directly to art (art Redmine issue #3191) WAITING for a new ART release to make this available
  11. KAB - look into supporting multiple fragment generators within a single boardreader app
  12. write a simple "event dump" application that we can use on the disk files that we create to verify that the data makes sense (number of events, number of fragments in each event, etc.)
  13. investigate the drop in maximum rate (from 55 to 50 Hz) when running the full system (compared to just
  14. document the plan for providing events to online data quality monitoring applications
  15. KAB - document the C++ classes in ds50daq (an initial class diagram is attached to this page)
  16. remove junk code ( and move higher level code to a different dir (DS50CompressedEvent.hh which in turn should be renamed V172xCompressedFragment).
  17. modify V172xFragment to know how many bits are valid (request from Marc)
  18. SCF look into forcing real-time priority for DAQ processes (MPI program elements) TO BE TESTED
  19. re-check the initial fragment number assignment and testing in V172xDriver_generator DONE
  20. start using a set of directories to provide named configuration sets. A proposed schema is the following:
    • <baseDirectory>/<configurationName>/<applicationName>_def.fcl (will contain the defaults within BEGIN_PROLOG ... END_PROLOG)
    • <baseDirectory>/<configurationName>/<applicationName>_<machineName>_<portNumber>_<on|off>.fcl
    • <baseDirectory>/runs.txt (list of runs with start time, stop time and configuration name)
    • PMT and the SC will be given the configuration name and they will loop on all <applicationName>_<machineName>_<portNumber>_on.fcl files: the content of <applicationName>_def.fcl will be prepended.
  21. create unit tests for SimpleLookupPolicy and ds50driver
  22. KAB - create DONE
  23. add timeout parameters to the initialization string(s)
  24. create the Report base class, and initial version of the XMLFormatter class, and some sample Report derived classes. Start using them in FragmentReceiver, EventBuilder, etc. Add some monitored quantities to the FR and EB classes; make the EventStore MonQuantities available for external use (?); start providing some stats with the report() command.
  25. provide some sample software initialization via the soft_init command?
  26. look into why multiple runs with the same configuration don't successfully write disk files on the 2nd, 3rd, etc. runs. This is probably related to being unable to reconfigure art (and the need to move the art instance creation earlier).
  27. look into getting the legal_commands() command to get its result from the state machine.
  28. add pause and resume behavior to the existing DS50FragmentGenerator derived classes
  29. resurrect the sample compression algorithm
  30. measure disk writing, reading, and writing&reading performance
  31. provide minimal system control functionality for our testing
    • This should probably take the form of a Ruby script that can determine the current MPI program confiugration (which applications on which nodes listening on which ports) and send the user-specified command (e.g. init, start, stop). For the init command, this tool may need to read the configuration strings off disk or out of the database.
  32. KAB - run a test on WH14 with 2 V1720 boards, the board reader processes running on dsfr6, and the event builder processes running on dseb8. DONE
  33. Look into why some fraction of the fragments in a triggered system have less than the full number of expected ADC samples.
  34. PMT requests:
    • add a command-line switch to support the printing of log messages to the console as well as to the pmt*.log file
    • add an XMLRPC operation to allow remote stopping of PMT
    • provide some way to clean up a stale, detached system
Monitoring and debugging
  1. add the ability to monitor the current state and historical usage of the MPI send and receive buffers in the SHandles and RHandles classes.