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 <<
"L1CaloEcalScaleRcd" << endl;
84 s <<
"Energy for ECAL inputs into the RCT" <<endl;
85 s <<
"Each new row is for a given value of 8 bit output of ECAL. Each column is for the respective eta value " << endl;
88 s <<
"rank = " <<
rank <<
" ";
L1CaloEcalScale(double lsb=1.0)
constructor (creates a linear scale with an LSB - no LSB gives identity)
void print(std::ostream &s) const
void setBin(unsigned short rank, unsigned short eta, short etaSign, double et)
set scale element; use this to create non-linear scales
double m_scale[nBinRank][2 *nBinEta]
thresholds associated with rank scale in GeV
double et(unsigned short rank, unsigned short eta, short etaSign) const
convert from rank to physically meaningful quantity
uint16_t rank(double et, unsigned short eta, short etaSign) const
convert from physical Et in GeV to rank scale
static const unsigned short nBinRank
static const unsigned short nBinEta
~L1CaloEcalScale()
destructor