Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-26 05:07:08

0001 // Author: Marco Rovere - marco.rovere@cern.ch
0002 // Date: 10/2021
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 // fwd declaration
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 filter(std::vector<Trackster>& output,
0028                 const std::vector<Trackster>& inTracksters,
0029                 const typename PatternRecognitionAlgoBaseT<TILES>::Inputs& input,
0030                 std::unordered_map<int, std::vector<int>>& seedToTracksterAssociation) override;
0031 
0032     void energyRegressionAndID(const std::vector<reco::CaloCluster>& layerClusters,
0033                                const tensorflow::Session*,
0034                                std::vector<Trackster>& result);
0035 
0036     static void fillPSetDescription(edm::ParameterSetDescription& iDesc);
0037 
0038   private:
0039     edm::ESGetToken<CaloGeometry, CaloGeometryRecord> caloGeomToken_;
0040     const double antikt_radius_;
0041     const int minNumLayerCluster_;
0042     const bool computeLocalTime_;
0043 
0044     hgcal::RecHitTools rhtools_;
0045 
0046     void buildJetAndTracksters(std::vector<fastjet::PseudoJet>&, std::vector<ticl::Trackster>&);
0047   };
0048 
0049 }  // namespace ticl
0050 #endif