31 theChamberTimingCorrections(),
32 theGasGainCorrections(),
33 readBadChannels_(
false), readBadChambers_(
false),useTimingCorrections_(
false),useGasGainCorrections_(
false),
34 theAverageGain( -1.0 )
120 for (
int j=start-1;
j<start-1+nbad; ++
j ) {
148 for (
int j=start-1;
j<start-1+nbad; ++
j ) {
215 return float(
theGains->item(detId, channel).gain_slope )/
theGains->factor_gain;
239 return leftRight ? float ( item.xtalk_intercept_right )/
theCrosstalk->factor_intercept
240 : float ( item.xtalk_intercept_left )/
theCrosstalk->factor_intercept ;
250 return leftRight ? float ( item.xtalk_slope_right )/
theCrosstalk->factor_slope
251 : float ( item.xtalk_slope_left )/
theCrosstalk->factor_slope ;
261 assert(me.size()>11);
280 ct[0] = float ( item.xtalk_slope_left )/
theCrosstalk->factor_slope;
281 ct[1] = float ( item.xtalk_intercept_left )/
theCrosstalk->factor_intercept;
282 ct[2] = float ( item.xtalk_slope_right )/
theCrosstalk->factor_slope;
283 ct[3] = float ( item.xtalk_intercept_right )/
theCrosstalk->factor_intercept;
291 int chip = indexer.
chipIndex(stripChannel);
336 const float loEdge = 5.0;
337 const float hiEdge = 10.0;
338 const float loLimit = 6.0;
339 const float hiLimit = 9.0;
340 const float expectedAverage = 7.5;
347 CSCDBGains::GainContainer::const_iterator it;
349 float the_gain = float( it->gain_slope )/
theGains->factor_gain;
350 if (the_gain > loEdge && the_gain < hiEdge ) {
351 gain_tot += the_gain;
362 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< CSCDBGasGainCorrection > theGasGainCorrections
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?
bool useGasGainCorrections_
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 gasGainCorrection(const CSCDetId &detId, int strip, int wire) const
gas gain correction as a function of detId (w/layer), strip, and wire
float averageGain() const
average gain over entire CSC system (logically const although must be cached here).
bool useGasGainCorrections() const
did we request reading gas gain correction info from db?
edm::ESHandle< CSCDBPedestals > thePedestals