File indexing completed on 2025-12-17 09:24:06
0001 #include <GlobalVariables.C>
0002
0003 #include <Trkr_TpcReadoutInit.C>
0004
0005 #include <ffarawmodules/TpcCheck.h>
0006
0007 #include <fun4all/Fun4AllDstOutputManager.h>
0008 #include <fun4all/Fun4AllInputManager.h>
0009 #include <fun4all/Fun4AllOutputManager.h>
0010 #include <fun4all/Fun4AllServer.h>
0011 #include <fun4all/Fun4AllUtils.h>
0012
0013 #include <fun4allraw/Fun4AllStreamingInputManager.h>
0014 #include <fun4allraw/InputManagerType.h>
0015 #include <fun4allraw/SingleTpcPoolInput.h>
0016
0017 #include <phool/recoConsts.h>
0018
0019 #include <TSystem.h>
0020
0021 #include <fstream>
0022 #include <iostream>
0023 #include <string>
0024
0025 R__LOAD_LIBRARY(libfun4all.so)
0026 R__LOAD_LIBRARY(libfun4allraw.so)
0027 R__LOAD_LIBRARY(libffarawmodules.so)
0028
0029 void Fun4All_Tpc_Combiner(int nEvents = 0,
0030 const std::string &input_file00 = "tpc00.list",
0031 const std::string &input_file01 = "tpc01.list",
0032 const std::string &input_file02 = "tpc02.list",
0033 const std::string &input_file03 = "tpc03.list",
0034 const std::string &input_file04 = "tpc04.list",
0035 const std::string &input_file05 = "tpc05.list",
0036 const std::string &input_file06 = "tpc06.list",
0037 const std::string &input_file07 = "tpc07.list",
0038 const std::string &input_file08 = "tpc08.list",
0039 const std::string &input_file09 = "tpc09.list",
0040 const std::string &input_file10 = "tpc10.list",
0041 const std::string &input_file11 = "tpc11.list",
0042 const std::string &input_file12 = "tpc12.list",
0043 const std::string &input_file13 = "tpc13.list",
0044 const std::string &input_file14 = "tpc14.list",
0045 const std::string &input_file15 = "tpc15.list",
0046 const std::string &input_file16 = "tpc16.list",
0047 const std::string &input_file17 = "tpc17.list",
0048 const std::string &input_file18 = "tpc18.list",
0049 const std::string &input_file19 = "tpc19.list",
0050 const std::string &input_file20 = "tpc20.list",
0051 const std::string &input_file21 = "tpc21.list",
0052 const std::string &input_file22 = "tpc22.list",
0053 const std::string &input_file23 = "tpc23.list")
0054 {
0055 std::vector<std::string> infile;
0056 infile.push_back(input_file00);
0057 infile.push_back(input_file01);
0058 infile.push_back(input_file02);
0059 infile.push_back(input_file03);
0060 infile.push_back(input_file04);
0061 infile.push_back(input_file05);
0062 infile.push_back(input_file06);
0063 infile.push_back(input_file07);
0064 infile.push_back(input_file08);
0065 infile.push_back(input_file09);
0066 infile.push_back(input_file10);
0067 infile.push_back(input_file11);
0068 infile.push_back(input_file12);
0069 infile.push_back(input_file13);
0070 infile.push_back(input_file14);
0071 infile.push_back(input_file15);
0072 infile.push_back(input_file16);
0073 infile.push_back(input_file17);
0074 infile.push_back(input_file18);
0075 infile.push_back(input_file19);
0076 infile.push_back(input_file20);
0077 infile.push_back(input_file21);
0078 infile.push_back(input_file22);
0079 infile.push_back(input_file23);
0080
0081 std::ifstream infile_stream;
0082 infile_stream.open(input_file00, std::ios_base::in);
0083 std::string filepath;
0084 getline(infile_stream, filepath);
0085 std::pair<int, int> runseg = Fun4AllUtils::GetRunSegment(filepath);
0086 int runnumber = runseg.first;
0087
0088
0089
0090 TpcReadoutInit(runnumber);
0091 std::cout << " run: " << runnumber
0092 << " samples: " << TRACKING::reco_tpc_maxtime_sample
0093 << " pre: " << TRACKING::reco_tpc_time_presample
0094 << " vdrift: " << G4TPC::tpc_drift_velocity_reco
0095 << std::endl;
0096
0097 Fun4AllServer *se = Fun4AllServer::instance();
0098 se->Verbosity(1);
0099
0100
0101 Fun4AllStreamingInputManager *in = new Fun4AllStreamingInputManager("Comb");
0102
0103 int i = 0;
0104 for (const auto &iter : infile)
0105 {
0106 SingleTpcPoolInput *sngl = new SingleTpcPoolInput("TPC_" + std::to_string(i));
0107
0108 sngl->SetBcoRange(130);
0109 sngl->AddListFile(iter);
0110 sngl->SetMaxTpcTimeSamples(TRACKING::reco_tpc_maxtime_sample);
0111 in->registerStreamingInput(sngl, InputManagerType::TPC);
0112 i++;
0113 }
0114 se->registerInputManager(in);
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124 se->run(nEvents);
0125
0126 se->End();
0127 delete se;
0128 gSystem->Exit(0);
0129 }