Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-06-11 03:00:11

0001 #ifndef L1TRIGGER_PHASE2L1PARTICLEFLOWS_NNVtxAssoc_H
0002 #define L1TRIGGER_PHASE2L1PARTICLEFLOWS_NNVtxAssoc_H
0003 
0004 // Package:      L1Trigger/Phase2L1ParticleFlow
0005 // Class:        NNVtxAssoc
0006 // Description:  Designed to run the track to vertex associations created by the E2E NNVtx.
0007 //               TTTrackNetworkSelector either accepts or rejects that a PF object's (t) track is associated to a vertex (v).
0008 // Authors:      Kai Hong Law and Benjamin Radburn-Smith
0009 // Created:      February 2025
0010 
0011 #include <string>
0012 #include "DataFormats/L1TParticleFlow/interface/layer1_emulator.h"
0013 
0014 namespace edm {
0015   class ParameterSet;
0016   class ParameterSetDescription;
0017 }  // namespace edm
0018 namespace tensorflow {
0019   class Session;
0020 }  // namespace tensorflow
0021 using namespace l1ct;
0022 
0023 class NNVtxAssoc {
0024 public:
0025   NNVtxAssoc(std::string AssociationGraphPath,
0026              const double AssociationThreshold,
0027              const std::vector<double>& AssociationNetworkZ0binning,
0028              const std::vector<double>& AssociationNetworkEtaBounds,
0029              const std::vector<double>& AssociationNetworkZ0ResBins);
0030 
0031   void NNVtxAssocDebug();
0032   static edm::ParameterSetDescription getParameterSetDescription();
0033 
0034   template <typename T>
0035   bool TTTrackNetworkSelector(const PFRegionEmu& region, const T& t, const l1ct::PVObjEmu& v);
0036 
0037 private:
0038   tensorflow::Session* associationSesh_;
0039   double associationThreshold_;
0040   std::vector<double> z0_binning_;
0041   std::vector<double> eta_bins_;
0042   std::vector<double> res_bins_;
0043   std::stringstream log_;
0044 };
0045 #endif