FairRoot/PandaRoot
Functions
runPndTopixFileSinkHits.cxx File Reference
#include <PndMQFileSinkHits.h>
#include <iostream>
#include <TApplication.h>
#include "boost/program_options.hpp"
#include "FairMQLogger.h"
#include "FairMQParser.h"
#include "FairMQProgOptions.h"
#include "PndSdsDigiTopix4.h"
#include "FairMQTransportFactoryZMQ.h"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 35 of file runPndTopixFileSinkHits.cxx.

References filename, PndMQFileSinkHits::InitOutputFile(), and PndMQFileSinkHits::SetFileName().

36 {
37 
38  PndMQFileSinkHits sink;
39 
40  sink.CatchSignals();
41 
42  FairMQProgOptions config;
43 
44  std::string outputFileName;
45 
46  options_description samplerOptions("Sampler options");
47  samplerOptions.add_options()
48  ("fileName", value<string>(&outputFileName)->default_value("FileSinkHits.root"), "Output file name");
49 
50  config.AddToCmdLineOptions(samplerOptions);
51 
52  try
53  {
54  config.ParseAll(argc, argv);
55 
56  std::string filename = config.GetValue<std::string>("config-json-file");
57  std::string id = config.GetValue<std::string>("id");
58 
59  outputFileName = config.GetStringValue("fileName");
60 
61  LOG(INFO) << "OutputFileName: " << outputFileName;
62 
63  sink.SetFileName(outputFileName);
64 
65  config.UserParser<FairMQParser::JSON>(filename, id);
66 
67  sink.fChannels = config.GetFairMQMap();
68 
69  LOG(INFO) << "PID: " << getpid();
70 
71 #ifdef NANOMSG
72  FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN();
73 #else
74  FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ();
75 #endif
76 
77  sink.SetTransport(transportFactory);
78 
79  sink.SetProperty(FairMQDevice::Id, id);
80 
81  sink.ChangeState("INIT_DEVICE");
82  sink.WaitForEndOfState("INIT_DEVICE");
83 
84  sink.ChangeState("INIT_TASK");
85  sink.WaitForEndOfState("INIT_TASK");
86 
87  sink.InitOutputFile(id);
88 
89  sink.ChangeState("RUN");
90  sink.InteractiveStateLoop();
91  }
92  catch (std::exception& e)
93  {
94  LOG(ERROR) << e.what();
95  LOG(INFO) << "Command line options are the following: ";
96  config.PrintHelp();
97  return 1;
98  }
99 
100  return 0;
101 }
virtual void SetFileName(std::string fileName)
virtual void InitOutputFile(TString defaultId="100")
const string filename