Class Reference for E1039 Core & Analysis Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Fun4MainDaq.C
Go to the documentation of this file.
1 #if ROOT_VERSION_CODE >= ROOT_VERSION(6,00,0)
3 R__LOAD_LIBRARY(libinterface_main)
4 R__LOAD_LIBRARY(libdecoder_maindaq)
5 R__LOAD_LIBRARY(libonlmonserver)
6 R__LOAD_LIBRARY(libpheve_modules)
7 #endif
8 
9 int Fun4MainDaq(const int run=46, const int nevent=0, const bool is_online=false)
10 {
11  gSystem->Umask(0002);
12  gSystem->Load("libinterface_main.so");
13  gSystem->Load("libdecoder_maindaq.so");
14  gSystem->Load("libonlmonserver.so");
15  gSystem->Load("libpheve_modules.so");
16  GeomSvc::UseDbSvc(true);
17  const bool use_onlmon = true;
18  const bool use_evt_disp = true;
19 
20  const char* deco_mode = gSystem->Getenv("E1039_DECODER_MODE");
21  if (deco_mode && strcmp(deco_mode, "std") == 0) {
22  cout << "Output mode = standard." << endl;
23  } else {
24  cout << "output mode = devel." << endl;
26  }
27 
28  DecoStatusDb deco_stat;
29  deco_stat.RunStarted(run);
30 
31  ostringstream oss;
33  string fn_in = oss.str();
34  oss.str("");
36  string fn_out = oss.str();
37  gSystem->mkdir(UtilOnline::GetDstFileDir().c_str(), true);
38 
40  //se->Verbosity(1);
41  se->SetOnline(is_online);
42 
44  in->Verbosity(2);
45  in->SetOnline(is_online);
46  //if (is_online) in->PretendSpillInterval(20);
47  in->fileopen(fn_in);
48  se->registerInputManager(in);
49 
50  se->registerSubsystem(new DbUpRun());
51  se->registerSubsystem(new DbUpSpill());
52  //se->registerSubsystem(new CalibInTime());
54  //se->registerSubsystem(new CalibXT());
55 
56  if (use_onlmon) { // Register the online-monitoring clients
57  if (is_online) se->StartServer();
89  }
90 
91  Fun4AllDstOutputManager *out = new Fun4AllDstOutputManager("DSTOUT", fn_out);
92  se->registerOutputManager(out);
93 
94  if (use_evt_disp) {
95  se->registerSubsystem(new EvtDispFilter(1000, 1)); // (step, max per spill)
96 
97  oss.str("");
98  oss << "/data2/e1039/onlmon/evt_disp";
99  gSystem->mkdir(oss.str().c_str(), true);
100  oss << "/run_" << setfill('0') << setw(6) << run << "_evt_disp.root";
101  Fun4AllDstOutputManager *out2 = new Fun4AllDstOutputManager("DSTOUT2", oss.str());
102  out2->EnableRealTimeSave();
103  out2->AddEventSelector("EvtDispFilter");
104  se->registerOutputManager(out2);
105  }
106 
107  se->run(nevent);
108  se->End();
109  deco_stat.RunFinished(run, 0); // always "result = 0" for now.
110 
111  delete se;
112  cout << "Fun4MainDaq Done!" << endl;
113  return 0;
114 }
115 
117 {
118  gSystem->Load("libonlmonserver.so");
120  //se->Verbosity(1);
121  se->StartServer();
122 }
int registerInputManager(Fun4AllInputManager *InManager)
static std::string RunNum2CodaFile(const int run)
Convert a run number to the corresponding name of Coda file.
Definition: UtilOnline.cc:33
void SetOnline(const bool is_online)
void RunStarted(const int run, int utime=0)
Definition: DecoStatusDb.cc:49
void TestOnlMonServer()
Definition: Fun4MainDaq.C:116
virtual int AddEventSelector(const std::string &recomodule)
add an event selector to the outputmanager. event will get written only if all event selectors proces...
Fun4AllServer * se
void SetOnline(const bool val)
Definition: OnlMonServer.h:41
int run(const int nEvents=1)
Definition: run.C:10
int fileopen(const std::string &filenam)
OnlMonMainDaq.
Definition: OnlMonMainDaq.h:6
int registerSubsystem(SubsysReco *subsystem, const std::string &topnodename="TOP")
static bool UseDbSvc()
Definition: GeomSvc.h:304
int run(const int nevnts=0, const bool require_nevents=false)
run n events (0 means up to end of file)
int registerOutputManager(Fun4AllOutputManager *manager)
int Fun4MainDaq(const int run=46, const int nevent=0, const bool is_online=false)
Fun4MainDaq.C: Fun4all macro to decode the MainDAQ data.
Definition: Fun4MainDaq.C:9
static void UseOutputLocationForDevel()
Definition: UtilOnline.cc:14
Definition: DbUpRun.h:7
void StartServer()
Definition: OnlMonServer.cc:66
static std::string RunNum2DstFile(const int run)
Convert a run number to the corresponding name of DST file.
Definition: UtilOnline.cc:49
void RunFinished(const int run, const int result, int utime=0)
Definition: DecoStatusDb.cc:80
virtual void Verbosity(const int ival)
Sets the verbosity of this module (0 by default=quiet).
Definition: Fun4AllBase.h:58
static std::string GetCodaFileDir()
Definition: UtilOnline.h:24
static OnlMonServer * instance()
Definition: OnlMonServer.cc:34
static std::string GetDstFileDir()
Definition: UtilOnline.h:25