File indexing completed on 2024-09-26 05:07:07
0001
0002
0003
0004 #ifndef RecoHGCal_TICL_PatternRecognitionAlgoBase_H__
0005 #define RecoHGCal_TICL_PatternRecognitionAlgoBase_H__
0006
0007 #include <memory>
0008 #include <vector>
0009 #include <functional>
0010 #include <algorithm>
0011 #include "DataFormats/CaloRecHit/interface/CaloCluster.h"
0012 #include "DataFormats/HGCalReco/interface/Trackster.h"
0013 #include "DataFormats/HGCalReco/interface/TICLLayerTile.h"
0014 #include "DataFormats/HGCalReco/interface/TICLSeedingRegion.h"
0015 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0016 #include "DataFormats/Common/interface/ValueMap.h"
0017 #include "RecoHGCal/TICL/interface/GlobalCache.h"
0018 #include "DataFormats/HGCalReco/interface/Common.h"
0019 #include "FWCore/Framework/interface/ConsumesCollector.h"
0020 #include "PhysicsTools/TensorFlow/interface/TensorFlow.h"
0021
0022 namespace edm {
0023 class Event;
0024 class EventSetup;
0025 }
0026
0027 namespace ticl {
0028 template <typename TILES>
0029 class PatternRecognitionAlgoBaseT {
0030 public:
0031 PatternRecognitionAlgoBaseT(const edm::ParameterSet& conf, edm::ConsumesCollector)
0032 : algo_verbosity_(conf.getParameter<int>("algo_verbosity")) {}
0033 virtual ~PatternRecognitionAlgoBaseT() {};
0034
0035 struct Inputs {
0036 const edm::Event& ev;
0037 const edm::EventSetup& es;
0038 const std::vector<reco::CaloCluster>& layerClusters;
0039 const std::vector<float>& mask;
0040 const edm::ValueMap<std::pair<float, float>>& layerClustersTime;
0041 const TILES& tiles;
0042 const std::vector<TICLSeedingRegion>& regions;
0043 Inputs(const edm::Event& eV,
0044 const edm::EventSetup& eS,
0045 const std::vector<reco::CaloCluster>& lC,
0046 const std::vector<float>& mS,
0047 const edm::ValueMap<std::pair<float, float>>& lT,
0048 const TILES& tL,
0049 const std::vector<TICLSeedingRegion>& rG)
0050 : ev(eV), es(eS), layerClusters(lC), mask(mS), layerClustersTime(lT), tiles(tL), regions(rG) {}
0051 };
0052
0053 virtual void makeTracksters(const Inputs& input,
0054 std::vector<Trackster>& result,
0055 std::unordered_map<int, std::vector<int>>& seedToTracksterAssociation) = 0;
0056
0057 virtual void filter(std::vector<Trackster>& output,
0058 const std::vector<Trackster>& inTracksters,
0059 const Inputs& input,
0060 std::unordered_map<int, std::vector<int>>& seedToTracksterAssociation) = 0;
0061
0062 protected:
0063 int algo_verbosity_;
0064 };
0065 }
0066
0067 #endif