File indexing completed on 2023-03-17 10:50:32
0001 #include "DataFormats/L1Trigger/interface/HOTPDigiTwinMux.h"
0002 #include <cstdio>
0003 #include <iostream>
0004
0005 using namespace std;
0006
0007 HOTPDigiTwinMux::HOTPDigiTwinMux(
0008 int ieta, int iphi, int bx, int mip, int validbit, int wheel, int sector, int index, int link) {
0009 if ((ieta > 15) || (ieta < -15))
0010 printf("HOTwinMuxDigi: ieta out of range");
0011 if ((mip < 0) || (mip > 1))
0012 printf("HOTwinMuxDigi: mip value out of range");
0013
0014 theTP_HO = (std::abs(ieta) & 0xF) | ((ieta < 0) ? (0x10) : (0x00)) | ((iphi & 0x7F) << 5) |
0015 ((std::abs(bx) & 0x1) << 12) | ((bx < 0) ? (0x2000) : (0x00)) | ((mip & 0x1) << 14) |
0016 ((validbit & 0x1) << 15) | ((std::abs(wheel) & 0x3) << 16) | ((wheel < 0) ? (0x40000) : (0x00)) |
0017 ((sector & 0xF) << 19) | ((index & 0x1F) << 23) | ((link & 0x3) << 28);
0018 }
0019
0020 std::ostream& operator<<(std::ostream& s, const HOTPDigiTwinMux& HOtp) {
0021 s << "HO TP digi in TwinMUX " << HOtp.ieta() << ", " << HOtp.iphi() << ", " << HOtp.mip();
0022 s << "(wh, sec, index, link)" << HOtp.wheel() << ", " << HOtp.sector() << ", " << HOtp.index() << ", " << HOtp.link();
0023 s << "validbit is : " << HOtp.validbit();
0024 return s;
0025 }