Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-05-09 22:40:18

0001 #ifndef RecoTracker_LSTCore_interface_alpaka_LST_h
0002 #define RecoTracker_LSTCore_interface_alpaka_LST_h
0003 
0004 #include "RecoTracker/LSTCore/interface/alpaka/Common.h"
0005 #include "RecoTracker/LSTCore/interface/LSTESData.h"
0006 #include "RecoTracker/LSTCore/interface/alpaka/LSTInputDeviceCollection.h"
0007 
0008 #include <cstdlib>
0009 #include <numeric>
0010 #include <alpaka/alpaka.hpp>
0011 
0012 namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
0013   class LSTEvent;
0014 
0015   class LST {
0016   public:
0017     LST() = default;
0018 
0019     void run(Queue& queue,
0020              bool verbose,
0021              const float ptCut,
0022              LSTESData<Device> const* deviceESData,
0023              LSTInputDeviceCollection const* lstInputDC,
0024              bool no_pls_dupclean,
0025              bool tc_pls_triplets);
0026     std::vector<std::vector<unsigned int>> const& hits() const { return out_tc_hitIdxs_; }
0027     std::vector<unsigned int> const& len() const { return out_tc_len_; }
0028     std::vector<int> const& seedIdx() const { return out_tc_seedIdx_; }
0029     std::vector<short> const& trackCandidateType() const { return out_tc_trackCandidateType_; }
0030 
0031   private:
0032     void getOutput(LSTEvent& event);
0033 
0034     // Output vectors
0035     std::vector<std::vector<unsigned int>> out_tc_hitIdxs_;
0036     std::vector<unsigned int> out_tc_len_;
0037     std::vector<int> out_tc_seedIdx_;
0038     std::vector<short> out_tc_trackCandidateType_;
0039   };
0040 
0041 }  // namespace ALPAKA_ACCELERATOR_NAMESPACE::lst
0042 
0043 #endif