File indexing completed on 2025-02-04 02:43:30
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 ::lst::PixelType;
0017
0018
0019
0020 bool goodEvent();
0021 float runMiniDoublet(LSTEvent *event, int evt);
0022 float runSegment(LSTEvent *event);
0023 float runT4(LSTEvent *event);
0024 float runT4x(LSTEvent *event);
0025 float runpT4(LSTEvent *event);
0026 float runT3(LSTEvent *event);
0027 float runTrackCandidate(LSTEvent *event, bool no_pls_dupclean, bool tc_pls_triplets);
0028 float runQuintuplet(LSTEvent *event);
0029 float runPixelQuintuplet(LSTEvent *event);
0030 float runPixelLineSegment(LSTEvent *event,
0031 std::vector<unsigned int> hitIndices_vec0,
0032 std::vector<unsigned int> hitIndices_vec1,
0033 std::vector<unsigned int> hitIndices_vec2,
0034 std::vector<unsigned int> hitIndices_vec3,
0035 std::vector<float> deltaPhi_vec,
0036 bool no_pls_dupclean);
0037 float runpT3(LSTEvent *event);
0038
0039
0040
0041 std::vector<int> matchedSimTrkIdxs(std::vector<unsigned int> hitidxs,
0042 std::vector<unsigned int> hittypes,
0043 bool verbose = false,
0044 float *pmatched = nullptr);
0045 std::vector<int> matchedSimTrkIdxs(std::vector<int> hitidxs, std::vector<int> hittypes, bool verbose = false);
0046 int getDenomSimTrkType(int isimtrk);
0047 int getDenomSimTrkType(std::vector<int> simidxs);
0048
0049
0050
0051 float drfracSimHitConsistentWithHelix(int isimtrk, int isimhitidx);
0052 float drfracSimHitConsistentWithHelix(lst_math::Helix &helix, int isimhitidx);
0053 float distxySimHitConsistentWithHelix(int isimtrk, int isimhitidx);
0054 float distxySimHitConsistentWithHelix(lst_math::Helix &helix, int isimhitidx);
0055 TVector3 calculateR3FromPCA(const TVector3 &p3, const float dxy, const float dz);
0056
0057
0058
0059 void addInputsToLineSegmentTrackingPreLoad(std::vector<std::vector<float>> &out_trkX,
0060 std::vector<std::vector<float>> &out_trkY,
0061 std::vector<std::vector<float>> &out_trkZ,
0062 std::vector<std::vector<unsigned int>> &out_hitId,
0063 std::vector<std::vector<unsigned int>> &out_hitIdxs,
0064 std::vector<std::vector<unsigned int>> &out_hitIndices_vec0,
0065 std::vector<std::vector<unsigned int>> &out_hitIndices_vec1,
0066 std::vector<std::vector<unsigned int>> &out_hitIndices_vec2,
0067 std::vector<std::vector<unsigned int>> &out_hitIndices_vec3,
0068 std::vector<std::vector<float>> &out_deltaPhi_vec,
0069 std::vector<std::vector<float>> &out_ptIn_vec,
0070 std::vector<std::vector<float>> &out_ptErr_vec,
0071 std::vector<std::vector<float>> &out_px_vec,
0072 std::vector<std::vector<float>> &out_py_vec,
0073 std::vector<std::vector<float>> &out_pz_vec,
0074 std::vector<std::vector<float>> &out_eta_vec,
0075 std::vector<std::vector<float>> &out_etaErr_vec,
0076 std::vector<std::vector<float>> &out_phi_vec,
0077 std::vector<std::vector<int>> &out_charge_vec,
0078 std::vector<std::vector<unsigned int>> &out_seedIdx_vec,
0079 std::vector<std::vector<int>> &out_superbin_vec,
0080 std::vector<std::vector<PixelType>> &out_pixelType_vec,
0081 std::vector<std::vector<char>> &out_isQuad_vec);
0082
0083 float addInputsToEventPreLoad(LSTEvent *event,
0084 bool useOMP,
0085 std::vector<float> trkX,
0086 std::vector<float> trkY,
0087 std::vector<float> trkZ,
0088 std::vector<unsigned int> hitId,
0089 std::vector<unsigned int> hitIdxs,
0090 std::vector<float> ptIn_vec,
0091 std::vector<float> ptErr_vec,
0092 std::vector<float> px_vec,
0093 std::vector<float> py_vec,
0094 std::vector<float> pz_vec,
0095 std::vector<float> eta_vec,
0096 std::vector<float> etaErr_vec,
0097 std::vector<float> phi_vec,
0098 std::vector<int> charge_vec,
0099 std::vector<unsigned int> seedIdx_vec,
0100 std::vector<int> superbin_vec,
0101 std::vector<PixelType> pixelType_vec,
0102 std::vector<char> isQuad_vec);
0103
0104 void printTimingInformation(std::vector<std::vector<float>> &timing_information, float fullTime, float fullavg);
0105
0106
0107
0108 TString get_absolute_path_after_check_file_exists(const std::string name);
0109 void writeMetaData();
0110
0111
0112
0113
0114 float addInputsToLineSegmentTrackingUsingExplicitMemory(LSTEvent &event);
0115 float addInputsToLineSegmentTracking(LSTEvent &event, bool useOMP);
0116
0117 #endif