FairRoot/PandaRoot
runPndTopixProcessor.cxx
Go to the documentation of this file.
1 /********************************************************************************
2  * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence version 3 (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
15 //#include <PndMQTopix4ProcessorTask.h>
16 #include <PndMQTopix4Processor.h>
17 #include <iostream>
18 
19 #include "boost/program_options.hpp"
20 
21 #include "FairMQLogger.h"
22 #include "FairMQParser.h"
23 #include "FairMQProgOptions.h"
24 #include "FairMQProcessor.h"
25 #include "FairMQDevice.h"
26 
27 #ifdef NANOMSG
28 #include "FairMQTransportFactoryNN.h"
29 #else
30 #include "FairMQTransportFactoryZMQ.h"
31 #endif
32 
33 using namespace boost::program_options;
34 
35 int main(int argc, char** argv)
36 {
37  PndMQTopix4Processor processor;
38  processor.SetFilter(false);
39  processor.CatchSignals();
40 
41  FairMQProgOptions config;
42 
43  int fe;
44  std::string timeCorr;
45  options_description samplerOptions("Sampler options");
46  samplerOptions.add_options()
47  ("FE", value<int>(&fe)->default_value(-1), "Front-End ID")
48  ("TIMECORR", value<std::string>(&timeCorr)->default_value("0.0"), "Correction of time offset");
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  config.UserParser<FairMQParser::JSON>(filename, id);
60 
61  processor.fChannels = config.GetFairMQMap();
62 
63  LOG(INFO) << "PID: " << getpid();
64  LOG(INFO) << "ID: " << id ;
65  LOG(INFO) << "FE: " << fe;
66  LOG(INFO) << "TimeCorr: " << timeCorr;
67  LOG(INFO) << "Processor::Id Kes: " << FairMQDevice::Id;
68  processor.ListProperties();
69 
70 #ifdef NANOMSG
71  FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN();
72 #else
73  FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ();
74 #endif
75 
76  processor.SetTransport(transportFactory);
77 
78  processor.SetProperty(FairMQDevice::Id, id);
80  processor.SetProperty(PndMQTopix4Processor::TimeCorr, timeCorr);
81 
82  //PndMQTopix4ProcessorTask* task = new PndMQTopix4ProcessorTask();
83  //processor.SetTask(task);
84 
85  processor.ChangeState("INIT_DEVICE");
86  processor.WaitForEndOfState("INIT_DEVICE");
87 
88  processor.ChangeState("INIT_TASK");
89  processor.WaitForEndOfState("INIT_TASK");
90 
91  processor.ChangeState("RUN");
92  processor.InteractiveStateLoop();
93  }
94  catch (std::exception& e)
95  {
96  LOG(ERROR) << e.what();
97  LOG(INFO) << "Command line options are the following: ";
98  config.PrintHelp();
99  return 1;
100  }
101 
102  return 0;
103 }
int main(int argc, char **argv)
int fe
Definition: anaLmdDigi.C:67
virtual void SetProperty(const int key, const std::string &value)
PndTSCorrectorTask * timeCorr
const string filename