File indexing completed on 2025-08-03 08:20:27
0001 #ifndef MACRO_TPCREADOUTINIT_C
0002 #define MACRO_TPCREADOUTINIT_C
0003
0004 R__LOAD_LIBRARY(libtpc.so)
0005 R__LOAD_LIBRARY(libtrack_reco.so)
0006 R__LOAD_LIBRARY(libtpccalib.so)
0007
0008 #include <GlobalVariables.C>
0009
0010 #include <G4_TrkrVariables.C>
0011 #include <fun4all/Fun4AllServer.h>
0012
0013 #pragma GCC diagnostic push
0014 #pragma GCC diagnostic ignored "-Wundefined-internal"
0015 #include <tpc/TpcClusterZCrossingCorrection.h>
0016 #pragma GCC diagnostic pop
0017
0018 #include <cdbobjects/CDBTTree.h>
0019 #include <ffamodules/CDBInterface.h>
0020
0021 void TpcSampleInit(const int RunNumber = 41989)
0022 {
0023 if(RunNumber>=41624)
0024 {
0025 TRACKING::reco_tpc_maxtime_sample = 425;
0026 TRACKING::reco_tpc_time_presample = 40;
0027 }
0028 else
0029 {
0030 TRACKING::reco_tpc_maxtime_sample = 420;
0031 TRACKING::reco_tpc_time_presample = 0;
0032 }
0033 }
0034
0035 void TpcReadoutInit(const int RunNumber = 41989)
0036 {
0037
0038 TRACKING::reco_tpc_is_configured = true;
0039 if(RunNumber<45737)
0040 {
0041
0042 G4TPC::tpc_drift_velocity_reco = (8.0 / 1000) * 107.0 / 105.0;
0043 } else if(RunNumber<49515) {
0044
0045 G4TPC::tpc_drift_velocity_reco = 0.007;
0046 } else {
0047
0048
0049 G4TPC::tpc_drift_velocity_reco = 0.00713;
0050 }
0051
0052 if(RunNumber>=41624)
0053 {
0054 TRACKING::reco_tpc_maxtime_sample = 425;
0055 TRACKING::reco_tpc_time_presample = 40;
0056 }else{
0057 TRACKING::reco_tpc_maxtime_sample = 420;
0058 TRACKING::reco_tpc_time_presample = 0;
0059 }
0060
0061 std::string tpc_dv_calib_dir = CDBInterface::instance()->getUrl("TPC_DRIFT_VELOCITY");
0062 if (tpc_dv_calib_dir.empty())
0063 {
0064 std::cout << "No calibrated TPC drift velocity for Run " << RunNumber << ". Use default value " << G4TPC::tpc_drift_velocity_reco << " cm/ns" << std::endl;
0065 }
0066 else
0067 {
0068 CDBTTree *cdbttree = new CDBTTree(tpc_dv_calib_dir);
0069 cdbttree->LoadCalibrations();
0070 G4TPC::tpc_drift_velocity_reco = cdbttree->GetSingleFloatValue("tpc_drift_velocity");
0071 std::cout << "Use calibrated TPC drift velocity for Run " << RunNumber << ": " << G4TPC::tpc_drift_velocity_reco << " cm/ns" << std::endl;
0072 }
0073
0074 TpcClusterZCrossingCorrection::_vdrift = G4TPC::tpc_drift_velocity_reco;
0075
0076 std::string tpc_tzero_calib_dir = CDBInterface::instance()->getUrl("TPC_TZERO_OFFSET");
0077 if (tpc_tzero_calib_dir.empty())
0078 {
0079 std::cout << "No calibrated TPC time zero for Run " << RunNumber << ". Use default value " << G4TPC::tpc_tzero_reco << " ns" << std::endl;
0080 }
0081 else
0082 {
0083 CDBTTree *cdbttree = new CDBTTree(tpc_tzero_calib_dir);
0084 cdbttree->LoadCalibrations();
0085 G4TPC::tpc_tzero_reco = cdbttree->GetSingleFloatValue("tpc_tzero");
0086 std::cout << "Use calibrated TPC time offset for Run " << RunNumber << ": " << G4TPC::tpc_tzero_reco << " ns" << std::endl;
0087 }
0088 }
0089
0090
0091 #endif