Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-06-10 01:53:49

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 }
0009 
0010 namespace l1ct {
0011 
0012   class PFAlgo2HGCEmulator : public PFAlgoEmulatorBase {
0013   public:
0014     PFAlgo2HGCEmulator(unsigned int nTrack,
0015                        unsigned int nCalo,
0016                        unsigned int nMu,
0017                        unsigned int nSelCalo,
0018                        unsigned int dR2Max_Tk_Mu,
0019                        unsigned int dR2Max_Tk_Calo,
0020                        pt_t tk_MaxInvPt_Loose,
0021                        pt_t tk_MaxInvPt_Tight)
0022         : PFAlgoEmulatorBase(
0023               nTrack, nCalo, nMu, nSelCalo, dR2Max_Tk_Mu, dR2Max_Tk_Calo, tk_MaxInvPt_Loose, tk_MaxInvPt_Tight) {}
0024 
0025     // note: this one will work only in CMSSW
0026     PFAlgo2HGCEmulator(const edm::ParameterSet& iConfig);
0027 
0028     ~PFAlgo2HGCEmulator() override {}
0029 
0030     void run(const PFInputRegion& in, OutputRegion& out) const override;
0031 
0032     /// moves all objects from out.pfphoton to the beginning of out.pfneutral: nothing to do for this algo
0033     void mergeNeutrals(OutputRegion& out) const override {}
0034 
0035     void toFirmware(const PFInputRegion& in,
0036                     PFRegion& region,
0037                     HadCaloObj calo[/*nCALO*/],
0038                     TkObj track[/*nTRACK*/],
0039                     MuObj mu[/*nMU*/]) const;
0040     void toFirmware(const OutputRegion& out,
0041                     PFChargedObj outch[/*nTRACK*/],
0042                     PFNeutralObj outne[/*nSELCALO*/],
0043                     PFChargedObj outmu[/*nMU*/]) const;
0044   };
0045 
0046 }  // namespace l1ct
0047 
0048 #endif