42 if( etaSign < 0 ) eta +=
nBinEta ;
53 short etaSign)
const {
56 unsigned short out = 0;
57 if( etaSign < 0 ) eta +=
nBinEta ;
61 return out & (nBinRank-1);
72 short etaSign)
const {
75 if( etaSign < 0 ) eta +=
nBinEta ;
83 s <<
"L1CaloHcalScaleRcd" << endl;
84 s <<
"Energy for HCAL inputs into the RCT" <<endl;
85 s <<
"Each new row is for a given value of 8 bit output of HCAL. Each column is for the respective eta value " << endl;
87 s <<
"rank " <<
rank <<
" ";
uint16_t rank(double et, unsigned short eta, short etaSign) const
convert from physical Et in GeV to rank scale
void setBin(unsigned short rank, unsigned short eta, short etaSign, double et)
set scale element; use this to create non-linear scales
double et(unsigned short rank, unsigned short eta, short etaSign) const
convert from rank to physically meaningful quantity
static const unsigned short nBinRank
void print(std::ostream &s) const
double m_scale[nBinRank][2 *nBinEta]
thresholds associated with rank scale in GeV
L1CaloHcalScale(double lsb=1.0)
constructor (creates a linear scale with an LSB - no LSB gives identity)
static const unsigned short nBinEta
~L1CaloHcalScale()
destructor