File indexing completed on 2024-04-25 02:14:15
0001 #include "CondFormats/EcalObjects/interface/EcalTPGFineGrainTowerEE.h"
0002 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0003 #include <SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFgvbEE.h>
0004 #include <iostream>
0005
0006
0007 void EcalFenixTcpFgvbEE::process(std::vector<std::vector<int>> &bypasslin_out,
0008 int nStr,
0009 int bitMask,
0010 std::vector<int> &output) {
0011 for (unsigned int i = 0; i < output.size(); i++) {
0012 output[i] = 0;
0013 }
0014
0015
0016 if (fgee_lut_ == 0) {
0017 return;
0018 }
0019
0020 int indexLut = 0;
0021 for (unsigned int i = 0; i < output.size(); i++) {
0022 indexLut = 0;
0023 for (int istrip = 0; istrip < nStr; istrip++) {
0024 int res = (bypasslin_out[istrip])[i];
0025 res = (res >> bitMask) & 1;
0026 indexLut = indexLut | (res << istrip);
0027 }
0028 int mask = 1 << indexLut;
0029 output[i] = fgee_lut_ & mask;
0030 if (output[i] > 0)
0031 output[i] = 1;
0032 }
0033 return;
0034 }
0035
0036
0037
0038 void EcalFenixTcpFgvbEE::setParameters(uint32_t towid, const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE) {
0039 const EcalTPGFineGrainTowerEEMap &fgee_map = ecaltpgFineGrainTowerEE->getMap();
0040
0041 EcalTPGFineGrainTowerEEMapIterator it = fgee_map.find(towid);
0042 if (it != fgee_map.end())
0043 fgee_lut_ = (*it).second;
0044 else
0045 edm::LogWarning("EcalTPG") << " could not find EcalTPGFineGrainTowerEEMap for " << towid;
0046 }