Back to home page

Project CMSSW displayed by LXR

 
 

    


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 // DEPRECATED FUNCTION
0119 float addInputsToLineSegmentTrackingUsingExplicitMemory(LSTEvent& event);
0120 float addInputsToLineSegmentTracking(LSTEvent& event, bool useOMP);
0121 
0122 #endif