File indexing completed on 2025-06-12 23:30:08
0001 #ifndef trkCore_h
0002 #define trkCore_h
0003
0004 #include "LSTEvent.h"
0005
0006 #include "Trktree.h"
0007 #include "TCanvas.h"
0008 #include "TSystem.h"
0009 #include "AnalysisConfig.h"
0010 #include "ModuleConnectionMap.h"
0011 #include "lst_math.h"
0012 #include <numeric>
0013 #include <filesystem>
0014
0015 using LSTEvent = ALPAKA_ACCELERATOR_NAMESPACE::lst::LSTEvent;
0016 using LSTInputDeviceCollection = ALPAKA_ACCELERATOR_NAMESPACE::lst::LSTInputDeviceCollection;
0017 using ::lst::PixelType;
0018
0019
0020
0021 bool goodEvent();
0022 float runMiniDoublet(LSTEvent* event, int evt);
0023 float runSegment(LSTEvent* event);
0024 float runT4(LSTEvent* event);
0025 float runT4x(LSTEvent* event);
0026 float runpT4(LSTEvent* event);
0027 float runT3(LSTEvent* event);
0028 float runTrackCandidate(LSTEvent* event, bool no_pls_dupclean, bool tc_pls_triplets);
0029 float runQuintuplet(LSTEvent* event);
0030 float runPixelQuintuplet(LSTEvent* event);
0031 float runPixelLineSegment(LSTEvent* event, bool no_pls_dupclean);
0032 float runpT3(LSTEvent* event);
0033
0034
0035
0036 std::vector<int> matchedSimTrkIdxs(std::vector<unsigned int> hitidxs,
0037 std::vector<unsigned int> hittypes,
0038 std::vector<int> const& trk_simhit_simTrkIdx,
0039 std::vector<std::vector<int>> const& trk_ph2_simHitIdx,
0040 std::vector<std::vector<int>> const& trk_pix_simHitIdx,
0041 bool verbose = false,
0042 float* pmatched = nullptr);
0043 int getDenomSimTrkType(int isimtrk,
0044 std::vector<int> const& trk_sim_q,
0045 std::vector<float> const& trk_sim_pt,
0046 std::vector<float> const& trk_sim_eta,
0047 std::vector<int> const& trk_sim_bunchCrossing,
0048 std::vector<int> const& trk_sim_event,
0049 std::vector<int> const& trk_sim_parentVtxIdx,
0050 std::vector<float> const& trk_simvtx_x,
0051 std::vector<float> const& trk_simvtx_y,
0052 std::vector<float> const& trk_simvtx_z);
0053 int getDenomSimTrkType(std::vector<int> simidxs,
0054 std::vector<int> const& trk_sim_q,
0055 std::vector<float> const& trk_sim_pt,
0056 std::vector<float> const& trk_sim_eta,
0057 std::vector<int> const& trk_sim_bunchCrossing,
0058 std::vector<int> const& trk_sim_event,
0059 std::vector<int> const& trk_sim_parentVtxIdx,
0060 std::vector<float> const& trk_simvtx_x,
0061 std::vector<float> const& trk_simvtx_y,
0062 std::vector<float> const& trk_simvtx_z);
0063
0064
0065
0066 float drfracSimHitConsistentWithHelix(int isimtrk,
0067 int isimhitidx,
0068 std::vector<float> const& trk_simvtx_x,
0069 std::vector<float> const& trk_simvtx_y,
0070 std::vector<float> const& trk_simvtx_z,
0071 std::vector<float> const& trk_sim_pt,
0072 std::vector<float> const& trk_sim_eta,
0073 std::vector<float> const& trk_sim_phi,
0074 std::vector<int> const& trk_sim_q,
0075 std::vector<float> const& trk_simhit_x,
0076 std::vector<float> const& trk_simhit_y,
0077 std::vector<float> const& trk_simhit_z);
0078 float drfracSimHitConsistentWithHelix(lst_math::Helix& helix,
0079 int isimhitidx,
0080 std::vector<float> const& trk_simhit_x,
0081 std::vector<float> const& trk_simhit_y,
0082 std::vector<float> const& trk_simhit_z);
0083 float distxySimHitConsistentWithHelix(int isimtrk,
0084 int isimhitidx,
0085 std::vector<float> const& trk_simvtx_x,
0086 std::vector<float> const& trk_simvtx_y,
0087 std::vector<float> const& trk_simvtx_z,
0088 std::vector<float> const& trk_sim_pt,
0089 std::vector<float> const& trk_sim_eta,
0090 std::vector<float> const& trk_sim_phi,
0091 std::vector<int> const& trk_sim_q,
0092 std::vector<float> const& trk_simhit_x,
0093 std::vector<float> const& trk_simhit_y,
0094 std::vector<float> const& trk_simhit_z);
0095 float distxySimHitConsistentWithHelix(lst_math::Helix& helix,
0096 int isimhitidx,
0097 std::vector<float> const& trk_simhit_x,
0098 std::vector<float> const& trk_simhit_y,
0099 std::vector<float> const& trk_simhit_z);
0100 TVector3 calculateR3FromPCA(const TVector3& p3, const float dxy, const float dz);
0101
0102
0103
0104 float addInputsToEventPreLoad(LSTEvent* event,
0105 lst::LSTInputHostCollection* lstInputHC,
0106 LSTInputDeviceCollection* lstInputDC,
0107 ALPAKA_ACCELERATOR_NAMESPACE::Queue& queue);
0108
0109 void printTimingInformation(std::vector<std::vector<float>>& timing_information, float fullTime, float fullavg);
0110
0111
0112
0113 TString get_absolute_path_after_check_file_exists(const std::string name);
0114 void writeMetaData();
0115
0116
0117
0118
0119 float addInputsToLineSegmentTrackingUsingExplicitMemory(LSTEvent& event);
0120 float addInputsToLineSegmentTracking(LSTEvent& event, bool useOMP);
0121
0122 #endif