#include <Stage2TowerDecompressAlgorithmFirmware.h>
l1t::Stage2TowerDecompressAlgorithmFirmwareImp1::Stage2TowerDecompressAlgorithmFirmwareImp1 |
( |
CaloParamsHelper const * |
params | ) |
|
l1t::Stage2TowerDecompressAlgorithmFirmwareImp1::~Stage2TowerDecompressAlgorithmFirmwareImp1 |
( |
| ) |
|
|
override |
void l1t::Stage2TowerDecompressAlgorithmFirmwareImp1::processEvent |
( |
const std::vector< l1t::CaloTower > & |
inTowers, |
|
|
std::vector< l1t::CaloTower > & |
outTowers |
|
) |
| |
|
overridevirtual |
Implements l1t::Stage2TowerDecompressAlgorithm.
Definition at line 27 of file Stage2TowerDecompressAlgorithmFirmwareImp1.cc.
References l1t::CaloParamsHelper::doTowerEncoding(), createfilelist::int, params_, funct::pow(), particleFlowDisplacedVertex_cfi::ratio, l1t::L1Candidate::setHwEta(), l1t::CaloTower::setHwEtEm(), l1t::CaloTower::setHwEtHad(), l1t::CaloTower::setHwEtRatio(), l1t::L1Candidate::setHwPhi(), l1t::L1Candidate::setHwPt(), l1t::L1Candidate::setHwQual(), l1t::CaloParamsHelper::towerMaskE(), and l1t::CaloParamsHelper::towerMaskH().
31 for (
auto tow = inTowers.begin();
32 tow != inTowers.end();
37 outTowers.push_back( *tow );
44 int sum = tow->hwPt();
45 int ratio = tow->hwEtRatio();
46 int qual = tow->hwQual();
48 int denomCoeff =
int ( ( 128./ ( 1. +
pow(2,ratio) ) ) + 0.5 );
49 int numCoeff = 128 - denomCoeff;
95 bool denomZeroFlag = ((qual&0x1) > 0);
96 bool eOverHFlag = ((qual&0x2) > 0);
98 if (denomZeroFlag && !eOverHFlag) had = sum;
100 if (denomZeroFlag && eOverHFlag) em = sum;
102 if (!denomZeroFlag && !eOverHFlag) {
103 em = (denomCoeff * sum) >> 7;
104 had = (numCoeff * sum) >> 7;
107 if (!denomZeroFlag && eOverHFlag) {
108 em = (numCoeff * sum) >> 7;
109 had = (denomCoeff * sum) >> 7;
125 outTowers.push_back(newTow);
bool doTowerEncoding() const
CaloParamsHelper const * params_
void setHwEtRatio(int ratio)
Power< A, B >::type pow(const A &a, const B &b)
CaloParamsHelper const* l1t::Stage2TowerDecompressAlgorithmFirmwareImp1::params_ |
|
private |