Back to home page

sPhenix code displayed by LXR

 
 

    


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 = "./"; //Top dir of where the output nTuples will be written
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 }