File indexing completed on 2024-06-13 03:24:02
0001
0002
0003
0004 #ifndef __RecoHGCal_TICL_PRbyFASTJET_H__
0005 #define __RecoHGCal_TICL_PRbyFASTJET_H__
0006 #include <memory> // unique_ptr
0007 #include "RecoHGCal/TICL/interface/PatternRecognitionAlgoBase.h"
0008 #include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h"
0009
0010
0011
0012 namespace fastjet {
0013 class PseudoJet;
0014 };
0015
0016 namespace ticl {
0017 template <typename TILES>
0018 class PatternRecognitionbyFastJet final : public PatternRecognitionAlgoBaseT<TILES> {
0019 public:
0020 PatternRecognitionbyFastJet(const edm::ParameterSet& conf, edm::ConsumesCollector);
0021 ~PatternRecognitionbyFastJet() override = default;
0022
0023 void makeTracksters(const typename PatternRecognitionAlgoBaseT<TILES>::Inputs& input,
0024 std::vector<Trackster>& result,
0025 std::unordered_map<int, std::vector<int>>& seedToTracksterAssociation) override;
0026
0027 void energyRegressionAndID(const std::vector<reco::CaloCluster>& layerClusters,
0028 const tensorflow::Session*,
0029 std::vector<Trackster>& result);
0030
0031 static void fillPSetDescription(edm::ParameterSetDescription& iDesc);
0032
0033 private:
0034 edm::ESGetToken<CaloGeometry, CaloGeometryRecord> caloGeomToken_;
0035 const double antikt_radius_;
0036 const int minNumLayerCluster_;
0037 const std::string eidInputName_;
0038 const std::string eidOutputNameEnergy_;
0039 const std::string eidOutputNameId_;
0040 const float eidMinClusterEnergy_;
0041 const int eidNLayers_;
0042 const int eidNClusters_;
0043 const bool computeLocalTime_;
0044
0045 hgcal::RecHitTools rhtools_;
0046 tensorflow::Session* eidSession_;
0047
0048 static const int eidNFeatures_ = 3;
0049
0050 void buildJetAndTracksters(std::vector<fastjet::PseudoJet>&, std::vector<ticl::Trackster>&);
0051 };
0052
0053 }
0054 #endif