File indexing completed on 2024-05-10 02:21:02
0001 #include "L1Trigger/L1TMuonOverlapPhase2/interface/OmtfPhase2AngleConverter.h"
0002
0003 int OmtfPhase2AngleConverter::getProcessorPhi(int phiZero, l1t::tftype part, int dtScNum, int dtPhi) const {
0004 constexpr int dtPhiBins = 65536;
0005 double hsPhiPitch = 2 * M_PI / nPhiBins;
0006
0007 int sector = dtScNum + 1;
0008
0009 double scale = 0.5 / dtPhiBins / hsPhiPitch;
0010 int scale_coeff = lround(scale * (1 << 15));
0011
0012 int ichamber = sector - 1;
0013 if (ichamber > 6)
0014 ichamber = ichamber - 12;
0015
0016 int offsetGlobal = (int)nPhiBins * ichamber / 12;
0017
0018 int phiConverted = ((dtPhi * scale_coeff) >> 15) + offsetGlobal - phiZero;
0019
0020 return config->foldPhi(phiConverted);
0021 }
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031