30 theChamberTimingCorrections(),
31 readBadChannels_(
false), readBadChambers_(
false),useTimingCorrections_(
false),
32 theAverageGain( -1.0 )
113 for (
int j=start-1;
j<start-1+nbad; ++
j ) {
141 for (
int j=start-1;
j<start-1+nbad; ++
j ) {
208 return float(
theGains->item(detId, channel).gain_slope )/
theGains->factor_gain;
232 return leftRight ? float ( item.xtalk_intercept_right )/
theCrosstalk->factor_intercept
233 : float ( item.xtalk_intercept_left )/
theCrosstalk->factor_intercept ;
243 return leftRight ? float ( item.xtalk_slope_right )/
theCrosstalk->factor_slope
244 : float ( item.xtalk_slope_left )/
theCrosstalk->factor_slope ;
254 assert(me.size()>11);
273 ct[0] = float ( item.xtalk_slope_left )/
theCrosstalk->factor_slope;
274 ct[1] = float ( item.xtalk_intercept_left )/
theCrosstalk->factor_intercept;
275 ct[2] = float ( item.xtalk_slope_right )/
theCrosstalk->factor_slope;
276 ct[3] = float ( item.xtalk_intercept_right )/
theCrosstalk->factor_intercept;
284 int chip = indexer.
chipIndex(stripChannel);
329 const float loEdge = 5.0;
330 const float hiEdge = 10.0;
331 const float loLimit = 6.0;
332 const float hiLimit = 9.0;
333 const float expectedAverage = 7.5;
340 CSCDBGains::GainContainer::const_iterator it;
342 float the_gain = float( it->gain_slope )/
theGains->factor_gain;
343 if (the_gain > loEdge && the_gain < hiEdge ) {
344 gain_tot += the_gain;
355 if ( theAverageGain < loLimit || theAverageGain > hiLimit ) {
T getParameter(std::string const &) const
const std::bitset< 80 > & badStripWord(const CSCDetId &id) const
return bad channel words per CSCLayer - 1 bit per channel
edm::ESHandle< CSCDBNoiseMatrix > theNoiseMatrix
edm::ESHandle< CSCBadWires > theBadWires
float pedestalSigma(const CSCDetId &detId, int channel) const
void noiseMatrixElements(const CSCDetId &id, int channel, std::vector< float > &me) const
fill vector (dim 12, must be allocated by caller) with noise matrix elements (scaled to float) ...
void fillBadStripWords()
fill bad channel words
edm::ESHandle< CSCChamberTimeCorrections > theChamberTimingCorrections
bool useTimingCorrections() const
did we request reading timing correction info from db?
const CSCDBNoiseMatrix::Item & noiseMatrix(const CSCDetId &detId, int channel) const
return raw noise matrix (unscaled short int elements)
edm::ESHandle< CSCBadStrips > theBadStrips
float chipCorrection(const CSCDetId &detId, int channel) const
std::vector< std::bitset< 112 > > badWireWords
float chamberTimingCorrection(const CSCDetId &detId) const
void crossTalk(const CSCDetId &id, int channel, std::vector< float > &ct) const
fill vector (dim 4, must be allocated by caller) with crosstalk sl, il, sr, ir
edm::ESWatcher< CSCDBGainsRcd > gainsWatcher_
std::vector< std::bitset< 80 > > badStripWords
float anodeBXoffset(const CSCDetId &detId) const
bool useTimingCorrections_
float pedestal(const CSCDetId &detId, int channel) const
in ADC counts
bool readBadChannels() const
did we request reading bad channel info from db?
CSCDetId detIdFromChamberIndex(IndexType ici) const
edm::ESHandle< CSCBadChambers > theBadChambers
edm::ESHandle< CSCDBGains > theGains
void initializeEvent(const edm::EventSetup &es)
fetch the maps from the database
const std::bitset< 112 > & badWireWord(const CSCDetId &id) const
float crosstalkSlope(const CSCDetId &detId, int channel, bool leftRight) const
float crosstalkIntercept(const CSCDetId &detId, int channel, bool leftRight) const
bool isInBadChamber(const CSCDetId &id) const
Is the gven chamber flagged as bad?
float gain(const CSCDetId &detId, int channel) const
channels count from 1
CSCConditions(const edm::ParameterSet &ps)
edm::ESHandle< CSCDBChipSpeedCorrection > theChipCorrections
edm::ESHandle< CSCDBCrosstalk > theCrosstalk
bool readBadChambers() const
did we request reading bad chamber info from db?
bool check(const edm::EventSetup &iSetup)
IndexType layerIndex(const CSCDetId &id) const
IndexType chipIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType ichip) const
float averageGain() const
average gain over entire CSC system (logically const although must be cached here).
edm::ESHandle< CSCDBPedestals > thePedestals