Back to home page

Project CMSSW displayed by LXR

 
 

    


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   //Return if fgee_lut_ is 0
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;  // res is FGVB at this stage
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 }