5 Muon&
mu, uint32_t raw_data_00_31, uint32_t raw_data_32_63,
int fed,
unsigned int fw) {
20 if ((fed == 1402 &&
fw < 0x4010000) || (fed == 1404 &&
fw < 0x10A6)) {
26 mu.setHwEtaAtVtx(
mu.hwEta());
27 mu.setHwPhiAtVtx(
mu.hwPhi());
40 mu.setHwDEtaExtra(
mu.hwEtaAtVtx() -
mu.hwEta());
41 int dPhi =
mu.hwPhiAtVtx() -
mu.hwPhi();
42 if (
mu.hwCharge() == 1 &&
dPhi > 0) {
44 }
else if (
mu.hwCharge() == 0 &&
dPhi < 0) {
54 (
mu.hwPt() - 1) * 0.5,
mu.hwEtaAtVtx() * 0.010875,
mu.hwPhiAtVtx() * 0.010908, 0.0};
56 muAtVtx.
setP4(vecAtVtx);
57 mu.setEtaAtVtx(muAtVtx.
eta());
58 mu.setPhiAtVtx(muAtVtx.
phi());
59 if (
mu.hwChargeValid()) {
60 mu.setCharge(1 - 2 *
mu.hwCharge());
68 fillMuon(
mu, (uint32_t)(dataword & 0xFFFFFFFF), (uint32_t)((dataword >> 32) & 0xFFFFFFFF), fed,
fw);
72 uint32_t& raw_data_00_31,
73 uint32_t& raw_data_32_63) {
74 int abs_eta =
mu.hwEta();
76 abs_eta += (1 << (etaSignShift_ - absEtaShift_));
78 int abs_eta_at_vtx =
mu.hwEtaAtVtx();
79 if (abs_eta_at_vtx < 0) {
80 abs_eta_at_vtx += (1 << (etaAtVtxSignShift_ - absEtaAtVtxShift_));
82 raw_data_00_31 = (
mu.hwPt() & ptMask_) << ptShift_ | (
mu.hwQual() & qualMask_) << qualShift_ |
83 (abs_eta_at_vtx & absEtaMask_) << absEtaAtVtxShift_ | (
mu.hwEtaAtVtx() < 0) << etaAtVtxSignShift_ |
84 (
mu.hwPhiAtVtx() & phiMask_) << phiAtVtxShift_;
86 raw_data_32_63 =
mu.hwCharge() << chargeShift_ |
mu.hwChargeValid() << chargeValidShift_ |
87 (
mu.tfMuonIndex() & tfMuonIndexMask_) << tfMuonIndexShift_ | (
mu.hwIso() & isoMask_) << isoShift_ |
88 (abs_eta & absEtaMask_) << absEtaShift_ | (
mu.hwEta() < 0) << etaSignShift_ |
89 (
mu.hwPhi() & phiMask_) << phiShift_;
96 generatePackedDataWords(
mu, lsw, msw);
97 return (((
uint64_t)msw) << 32) + lsw;
101 const unsigned absEtaShift,
102 const unsigned etaSignShift) {
104 int abs_eta = (raw >> absEtaShift) & absEtaMask_;
105 if ((raw >> etaSignShift) & 0x1) {
106 return abs_eta - (1 << (etaSignShift - absEtaShift));