Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-15 08:26:14

0001 // Copyright 2022, David Lawrence
0002 // Subject to the terms in the LICENSE file found in the top-level directory.
0003 //
0004 //
0005 
0006 #include <JANA/JApplicationFwd.h>
0007 #include <TROOT.h>
0008 #include <string>
0009 #include <vector>
0010 
0011 #include "eicrecon_cli.h"
0012 
0013 /// The default plugins
0014 /// Add new default plugin names here and the main() will do JApplication::AddPlugin() for you.
0015 std::vector<std::string> EICRECON_DEFAULT_PLUGINS = {
0016     // clang-format off
0017     "log",
0018     "dd4hep",
0019     "evaluator",
0020     "acts",
0021     "algorithms_init",
0022     "pid_lut",
0023     "richgeo",
0024     "rootfile",
0025     "beam",
0026     "reco",
0027     "tracking",
0028     "particle_flow",
0029     "pid",
0030     "global_pid_lut",
0031     "EEMC",
0032     "BEMC",
0033     "FEMC",
0034     "EHCAL",
0035     "BHCAL",
0036     "FHCAL",
0037     "B0ECAL",
0038     "ZDC",
0039     "BTRK",
0040     "BVTX",
0041     "PFRICH",
0042     "DIRC",
0043     "DRICH",
0044     "ECTRK",
0045     "MPGD",
0046     "B0TRK",
0047     "RPOTS",
0048     "FOFFMTRK",
0049     "BTOF",
0050     "ECTOF",
0051     "LOWQ2",
0052     "LUMISPECCAL",
0053     "podio",
0054     "janatop",
0055     // clang-format on
0056 };
0057 
0058 int main(int narg, char** argv) {
0059   ROOT::EnableThreadSafety();
0060 
0061   std::vector<std::string> default_plugins = EICRECON_DEFAULT_PLUGINS;
0062 
0063   auto options = jana::GetCliOptions(narg, argv, false);
0064 
0065   if (jana::HasPrintOnlyCliOptions(options, default_plugins)) {
0066     return -1;
0067   }
0068 
0069   AddAvailablePluginsToOptionParams(options, default_plugins);
0070 
0071   japp = jana::CreateJApplication(options);
0072 
0073   auto exit_code = jana::Execute(japp, options);
0074 
0075   delete japp;
0076   return exit_code;
0077 }