Digitizer-workflow --help

Trying to run the digitizer for just one detector and not remembering the available options, I’ve tried :

digitizer-workflow --help

and got a crash. Is that expected ?

[INFO] Loading field from GRP of o2sim_grp.root
Error in <TFile::TFile>: file o2sim_grp.root does not exist
[ERROR] Failed to open o2sim_grp.root
Error in <TFile::TFile>: file o2sim_grp.root does not exist
[ERROR] Failed to open o2sim_grp.root
[ERROR] This workflow needs a valid GRP file to start
ALICE O2 DPL workflow driver (short help)

 *** Break *** segmentation violation
[/usr/lib/system/libsystem_platform.dylib] _sigtramp (no debug info)
[<unknown binary>] (no debug info)
[/Users/laurent/alice/sw/osx_x86-64/DDS/2.2-1/lib/libboost_program_options-mt.dylib] boost::program_options::options_description::get_option_column_width() const (no debug info)
[/Users/laurent/alice/sw/osx_x86-64/DDS/2.2-1/lib/libboost_program_options-mt.dylib] boost::program_options::options_description::print(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, unsigned int) const (no debug info)
[/Users/laurent/alice/sw/osx_x86-64/DDS/2.2-1/lib/libboost_program_options-mt.dylib] boost::program_options::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, boost::program_options::options_description const&) (no debug info)
[/Users/laurent/alice/sw/osx_x86-64/O2/1.0.0-1/lib/libFramework.dylib] doMain(int, char**, std::__1::vector<o2::framework::DataProcessorSpec, std::__1::allocator<o2::framework::DataProcessorSpec> > const&, std::__1::vector<o2::framework::ChannelConfigurationPolicy, std::__1::allocator<o2::framework::ChannelConfigurationPolicy> > const&, std::__1::vector<o2::framework::CompletionPolicy, std::__1::allocator<o2::framework::CompletionPolicy> > const&, std::__1::vector<o2::framework::ConfigParamSpec, std::__1::allocator<o2::framework::ConfigParamSpec> > const&, o2::framework::ConfigContext&) /Users/laurent/alice/sw/SOURCES/O2/1.0.0/0/Framework/Core/src/runDataProcessing.cxx:0
[/Users/laurent/alice/sw/osx_x86-64/O2/1.0.0-1/bin/digitizer-workflow] main /Users/laurent/alice/sw/SOURCES/O2/1.0.0/0/Framework/Core/include/Framework/runDataProcessing.h:0
[/usr/lib/system/libdyld.dylib] start (no debug info)
[<unknown binary>] (no debug info)

Looks like indeed the digitizer-workflow requires that simulation actually ran in the same area in order to work, most likely because options are constructed from the GRP information. @swenzel probably knows more.

Anyways here is the result:

ALICE O2 DPL workflow driver (short help)

Executor options:
  -h [ --help ] [=arg(=short)]          print help: short, full, executor, or 
                                        processor name
  -q [ --quiet ]                        quiet operation
  -s [ --stop ]                         stop before device start
  --single-step                         start in single step mode
  -b [ --batch ]                        batch processing mode
  -p [ --start-port ] arg (=22000)      start port to allocate
  --port-range arg (=1000)              ports in range
  -c [ --completion-policy ] arg (=quit)
                                        what to do when processing is finished:
                                        quit, wait
  -g [ --graphviz ]                     produce graph output
  -t [ --timeout ] arg (=0)             timeout after which to exit
  -D [ --dds ]                          create DDS configuration
  --dump-workflow                       dump workflow as JSON
  --o2-control                          create O2 Control configuration

  -P [ --plugin ] arg                   FairMQ plugin list
  -S [ --plugin-search-path ] arg       FairMQ plugins search path
  --control-port arg                    Utility port to be used by O2 Control
  --rate arg                            rate for a data source device (Hz)
  --monitoring-backend arg              monitoring connection string
  --infologger-mode arg                 INFOLOGGER_MODE override
  --infologger-severity arg             minimun FairLogger severity which goes 
                                        to info logger
  --child-driver arg                    external driver to start childs with 
                                        (e.g. valgrind)


Global workflow options:
  --tpc-lanes arg (=4)                  Number of tpc processing lanes. A lane 
                                        is a pipeline of algorithms.
  --tpc-sectors arg (=0-35)             List of TPC sectors, comma separated 
                                        ranges, e.g. 0-3,7,9-15
  --onlyDet arg (=none)                 Comma separated list of detectors to 
                                        accept. Takes precedence over the 
                                        skipDet option. (Default is none)
  --skipDet arg (=none)                 Comma separate list of detectors to 
                                        skip/ignore. (Default is none)
  --tpc-reco-type arg                   Run TPC reco workflow to specified 
                                        output type, currently supported: 
                                        'tracks'
  --configKeyValues arg                 Semicolon separated key=value strings 
                                        (e.g.: 'TPC.gasDensity=1;...')

Available data processors (full info with '--help full'):
  --SimReader arg                       Use '--help SimReader' to display 
                                        processor options
  --TPCDigitizer0 arg                   Use '--help TPCDigitizer0' to display 
                                        processor options
  --TPCDigitizer1 arg                   Use '--help TPCDigitizer1' to display 
                                        processor options
  --TPCDigitizer2 arg                   Use '--help TPCDigitizer2' to display 
                                        processor options
  --TPCDigitizer3 arg                   Use '--help TPCDigitizer3' to display 
                                        processor options
  --TPCDigitWriter arg                  Use '--help TPCDigitWriter' to display 
                                        processor options
  --ITSDigitizer arg                    Use '--help ITSDigitizer' to display 
                                        processor options
  --ITSDigitWriter arg                  Use '--help ITSDigitWriter' to display 
                                        processor options
  --TOFDigitizer arg                    Use '--help TOFDigitizer' to display 
                                        processor options
  --TOFDigitWriter arg                  Use '--help TOFDigitWriter' to display 
                                        processor options
  --TOFClusterer arg                    No processor options
  --TOFClusterWriter arg                Use '--help TOFClusterWriter' to 
                                        display processor options
  --T0Digitizer arg                     Use '--help T0Digitizer' to display 
                                        processor options
  --T0DigitWriter arg                   Use '--help T0DigitWriter' to display 
                                        processor options
  --TRDDigitizer arg                    Use '--help TRDDigitizer' to display 
                                        processor options
  --TRDDigitWriter arg                  Use '--help TRDDigitWriter' to display 
                                        processor options
  --GRPUpdater arg                      No processor options
  --internal-dpl-clock arg              No processor options

https://github.com/AliceO2Group/AliceO2/pull/1911 fixes the crash.

Thanks for the quick (reply and fix) !