File indexing completed on 2025-08-05 08:12:57
0001 #include <fun4all/Fun4AllUtils.h>
0002 #include <G4_ActsGeom.C>
0003 #include <G4_Magnet.C>
0004 #include <GlobalVariables.C>
0005 #include <Trkr_Reco.C>
0006 #include <Trkr_RecoInit.C>
0007
0008 #include <ffamodules/CDBInterface.h>
0009
0010 #include <fun4all/Fun4AllDstInputManager.h>
0011 #include <fun4all/Fun4AllDstOutputManager.h>
0012 #include <fun4all/Fun4AllInputManager.h>
0013 #include <fun4all/Fun4AllOutputManager.h>
0014 #include <fun4all/Fun4AllRunNodeInputManager.h>
0015 #include <fun4all/Fun4AllServer.h>
0016
0017 #include <phool/recoConsts.h>
0018
0019 #include <cdbobjects/CDBTTree.h>
0020
0021 #include <kfparticle_sphenix/KFParticle_sPHENIX.h>
0022
0023 #include <stdio.h>
0024
0025 #include "HF_selections_QM25.C"
0026
0027 using namespace HeavyFlavorReco;
0028
0029 R__LOAD_LIBRARY(libfun4all.so)
0030 R__LOAD_LIBRARY(libffamodules.so)
0031 R__LOAD_LIBRARY(libphool.so)
0032 R__LOAD_LIBRARY(libcdbobjects.so)
0033
0034 void Fun4All_HF_QM25(
0035 const int nEvents = 100,
0036 const std::string inputDST = "DST_TRKR_TRACKS_run2pp_ana475_2024p018_v001-00053877-00000.root",
0037 const std::string inputDir = "/sphenix/lustre01/sphnxpro/production/run2pp/physics/ana475_2024p018_v001/DST_TRKR_TRACKS/run_00053800_00053900/dst/",
0038 const int nSkip = 0)
0039 {
0040 std::string inputTrackFile = inputDir + inputDST;
0041
0042 std::pair<int, int> runseg = Fun4AllUtils::GetRunSegment(inputDST);
0043 int runnumber = runseg.first;
0044 std::stringstream nice_runnumber;
0045 nice_runnumber << std::setw(8) << std::setfill('0') << to_string(runnumber);
0046
0047 int rounded_up = 100*(std::ceil((float) runnumber/100));
0048 std::stringstream nice_rounded_up;
0049 nice_rounded_up << std::setw(8) << std::setfill('0') << to_string(rounded_up);
0050
0051 int rounded_down = 100*(std::floor((float) runnumber/100));
0052 std::stringstream nice_rounded_down;
0053 nice_rounded_down << std::setw(8) << std::setfill('0') << to_string(rounded_down);
0054
0055 int segment = runseg.second;
0056 std::stringstream nice_segment;
0057 nice_segment << std::setw(5) << std::setfill('0') << to_string(segment);
0058
0059 std::stringstream nice_skip;
0060 nice_skip << std::setw(5) << std::setfill('0') << to_string(nSkip);
0061
0062 auto rc = recoConsts::instance();
0063 rc->set_IntFlag("RUNNUMBER", runnumber);
0064
0065 Enable::CDB = true;
0066 rc->set_StringFlag("CDB_GLOBALTAG", "ProdA_2024");
0067 rc->set_uint64Flag("TIMESTAMP", runnumber);
0068 std::string geofile = CDBInterface::instance()->getUrl("Tracking_Geometry");
0069
0070 output_dir = "./";
0071 trailer = "_" + nice_runnumber.str() + "_" + nice_segment.str() + "_" + nice_skip.str() + ".root";
0072
0073 if (run_pipi_reco) create_hf_directories(pipi_reconstruction_name, pipi_output_dir, pipi_output_reco_file);
0074 if (run_Kpi_reco) create_hf_directories(Kpi_reconstruction_name, Kpi_output_dir, Kpi_output_reco_file);
0075 if (run_Kpi_reco_likeSign) create_hf_directories(Kpi_like_reconstruction_name, Kpi_like_output_dir, Kpi_like_output_reco_file);
0076 if (run_Kpipi_reco) create_hf_directories(Kpipi_reconstruction_name, Kpipi_output_dir, Kpipi_output_reco_file);
0077 if (run_Kpipi_reco_likeSign) create_hf_directories(Kpipi_like_reconstruction_name, Kpipi_like_output_dir, Kpipi_like_output_reco_file);
0078 if (run_KKpi_reco) create_hf_directories(KKpi_reconstruction_name, KKpi_output_dir, KKpi_output_reco_file);
0079 if (run_pKpi_reco) create_hf_directories(pKpi_reconstruction_name, pKpi_output_dir, pKpi_output_reco_file);
0080 if (run_pKpi_reco_likeSign) create_hf_directories(pKpi_like_reconstruction_name, pKpi_like_output_dir, pKpi_like_output_reco_file);
0081 if (run_Kstar_reco) create_hf_directories(Kstar_reconstruction_name, Kstar_output_dir, Kstar_output_reco_file);
0082 if (run_KK_reco) create_hf_directories(KK_reconstruction_name, KK_output_dir, KK_output_reco_file);
0083 if (run_Lambdapi_reco) create_hf_directories(Lambdapi_reconstruction_name, Lambdapi_output_dir, Lambdapi_output_reco_file);
0084
0085 auto se = Fun4AllServer::instance();
0086 se->Verbosity(1);
0087
0088 Enable::MVTX_APPLYMISALIGNMENT = true;
0089 ACTSGEOM::mvtx_applymisalignment = Enable::MVTX_APPLYMISALIGNMENT;
0090
0091 Fun4AllRunNodeInputManager *ingeo = new Fun4AllRunNodeInputManager("GeoIn");
0092 ingeo->AddFile(geofile);
0093 se->registerInputManager(ingeo);
0094
0095 TrackingInit();
0096
0097 auto hitsintrack = new Fun4AllDstInputManager("TrackInputManager");
0098 hitsintrack->fileopen(inputTrackFile);
0099 se->registerInputManager(hitsintrack);
0100
0101 if (get_trigger_info)
0102 {
0103 std::string gl1_file = "/sphenix/lustre01/sphnxpro/production/run2pp/physics/ana464_nocdbtag_v001/DST_STREAMING_EVENT_INTT0/run_"
0104 + nice_rounded_down.str() + "_" + nice_rounded_up.str()
0105 + "/dst/DST_STREAMING_EVENT_INTT0_run2pp_ana464_nocdbtag_v001-" + nice_runnumber.str() + "-" + nice_segment.str() + ".root";
0106
0107 auto hitsintrig = new Fun4AllDstInputManager("TriggerInputManager");
0108 hitsintrig->fileopen(gl1_file);
0109 se->registerInputManager(hitsintrig);
0110 }
0111
0112 if (get_dEdx_info || get_detector_info)
0113 {
0114 std::string clus_file = "/sphenix/lustre01/sphnxpro/production/run2pp/physics/ana466_2024p012_v001/DST_TRKR_CLUSTER/run_"
0115 + nice_rounded_down.str() + "_" + nice_rounded_up.str()
0116 + "/dst/DST_TRKR_CLUSTER_run2pp_ana466_2024p012_v001-" + nice_runnumber.str() + "-" + nice_segment.str() + ".root";
0117
0118 auto hitsinclus = new Fun4AllDstInputManager("ClusterInputManager");
0119 hitsinclus->fileopen(clus_file);
0120 se->registerInputManager(hitsinclus);
0121 }
0122
0123 if (run_pipi_reco || run_Kpi_reco || run_Kpipi_reco || run_KKpi_reco || run_pKpi_reco || run_Lambdapi_reco) init_kfp_dependencies();
0124
0125 if (run_pipi_reco) reconstruct_pipi_mass();
0126 if (run_Kpi_reco) reconstruct_Kpi_mass();
0127 if (run_Kpi_reco_likeSign) reconstruct_Kpi_mass_likeSign();
0128 if (run_Kpipi_reco) reconstruct_Kpipi_mass();
0129 if (run_Kpipi_reco_likeSign) reconstruct_Kpipi_mass_likeSign();
0130 if (run_KKpi_reco) reconstruct_KKpi_mass();
0131 if (run_pKpi_reco) reconstruct_pKpi_mass();
0132 if (run_pKpi_reco_likeSign) reconstruct_pKpi_mass_likeSign();
0133 if (run_Kstar_reco) reconstruct_Kstar_mass();
0134 if (run_KK_reco) reconstruct_KK_mass();
0135 if (run_Lambdapi_reco) reconstruct_Lambdapi_mass();
0136
0137 se->skip(nSkip);
0138 se->run(nEvents);
0139 se->End();
0140 se->PrintTimer();
0141
0142 if (run_pipi_reco) end_kfparticle(pipi_output_reco_file, pipi_output_dir);
0143 if (run_Kpi_reco) end_kfparticle(Kpi_output_reco_file, Kpi_output_dir);
0144 if (run_Kpi_reco_likeSign) end_kfparticle(Kpi_like_output_reco_file, Kpi_like_output_dir);
0145 if (run_Kpipi_reco) end_kfparticle(Kpipi_output_reco_file, Kpipi_output_dir);
0146 if (run_Kpipi_reco_likeSign) end_kfparticle(Kpipi_like_output_reco_file, Kpipi_like_output_dir);
0147 if (run_KKpi_reco) end_kfparticle(KKpi_output_reco_file, KKpi_output_dir);
0148 if (run_pKpi_reco) end_kfparticle(pKpi_output_reco_file, pKpi_output_dir);
0149 if (run_pKpi_reco_likeSign) end_kfparticle(pKpi_like_output_reco_file, pKpi_like_output_dir);
0150 if (run_Kstar_reco) end_kfparticle(Kstar_output_reco_file, Kstar_output_dir);
0151 if (run_KK_reco) end_kfparticle(KK_output_reco_file, KK_output_dir);
0152 if (run_Lambdapi_reco) end_kfparticle(Lambdapi_output_reco_file, Lambdapi_output_dir);
0153
0154 delete se;
0155
0156 std::cout << "Finished" << std::endl;
0157 gSystem->Exit(0);
0158 }