2 #include "spdlog/sinks/stdout_color_sinks.h"
3 #include "spdlog/spdlog.h"
6 #include "Tofrec02_ihep.h"
7 #include "TrdKCluster.h"
18 int main(
int argc,
char **argv) {
19 auto logger = spdlog::stdout_color_st(
"NtpMaker");
21 logger->info(
"Starting up...");
28 int parse_status = argp_parse(&
argp, argc, argv, 0, 0, &arguments);
31 throw std::runtime_error(
"Failed parsing CLI arguments");
33 if (std::string(arguments.
debug_level) ==
"Debug") {
34 spdlog::set_level(spdlog::level::debug);
35 }
else if (std::string(arguments.
debug_level) ==
"Trace") {
36 spdlog::set_level(spdlog::level::trace);
41 logger->error(
"Missing input file");
44 std::string inputFileName = arguments.
infilename;
47 if (inputFileName.find(
".txt") != std::string::npos) {
49 }
else if (inputFileName.find(
".root") != std::string::npos) {
50 flag_filelist =
false;
52 logger->error(
"{} is not a valid input file", inputFileName);
55 std::string outputFileName;
59 outputFileName = inputFileName.substr(inputFileName.find_last_of(
'/') + 1,
60 inputFileName.size() - inputFileName.find_last_of(
'/'));
62 outputFileName = outputFileName.substr(0, outputFileName.find_last_of(
'.')) +
".root";
65 logger->info(
"Running on input file {}", inputFileName);
66 logger->info(
"Writing output file {}", outputFileName);
71 logger->debug(
"Creating AMSChain");
72 auto amsChain = std::make_unique<AMSChain>();
77 amsChain->Add(inputFileName.c_str());
79 ifstream infilelist(inputFileName.c_str());
81 while (!infilelist.eof()) {
82 infilelist >> bufname;
83 if (bufname.CompareTo(
"")) {
84 logger->info(
"Adding file {} to amsChain", bufname);
85 amsChain->Add(bufname);
89 unsigned long long nEvents = amsChain->GetEntries();
90 logger->info(
"{} events in this file", nEvents);
93 AMSEventR *
event = amsChain->GetEvent(0);
94 bool isMC =
event->nMCEventg() > 0;
101 unsigned long long EventNumber = 0;
102 unsigned long long firstev, lastev;
103 if (arguments.
event > 0) {
104 logger->debug(
"Run in single event mode");
105 EventNumber = amsChain->GetEntryNo(
event->Run(), arguments.
event);
106 logger->debug(
" event no. {} - {}",
event->Run(), EventNumber);
107 firstev = EventNumber;
108 lastev = EventNumber + 1;
110 logger->debug(
"Run in from-event mode");
111 EventNumber = amsChain->GetEntryNo(
event->Run(), arguments.
from_event);
112 logger->debug(
" event no. {} - {}",
event->Run(), EventNumber);
113 firstev = EventNumber;
114 lastev = arguments.
nevents > 0 ? EventNumber + arguments.
nevents : nEvents;
123 AMSSetupR::RTI::UseLatest(7);
125 AMSSetupR::SlowControlR::ReadFromExternalFile =
false;
128 TRMCFFKEY_DEF::ReadFromFile = 0;
129 TRFITFFKEY_DEF::ReadFromFile = 0;
130 TRFITFFKEY.ErcHeY = 0;
132 TofRecH::RebuildBetaHInReadHeader =
false;
135 RichRingR::useEffectiveTemperatureCorrection =
true;
137 RichRingR::reloadRunTag =
true;
141 TrdKCluster::ForceReadAlignment = 0;
142 TrdKCluster::ForceReadCalibration = 0;
143 TrdKCluster::ForceReadXePressure = 0;
144 TrdKCluster::SetDefaultMCXePressure(900);
152 amsChain->Process(&analysis,
"", lastev - firstev, firstev);
154 logger->info(
"...exiting");
int main(int argc, char **argv)
unsigned long long firstentry
first entry to be processed
void SetOutputFilename(std::string outFilename)
unsigned long long lastentry
last entry to be processed