Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-15 08:16:25

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     "pid",
0029     "global_pid_lut",
0030     "EEMC",
0031     "BEMC",
0032     "FEMC",
0033     "EHCAL",
0034     "BHCAL",
0035     "FHCAL",
0036     "B0ECAL",
0037     "ZDC",
0038     "BTRK",
0039     "BVTX",
0040     "PFRICH",
0041     "DIRC",
0042     "DRICH",
0043     "ECTRK",
0044     "MPGD",
0045     "B0TRK",
0046     "RPOTS",
0047     "FOFFMTRK",
0048     "BTOF",
0049     "ECTOF",
0050     "LOWQ2",
0051     "LUMISPECCAL",
0052     "podio",
0053     "janatop",
0054     // clang-format on
0055 };
0056 
0057 int main(int narg, char** argv) {
0058   ROOT::EnableThreadSafety();
0059 
0060   std::vector<std::string> default_plugins = EICRECON_DEFAULT_PLUGINS;
0061 
0062   auto options = jana::GetCliOptions(narg, argv, false);
0063 
0064   if (jana::HasPrintOnlyCliOptions(options, default_plugins)) {
0065     return -1;
0066   }
0067 
0068   AddAvailablePluginsToOptionParams(options, default_plugins);
0069 
0070   japp = jana::CreateJApplication(options);
0071 
0072   auto exit_code = jana::Execute(japp, options);
0073 
0074   delete japp;
0075   return exit_code;
0076 }