File indexing completed on 2024-04-06 12:21:26
0001 #ifndef PFALGO2HGC_REF_H
0002 #define PFALGO2HGC_REF_H
0003
0004 #include "pfalgo_common_ref.h"
0005
0006 namespace edm {
0007 class ParameterSet;
0008 class ParameterSetDescription;
0009 }
0010
0011 namespace l1ct {
0012
0013 class PFAlgo2HGCEmulator : public PFAlgoEmulatorBase {
0014 public:
0015 PFAlgo2HGCEmulator(unsigned int nTrack,
0016 unsigned int nCalo,
0017 unsigned int nMu,
0018 unsigned int nSelCalo,
0019 unsigned int dR2Max_Tk_Mu,
0020 unsigned int dR2Max_Tk_Calo,
0021 pt_t tk_MaxInvPt_Loose,
0022 pt_t tk_MaxInvPt_Tight)
0023 : PFAlgoEmulatorBase(
0024 nTrack, nCalo, nMu, nSelCalo, dR2Max_Tk_Mu, dR2Max_Tk_Calo, tk_MaxInvPt_Loose, tk_MaxInvPt_Tight) {}
0025
0026
0027 PFAlgo2HGCEmulator(const edm::ParameterSet& iConfig);
0028
0029 ~PFAlgo2HGCEmulator() override {}
0030
0031 static edm::ParameterSetDescription getParameterSetDescription();
0032
0033 void run(const PFInputRegion& in, OutputRegion& out) const override;
0034
0035
0036 void mergeNeutrals(OutputRegion& out) const override {}
0037
0038 void toFirmware(const PFInputRegion& in,
0039 PFRegion& region,
0040 HadCaloObj calo[],
0041 TkObj track[],
0042 MuObj mu[]) const;
0043 void toFirmware(const OutputRegion& out,
0044 PFChargedObj outch[],
0045 PFNeutralObj outne[],
0046 PFChargedObj outmu[]) const;
0047 };
0048
0049 }
0050
0051 #endif