1 #ifndef L1Trigger_Phase2L1ParticleFlow_FIRMWARE2DISCRETEPF_H
2 #define L1Trigger_Phase2L1ParticleFlow_FIRMWARE2DISCRETEPF_H
6 #include "../firmware/data.h"
15 std::vector<l1tpf_impl::PFParticle> &
out) {
20 pf.hwVtxEta =
src.hwEta;
21 pf.hwVtxPhi =
src.hwPhi;
24 pf.cluster.src =
nullptr;
47 pf.hwVtxEta =
src.hwEta;
48 pf.hwVtxPhi =
src.hwPhi;
51 pf.cluster.src =
nullptr;
72 pf.hwVtxEta =
src.hwEta;
73 pf.hwVtxPhi =
src.hwPhi;
75 pf.track.src =
nullptr;
76 pf.cluster.hwPt =
src.hwPt;
77 pf.cluster.src =
nullptr;
94 out.hwCaloPtErr =
in.hwPtErr;
102 out.hwEmPt =
in.hwEmPt;
103 out.hwEta =
in.hwEta;
104 out.hwPhi =
in.hwPhi;
105 out.isEM =
in.hwIsEM;
110 out.hwPtErr =
in.hwPtErr;
111 out.hwEta =
in.hwEta;
112 out.hwPhi =
in.hwPhi;
117 out.hwEta =
in.hwEta;
118 out.hwPhi =
in.hwPhi;
122 template <
unsigned int NMAX,
typename In>
123 void convert(
const In
in[NMAX], std::vector<l1tpf_impl::PFParticle> &
out) {
124 for (
unsigned int i = 0;
i < NMAX; ++
i) {
129 template <
typename In>
130 void convert(
unsigned int NMAX,
const In
in[], std::vector<l1tpf_impl::PFParticle> &
out) {
131 for (
unsigned int i = 0;
i < NMAX; ++
i) {
136 template <
unsigned int NMAX>
138 std::vector<l1tpf_impl::PropagatedTrack> srctracks,
139 std::vector<l1tpf_impl::PFParticle> &
out) {
140 for (
unsigned int i = 0;
i < NMAX; ++
i) {
141 if (
in[
i].hwPt > 0) {
149 std::vector<l1tpf_impl::PropagatedTrack> srctracks,
150 std::vector<l1tpf_impl::PFParticle> &
out) {
151 for (
unsigned int i = 0;
i < NMAX; ++
i) {
152 if (
in[
i].hwPt > 0) {