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) {
void convert(const PFChargedObj &src, const l1tpf_impl::PropagatedTrack &track, std::vector< l1tpf_impl::PFParticle > &out)
NOTE: this include is not standalone, since the path to DiscretePFInputs is different in CMSSW & Viva...