$treeview $search $mathjax $extrastylesheet
artdaq_demo
v3_04_01
$projectbrief
|
$projectbrief
|
$searchbox |
00001 00002 // Class: RootApplication 00003 // Module Type: analyzer 00004 // File: RootApplication_module.cc 00005 // 00006 // Generated at Sun Dec 2 12:23:06 2012 by Alessandro Razeto & Nicola Rossi using artmod 00007 // from art v1_02_04. 00009 00010 #include "art/Framework/Core/EDAnalyzer.h" 00011 #include "art/Framework/Principal/Handle.h" 00012 #include "art/Framework/Principal/Event.h" 00013 #include "art/Framework/Core/ModuleMacros.h" 00014 00015 #include <iostream> 00016 #include <future> 00017 #include <TApplication.h> 00018 #include <TSystem.h> 00019 #include <unistd.h> 00020 00021 namespace demo 00022 { 00026 class RootApplication : public art::EDAnalyzer 00027 { 00028 public: 00037 explicit RootApplication(fhicl::ParameterSet const& p); 00038 00042 virtual ~RootApplication(); 00043 00047 void beginJob() override; 00048 00055 void analyze(art::Event const& e) override; 00056 00060 void endJob() override; 00061 00062 private: 00063 std::unique_ptr<TApplication> app_; 00064 bool force_new_; 00065 bool dont_quit_; 00066 }; 00067 } 00068 00069 demo::RootApplication::RootApplication(fhicl::ParameterSet const& ps): art::EDAnalyzer(ps) 00070 , force_new_(ps.get<bool>("force_new", true)) 00071 , dont_quit_(ps.get<bool>("dont_quit", false)) {} 00072 00073 demo::RootApplication::~RootApplication() { } 00074 00075 void demo::RootApplication::analyze(art::Event const&) 00076 { 00077 gSystem->ProcessEvents(); 00078 } 00079 00080 void demo::RootApplication::beginJob() 00081 { 00082 if (!gApplication || force_new_) 00083 { 00084 int tmp_argc(0); 00085 app_ = std::unique_ptr<TApplication>(new TApplication("noapplication", &tmp_argc, 0)); 00086 } 00087 } 00088 00089 void demo::RootApplication::endJob() 00090 { 00091 if (dont_quit_) app_->Run(true); 00092 } 00093 00094 DEFINE_ART_MODULE(demo::RootApplication)