CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
CSCConditions Class Reference

#include <CSCConditions.h>

Public Member Functions

float anodeBXoffset (const CSCDetId &detId) const
 anode bx offset in bx given detId of chamber More...
 
float averageGain () const
 
const std::bitset< 112 > & badStripWord () const
 bad strip channel word for a CSCLayer - 1 bit per channel More...
 
const std::bitset< 112 > & badWireWord () const
 bad wiregroup channel word for a CSCLayer - 1 bit per channel More...
 
float chamberTimingCorrection (const CSCDetId &detId) const
 chamber timing correction in ns given detId of chamber More...
 
int channelFromStrip (const CSCDetId &id, int geomStrip) const
 feedthrough for external access More...
 
float chipCorrection (const CSCDetId &detId, int channel) const
 chip speed correction in ns given detId (w/layer) and strip channel More...
 
void crossTalk (const CSCDetId &id, int channel, std::vector< float > &ct) const
 
float crosstalkIntercept (const CSCDetId &detId, int channel, bool leftRight) const
 crosstalk intercept for left and right More...
 
float crosstalkSlope (const CSCDetId &detId, int channel, bool leftRight) const
 crosstalk slope for left and right More...
 
 CSCConditions (const edm::ParameterSet &ps)
 
void fillBadChannelWords (const CSCDetId &id)
 
float gain (const CSCDetId &detId, int channel) const
 gain per channel More...
 
float gainSigma (const CSCDetId &detId, int channel) const
 overall calibration precision More...
 
float gasGainCorrection (const CSCDetId &detId, int strip, int wire) const
 
const CSCDetIdidOfBadChannelWords () const
 the offline CSCDetId of current bad channel words More...
 
void initializeEvent (const edm::EventSetup &es)
 fetch database content via EventSetup More...
 
bool isInBadChamber (const CSCDetId &id) const
 Is the gven chamber flagged as bad? More...
 
const CSCDBNoiseMatrix::ItemnoiseMatrix (const CSCDetId &detId, int channel) const
 raw noise matrix (unscaled short int elements) More...
 
void noiseMatrixElements (const CSCDetId &id, int channel, std::vector< float > &me) const
 
float pedestal (const CSCDetId &detId, int channel) const
 static ped in ADC counts More...
 
float pedestalSigma (const CSCDetId &detId, int channel) const
 static ped rms in ADC counts More...
 
void print () const
 
int rawStripChannel (const CSCDetId &id, int geomChannel) const
 
bool readBadChambers () const
 did we request reading bad chamber info from db? More...
 
bool readBadChannels () const
 did we request reading bad channel info from db? More...
 
bool useGasGainCorrections () const
 did we request reading gas gain correction info from db? More...
 
bool useTimingCorrections () const
 did we request reading timing correction info from db? More...
 
 ~CSCConditions ()
 

Private Types

enum  elayers { MAX_LAYERS = 3240 }
 

Private Member Functions

void fillBadStripWord (const CSCDetId &id)
 fill bad channel words for offline id More...
 
void fillBadWireWord (const CSCDetId &id)
 
void setIdOfBadChannelWords (const CSCDetId &id)
 

Private Attributes

std::bitset< 112 > badStripWord_
 
std::bitset< 112 > badWireWord_
 
edm::ESWatcher< CSCDBGainsRcdgainsWatcher_
 
CSCDetId idOfBadChannelWords_
 
edm::ESHandle< CSCIndexerBaseindexer_
 
edm::ESHandle< CSCChannelMapperBasemapper_
 
bool readBadChambers_
 
bool readBadChannels_
 
float theAverageGain
 
edm::ESHandle< CSCBadChamberstheBadChambers
 
edm::ESHandle< CSCBadStripstheBadStrips
 
edm::ESHandle< CSCBadWirestheBadWires
 
edm::ESHandle< CSCChamberTimeCorrectionstheChamberTimingCorrections
 
edm::ESHandle< CSCDBChipSpeedCorrectiontheChipCorrections
 
edm::ESHandle< CSCDBCrosstalktheCrosstalk
 
edm::ESHandle< CSCDBGainstheGains
 
edm::ESHandle< CSCDBGasGainCorrectiontheGasGainCorrections
 
edm::ESHandle< CSCDBNoiseMatrixtheNoiseMatrix
 
edm::ESHandle< CSCDBPedestalsthePedestals
 
bool useGasGainCorrections_
 
bool useTimingCorrections_
 

Detailed Description

Encapsulates a user interface into the CSC conditions

Author
Rick Wilkinson
Tim Cox

Interfaces generally use "channels" which count from 1 and are 'geometric' i.e. in the order matching local coordinates. This is the channel labelling in CSCStripDigi (and CSCWireDigi) after internal corrections within CSCRawToDigi.

The input CSCDetId is also 'geometric channel level' i.e. ME11A has its own CSCDetId even in the ganged case,

Ganged ME1a channels are 1-16 (and unganged, of course, 1-48)

From CMSSW 61X, this class also handles separate algorithm versions for indexing the conditions data and for mapping between online and offline channel labelling.

Definition at line 48 of file CSCConditions.h.

Member Enumeration Documentation

enum CSCConditions::elayers
private
Enumerator
MAX_LAYERS 

Definition at line 184 of file CSCConditions.h.

Constructor & Destructor Documentation

CSCConditions::CSCConditions ( const edm::ParameterSet ps)
explicit

Definition at line 37 of file CSCConditions.cc.

References edm::ParameterSet::getParameter(), readBadChambers_, readBadChannels_, useGasGainCorrections_, and useTimingCorrections_.

38  : theGains(),
39  theCrosstalk(),
40  thePedestals(),
42  theBadStrips(),
43  theBadWires(),
48  indexer_(nullptr),
49  mapper_(nullptr),
50  readBadChannels_(false),
51  readBadChambers_(false),
52  useTimingCorrections_(false),
55  badStripWord_(0),
56  badWireWord_(0),
57  theAverageGain(-1.0) {
58  readBadChannels_ = ps.getParameter<bool>("readBadChannels");
59  readBadChambers_ = ps.getParameter<bool>("readBadChambers");
60  useTimingCorrections_ = ps.getParameter<bool>("CSCUseTimingCorrections");
61  useGasGainCorrections_ = ps.getParameter<bool>("CSCUseGasGainCorrections");
62 }
T getParameter(std::string const &) const
edm::ESHandle< CSCDBGasGainCorrection > theGasGainCorrections
edm::ESHandle< CSCDBNoiseMatrix > theNoiseMatrix
edm::ESHandle< CSCBadWires > theBadWires
edm::ESHandle< CSCChamberTimeCorrections > theChamberTimingCorrections
edm::ESHandle< CSCBadStrips > theBadStrips
edm::ESHandle< CSCIndexerBase > indexer_
bool useTimingCorrections_
std::bitset< 112 > badWireWord_
edm::ESHandle< CSCChannelMapperBase > mapper_
bool useGasGainCorrections_
edm::ESHandle< CSCBadChambers > theBadChambers
edm::ESHandle< CSCDBGains > theGains
edm::ESHandle< CSCDBChipSpeedCorrection > theChipCorrections
edm::ESHandle< CSCDBCrosstalk > theCrosstalk
float theAverageGain
edm::ESHandle< CSCDBPedestals > thePedestals
std::bitset< 112 > badStripWord_
CSCDetId idOfBadChannelWords_
CSCConditions::~CSCConditions ( )

Definition at line 64 of file CSCConditions.cc.

64 {}

Member Function Documentation

float CSCConditions::anodeBXoffset ( const CSCDetId detId) const

anode bx offset in bx given detId of chamber

Definition at line 337 of file CSCConditions.cc.

References CSCChamberTimeCorrections::ChamberTimeCorrections::anode_bx_offset, CSCIndexerBase::chamberIndex(), objects.autophobj::float, indexer_, edm::ESHandleBase::isValid(), CSCChamberTimeCorrections::item(), mapper_, CSCChamberTimeCorrections::precision(), CSCChannelMapperBase::rawCSCDetId(), theChamberTimingCorrections, and useTimingCorrections().

Referenced by CSCRecoConditions::anodeBXoffset(), and gainSigma().

337  {
338  if (useTimingCorrections()) {
340  CSCDetId idraw = mapper_->rawCSCDetId(id);
341  int index = indexer_->chamberIndex(idraw) - 1; // NOTE THE MINUS ONE!
344  } else
345  return 0;
346 }
IndexType chamberIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic) const
edm::ESHandle< CSCChamberTimeCorrections > theChamberTimingCorrections
bool useTimingCorrections() const
did we request reading timing correction info from db?
edm::ESHandle< CSCIndexerBase > indexer_
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
const ChamberTimeCorrections & item(int index) const
bool isValid() const
Definition: ESHandle.h:44
float CSCConditions::averageGain ( ) const

average gain over entire CSC system (logically const although must be cached here).

Return average strip gain for full CSC system. Lazy evaluation. Restrict averaging to gains between 5 and 10, and require average is between 6 or 9 otherwise fix it to 7.5. These values came from Dominique and Stan,

Definition at line 352 of file CSCConditions.cc.

References objects.autophobj::float, CSCDBGains::gains, CSCDBGains::scale(), theAverageGain, and theGains.

Referenced by CSCRecoConditions::averageGain(), and useTimingCorrections().

352  {
353  const float loEdge = 5.0; // consider gains above this
354  const float hiEdge = 10.0; // consider gains below this
355  const float loLimit = 6.0; // lowest acceptable average gain
356  const float hiLimit = 9.0; // highest acceptable average gain
357  const float expectedAverage = 7.5; // default average gain
358 
359  if (theAverageGain > 0.)
360  return theAverageGain; // only recalculate if necessary
361 
362  int n_strip = 0;
363  float gain_tot = 0.;
364 
365  CSCDBGains::GainContainer::const_iterator it;
366  for (it = theGains->gains.begin(); it != theGains->gains.end(); ++it) {
367  float the_gain = float(it->gain_slope) / theGains->scale();
368  if (the_gain > loEdge && the_gain < hiEdge) {
369  gain_tot += the_gain;
370  ++n_strip;
371  }
372  }
373 
374  // Average gain
375  if (n_strip > 0) {
376  theAverageGain = gain_tot / n_strip;
377  }
378 
379  // Average gain has been around 7.5 in real data
380  if (theAverageGain < loLimit || theAverageGain > hiLimit) {
381  // LogTrace("CSC") << "Average CSC strip gain = "
382  // << theAverageGain << " is reset to expected value "
383  // << expectedAverage;
384  theAverageGain = expectedAverage;
385  }
386 
387  return theAverageGain;
388 }
GainContainer gains
Definition: CSCDBGains.h:24
edm::ESHandle< CSCDBGains > theGains
int scale() const
Definition: CSCDBGains.h:28
float theAverageGain
const std::bitset<112>& CSCConditions::badStripWord ( ) const
inline

bad strip channel word for a CSCLayer - 1 bit per channel

Definition at line 92 of file CSCConditions.h.

References badStripWord_.

Referenced by CSCRecoConditions::badStrip().

92 { return badStripWord_; }
std::bitset< 112 > badStripWord_
const std::bitset<112>& CSCConditions::badWireWord ( ) const
inline

bad wiregroup channel word for a CSCLayer - 1 bit per channel

Definition at line 95 of file CSCConditions.h.

References badWireWord_.

Referenced by CSCRecoConditions::badWireWord().

95 { return badWireWord_; }
std::bitset< 112 > badWireWord_
float CSCConditions::chamberTimingCorrection ( const CSCDetId detId) const

chamber timing correction in ns given detId of chamber

Definition at line 325 of file CSCConditions.cc.

References CSCChamberTimeCorrections::ChamberTimeCorrections::cfeb_cable_delay, CSCChamberTimeCorrections::ChamberTimeCorrections::cfeb_timing_corr, CSCChamberTimeCorrections::ChamberTimeCorrections::cfeb_tmb_skew_delay, CSCIndexerBase::chamberIndex(), objects.autophobj::float, indexer_, edm::ESHandleBase::isValid(), CSCChamberTimeCorrections::item(), mapper_, CSCChamberTimeCorrections::precision(), CSCChannelMapperBase::rawCSCDetId(), theChamberTimingCorrections, and useTimingCorrections().

Referenced by CSCRecoConditions::chamberTimingCorrection(), and gainSigma().

325  {
326  if (useTimingCorrections()) {
328  CSCDetId idraw = mapper_->rawCSCDetId(id);
329  int index = indexer_->chamberIndex(idraw) - 1; // NOTE THE MINUS ONE!
330  return float(
334  } else
335  return 0;
336 }
IndexType chamberIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic) const
edm::ESHandle< CSCChamberTimeCorrections > theChamberTimingCorrections
bool useTimingCorrections() const
did we request reading timing correction info from db?
edm::ESHandle< CSCIndexerBase > indexer_
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
const ChamberTimeCorrections & item(int index) const
bool isValid() const
Definition: ESHandle.h:44
int CSCConditions::channelFromStrip ( const CSCDetId id,
int  geomStrip 
) const

feedthrough for external access

Definition at line 402 of file CSCConditions.cc.

References CSCChannelMapperBase::channelFromStrip(), and mapper_.

Referenced by CSCRecoConditions::badStrip(), CSCRecoConditions::chipCorrection(), CSCRecoConditions::crossTalk(), CSCRecoConditions::gasGainCorrection(), CSCRecoConditions::noiseMatrix(), CSCRecoConditions::stripWeight(), and useGasGainCorrections().

402  {
403  return mapper_->channelFromStrip(id, geomStrip);
404 }
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual int channelFromStrip(const CSCDetId &id, int strip) const =0
float CSCConditions::chipCorrection ( const CSCDetId detId,
int  channel 
) const

chip speed correction in ns given detId (w/layer) and strip channel

Definition at line 314 of file CSCConditions.cc.

References CSCIndexerBase::chipIndex(), objects.autophobj::float, indexer_, edm::ESHandleBase::isValid(), mapper_, CSCChannelMapperBase::rawCSCDetId(), CSCChannelMapperBase::rawStripChannel(), CSCDBChipSpeedCorrection::scale(), theChipCorrections, useTimingCorrections(), and CSCDBChipSpeedCorrection::value().

Referenced by CSCRecoConditions::chipCorrection(), and gainSigma().

314  {
315  if (useTimingCorrections()) {
316  assert(theChipCorrections.isValid());
317  CSCDetId idraw = mapper_->rawCSCDetId(id);
318  int iraw = mapper_->rawStripChannel(id, geomChannel);
319  int ichip = indexer_->chipIndex(iraw); // converts 1-80 to 1-5 (chip#, CFEB#)
320  int index = indexer_->chipIndex(idraw, ichip) - 1; // NOTE THE MINUS ONE!
322  } else
323  return 0;
324 }
bool useTimingCorrections() const
did we request reading timing correction info from db?
edm::ESHandle< CSCIndexerBase > indexer_
virtual int rawStripChannel(const CSCDetId &id, int igeom) const =0
Return raw strip channel number for input geometrical channel number.
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
IndexType chipIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType ichip) const
edm::ESHandle< CSCDBChipSpeedCorrection > theChipCorrections
short int value(int index) const
bool isValid() const
Definition: ESHandle.h:44
void CSCConditions::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

Definition at line 302 of file CSCConditions.cc.

References objects.autophobj::float, indexer_, CSCDBCrosstalk::iscale(), edm::ESHandleBase::isValid(), CSCDBCrosstalk::linter(), CSCDBCrosstalk::lslope(), mapper_, CSCChannelMapperBase::rawCSCDetId(), CSCChannelMapperBase::rawStripChannel(), CSCDBCrosstalk::rinter(), CSCDBCrosstalk::rslope(), CSCDBCrosstalk::sscale(), CSCIndexerBase::stripChannelIndex(), and theCrosstalk.

Referenced by CSCRecoConditions::crossTalk(), and gainSigma().

302  {
303  assert(theCrosstalk.isValid());
304  CSCDetId idraw = mapper_->rawCSCDetId(id);
305  int iraw = mapper_->rawStripChannel(id, geomChannel);
306  int index = indexer_->stripChannelIndex(idraw, iraw) - 1; // NOTE THE MINUS ONE!
307 
308  ct[0] = float(theCrosstalk->lslope(index)) / theCrosstalk->sscale();
309  ct[1] = float(theCrosstalk->linter(index)) / theCrosstalk->iscale();
310  ct[2] = float(theCrosstalk->rslope(index)) / theCrosstalk->sscale();
311  ct[3] = float(theCrosstalk->rinter(index)) / theCrosstalk->iscale();
312 }
int iscale() const
short int rinter(int index) const
edm::ESHandle< CSCIndexerBase > indexer_
short int lslope(int index) const
virtual int rawStripChannel(const CSCDetId &id, int igeom) const =0
Return raw strip channel number for input geometrical channel number.
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
edm::ESHandle< CSCDBCrosstalk > theCrosstalk
int sscale() const
short int rslope(int index) const
LongIndexType stripChannelIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip) const
bool isValid() const
Definition: ESHandle.h:44
short int linter(int index) const
float CSCConditions::crosstalkIntercept ( const CSCDetId detId,
int  channel,
bool  leftRight 
) const

crosstalk intercept for left and right

Definition at line 253 of file CSCConditions.cc.

References objects.autophobj::float, indexer_, CSCDBCrosstalk::iscale(), edm::ESHandleBase::isValid(), CSCDBCrosstalk::linter(), mapper_, CSCChannelMapperBase::rawCSCDetId(), CSCChannelMapperBase::rawStripChannel(), CSCDBCrosstalk::rinter(), CSCIndexerBase::stripChannelIndex(), and theCrosstalk.

Referenced by CSCDbStripConditions::crosstalk(), and gainSigma().

253  {
254  assert(theCrosstalk.isValid());
255  CSCDetId idraw = mapper_->rawCSCDetId(id);
256  int iraw = mapper_->rawStripChannel(id, geomChannel);
257  int index = indexer_->stripChannelIndex(idraw, iraw) - 1; // NOTE THE MINUS ONE!
258  // resistive fraction is at the peak, where t=0
259  return leftRight ? float(theCrosstalk->rinter(index)) / theCrosstalk->iscale()
260  : float(theCrosstalk->linter(index)) / theCrosstalk->iscale();
261 }
int iscale() const
short int rinter(int index) const
edm::ESHandle< CSCIndexerBase > indexer_
virtual int rawStripChannel(const CSCDetId &id, int igeom) const =0
Return raw strip channel number for input geometrical channel number.
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
edm::ESHandle< CSCDBCrosstalk > theCrosstalk
LongIndexType stripChannelIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip) const
bool isValid() const
Definition: ESHandle.h:44
short int linter(int index) const
float CSCConditions::crosstalkSlope ( const CSCDetId detId,
int  channel,
bool  leftRight 
) const

crosstalk slope for left and right

Definition at line 263 of file CSCConditions.cc.

References objects.autophobj::float, indexer_, edm::ESHandleBase::isValid(), CSCDBCrosstalk::lslope(), mapper_, CSCChannelMapperBase::rawCSCDetId(), CSCChannelMapperBase::rawStripChannel(), CSCDBCrosstalk::rslope(), CSCDBCrosstalk::sscale(), CSCIndexerBase::stripChannelIndex(), and theCrosstalk.

Referenced by CSCDbStripConditions::crosstalk(), and gainSigma().

263  {
264  assert(theCrosstalk.isValid());
265  CSCDetId idraw = mapper_->rawCSCDetId(id);
266  int iraw = mapper_->rawStripChannel(id, geomChannel);
267  int index = indexer_->stripChannelIndex(idraw, iraw) - 1; // NOTE THE MINUS ONE!
268  // resistive fraction is at the peak, where t=0
269  return leftRight ? float(theCrosstalk->rslope(index)) / theCrosstalk->sscale()
270  : float(theCrosstalk->lslope(index)) / theCrosstalk->sscale();
271 }
edm::ESHandle< CSCIndexerBase > indexer_
short int lslope(int index) const
virtual int rawStripChannel(const CSCDetId &id, int igeom) const =0
Return raw strip channel number for input geometrical channel number.
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
edm::ESHandle< CSCDBCrosstalk > theCrosstalk
int sscale() const
short int rslope(int index) const
LongIndexType stripChannelIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip) const
bool isValid() const
Definition: ESHandle.h:44
void CSCConditions::fillBadChannelWords ( const CSCDetId id)

Fill bad channel words - one for strips, one for wires, for an offline CSCDetId

Definition at line 119 of file CSCConditions.cc.

References badStripWord_, badWireWord_, fillBadStripWord(), fillBadWireWord(), idOfBadChannelWords(), mapper_, CSCChannelMapperBase::rawCSCDetId(), readBadChannels(), and setIdOfBadChannelWords().

Referenced by CSCRecoConditions::fillBadChannelWords(), and useTimingCorrections().

119  {
120  // input CSCDetId is expected to be an offline value i.e. different for ME1/1A
121  // and ME1/1B
122 
123  // Only update content if necessary
124  if (id != idOfBadChannelWords()) {
125  // store offline CSCDetId for the two bad channel words
127 
128  // reset to all zeroes
129  badStripWord_.reset();
130  badWireWord_.reset();
131 
132  if (readBadChannels()) {
133  // convert to online CSCDetId since that is how conditions data are stored
134  CSCDetId idraw = mapper_->rawCSCDetId(id);
135  fillBadStripWord(idraw);
136  fillBadWireWord(idraw);
137  }
138  }
139 }
void fillBadWireWord(const CSCDetId &id)
std::bitset< 112 > badWireWord_
edm::ESHandle< CSCChannelMapperBase > mapper_
bool readBadChannels() const
did we request reading bad channel info from db?
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
void fillBadStripWord(const CSCDetId &id)
fill bad channel words for offline id
void setIdOfBadChannelWords(const CSCDetId &id)
const CSCDetId & idOfBadChannelWords() const
the offline CSCDetId of current bad channel words
Definition: CSCConditions.h:98
std::bitset< 112 > badStripWord_
void CSCConditions::fillBadStripWord ( const CSCDetId id)
private

fill bad channel words for offline id

Next function private.

Definition at line 143 of file CSCConditions.cc.

References badStripWord_, CSCIndexerBase::chamberIndex(), CSCBadStrips::chambers, officialStyle::chan, CSCBadStrips::channels, mps_fire::i, indexer_, and theBadStrips.

Referenced by fillBadChannelWords(), and useGasGainCorrections().

143  {
144  // Input CSCDetId is expected to be a 'raw' value
145 
146  // Find linear index of chamber for input CSCDetId
147  int inputIndex = indexer_->chamberIndex(id);
148  short inputLayer = id.layer();
149 
150  // Does this chamber occur in bad channel list? If so, unpack its bad channels
151 
152  // chambers is a vector<BadChamber>
153  // channels is a vector<BadChannel>
154  // Each BadChamber contains its index (1-468 or 540 w. ME42), the no. of bad
155  // channels, and the index within vector<BadChannel> where this chamber's bad
156  // channels start.
157 
158  for (size_t i = 0; i < theBadStrips->chambers.size(); ++i) { // loop over bad chambers
159  int indexc = theBadStrips->chambers[i].chamber_index;
160  if (indexc != inputIndex)
161  continue; // next iteration if not a match
162 
163  int start = theBadStrips->chambers[i].pointer;
164  int nbad = theBadStrips->chambers[i].bad_channels;
165 
166  for (int j = start - 1; j < start - 1 + nbad; ++j) { // bad channels in this chamber
167  short lay = theBadStrips->channels[j].layer; // value 1-6
168  if (lay != inputLayer)
169  continue;
170 
171  short chan = theBadStrips->channels[j].channel; // value 1-80 (->112 for unganged ME1/1A)
172  // Flags so far unused (and unset in conditins data)
173  // short f1 = theBadStrips->channels[j].flag1;
174  // short f2 = theBadStrips->channels[j].flag2;
175  // short f3 = theBadStrips->channels[j].flag3;
176  badStripWord_.set(chan - 1, true); // set bit 0-79 (111) in 80 (112)-bit
177  // bitset representing this layer
178  } // j
179  } // i
180 }
Definition: start.py:1
IndexType chamberIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic) const
BadChamberContainer chambers
Definition: CSCBadStrips.h:35
edm::ESHandle< CSCBadStrips > theBadStrips
edm::ESHandle< CSCIndexerBase > indexer_
BadChannelContainer channels
Definition: CSCBadStrips.h:36
chan
lumi = TPaveText(lowX+0.38, lowY+0.061, lowX+0.45, lowY+0.161, "NDC") lumi.SetBorderSize( 0 ) lumi...
std::bitset< 112 > badStripWord_
void CSCConditions::fillBadWireWord ( const CSCDetId id)
private

Definition at line 182 of file CSCConditions.cc.

References badWireWord_, CSCIndexerBase::chamberIndex(), CSCBadWires::chambers, officialStyle::chan, CSCBadWires::channels, mps_fire::i, indexer_, and theBadWires.

Referenced by fillBadChannelWords(), and useGasGainCorrections().

182  {
183  // Input CSCDetId is expected to be a 'raw' value
184 
185  // Find linear index of chamber for input CSCDetId
186  int inputIndex = indexer_->chamberIndex(id);
187  short inputLayer = id.layer();
188 
189  // unpack what we've read from theBadWires
190 
191  for (size_t i = 0; i < theBadWires->chambers.size(); ++i) { // loop over bad chambers
192  int indexc = theBadWires->chambers[i].chamber_index;
193 
194  if (indexc != inputIndex)
195  continue; // next iteration if not a match
196 
197  int start = theBadWires->chambers[i].pointer;
198  int nbad = theBadWires->chambers[i].bad_channels;
199 
200  for (int j = start - 1; j < start - 1 + nbad; ++j) { // bad channels in this chamber
201  short lay = theBadWires->channels[j].layer; // value 1-6
202  if (lay != inputLayer)
203  continue;
204 
205  short chan = theBadWires->channels[j].channel; // value 1-112
206  // short f1 = theBadWires->channels[j].flag1;
207  // short f2 = theBadWires->channels[j].flag2;
208  // short f3 = theBadWires->channels[j].flag3;
209  badWireWord_.set(chan - 1,
210  true); // set bit 0-111 in 112-bit bitset representing this layer
211  } // j
212  } // i
213 }
Definition: start.py:1
edm::ESHandle< CSCBadWires > theBadWires
IndexType chamberIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic) const
BadChamberContainer chambers
Definition: CSCBadWires.h:35
edm::ESHandle< CSCIndexerBase > indexer_
std::bitset< 112 > badWireWord_
BadChannelContainer channels
Definition: CSCBadWires.h:36
chan
lumi = TPaveText(lowX+0.38, lowY+0.061, lowX+0.45, lowY+0.161, "NDC") lumi.SetBorderSize( 0 ) lumi...
float CSCConditions::gain ( const CSCDetId detId,
int  channel 
) const

gain per channel

Definition at line 229 of file CSCConditions.cc.

References objects.autophobj::float, CSCDBGains::gain(), indexer_, edm::ESHandleBase::isValid(), mapper_, CSCChannelMapperBase::rawCSCDetId(), CSCChannelMapperBase::rawStripChannel(), CSCDBGains::scale(), CSCIndexerBase::stripChannelIndex(), and theGains.

Referenced by CSCDbStripConditions::gain(), and CSCRecoConditions::gain().

229  {
230  assert(theGains.isValid());
231  CSCDetId idraw = mapper_->rawCSCDetId(id);
232  int iraw = mapper_->rawStripChannel(id, geomChannel);
233  int index = indexer_->stripChannelIndex(idraw, iraw) - 1; // NOTE THE MINUS ONE!
234  return float(theGains->gain(index)) / theGains->scale();
235 }
edm::ESHandle< CSCIndexerBase > indexer_
virtual int rawStripChannel(const CSCDetId &id, int igeom) const =0
Return raw strip channel number for input geometrical channel number.
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
edm::ESHandle< CSCDBGains > theGains
short int gain(int index) const
Definition: CSCDBGains.h:27
LongIndexType stripChannelIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip) const
int scale() const
Definition: CSCDBGains.h:28
bool isValid() const
Definition: ESHandle.h:44
float CSCConditions::gainSigma ( const CSCDetId detId,
int  channel 
) const
inline
float CSCConditions::gasGainCorrection ( const CSCDetId detId,
int  strip,
int  wire 
) const

gas gain correction as a function of detId (w/layer), strip, and wire channels

Definition at line 390 of file CSCConditions.cc.

References objects.autophobj::float, CSCIndexerBase::gasGainIndex(), indexer_, edm::ESHandleBase::isValid(), mapper_, CSCChannelMapperBase::rawCSCDetId(), CSCChannelMapperBase::rawStripChannel(), theGasGainCorrections, useGasGainCorrections(), and CSCDBGasGainCorrection::value().

Referenced by CSCRecoConditions::gasGainCorrection(), and useTimingCorrections().

390  {
391  if (useGasGainCorrections()) {
392  assert(theGasGainCorrections.isValid());
393  CSCDetId idraw = mapper_->rawCSCDetId(id);
394  int iraw = mapper_->rawStripChannel(id, geomChannel);
395  int index = indexer_->gasGainIndex(idraw, iraw, iwiregroup) - 1; // NOTE THE MINUS ONE!
396  return float(theGasGainCorrections->value(index));
397  } else {
398  return 1.;
399  }
400 }
edm::ESHandle< CSCDBGasGainCorrection > theGasGainCorrections
float value(int index) const
edm::ESHandle< CSCIndexerBase > indexer_
virtual int rawStripChannel(const CSCDetId &id, int igeom) const =0
Return raw strip channel number for input geometrical channel number.
edm::ESHandle< CSCChannelMapperBase > mapper_
IndexType gasGainIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType ihvsegment, IndexType ichip) const
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
bool useGasGainCorrections() const
did we request reading gas gain correction info from db?
bool isValid() const
Definition: ESHandle.h:44
const CSCDetId& CSCConditions::idOfBadChannelWords ( ) const
inline

the offline CSCDetId of current bad channel words

Definition at line 98 of file CSCConditions.h.

References idOfBadChannelWords_, isInBadChamber(), and print().

Referenced by CSCRecoConditions::badStrip(), and fillBadChannelWords().

98 { return idOfBadChannelWords_; }
CSCDetId idOfBadChannelWords_
void CSCConditions::initializeEvent ( const edm::EventSetup es)

fetch database content via EventSetup

Definition at line 66 of file CSCConditions.cc.

References edm::ESWatcher< T >::check(), gainsWatcher_, edm::EventSetup::get(), indexer_, mapper_, readBadChambers(), readBadChannels(), theAverageGain, theBadChambers, theBadStrips, theBadWires, theChamberTimingCorrections, theChipCorrections, theCrosstalk, theGains, theGasGainCorrections, theNoiseMatrix, thePedestals, useGasGainCorrections(), and useTimingCorrections().

Referenced by CSCDbStripConditions::initializeEvent(), and CSCRecoConditions::initializeEvent().

66  {
67  // Algorithms
68  es.get<CSCIndexerRecord>().get(indexer_);
70 
71  // Strip gains
72  es.get<CSCDBGainsRcd>().get(theGains);
73  // Strip X-talk
75  // Strip pedestals
77  // Strip autocorrelation noise matrix
79 
80  if (useTimingCorrections()) {
81  // Buckeye chip speeds
83  // Cable lengths from chambers to peripheral crate and additional chamber
84  // level timing correction
86  }
87 
88  if (readBadChannels()) {
89  // Bad strip channels
90  es.get<CSCBadStripsRcd>().get(theBadStrips);
91  // Bad wiregroup channels
92  es.get<CSCBadWiresRcd>().get(theBadWires);
93 
94  //@@ if( badStripsWatcher_.check( es ) ) {
95  // fillBadStripWords();
96  //@@ }
97  //@@ if( badWiresWatcher_.check( es ) ) {
98  // fillBadWireWords();
99  //@ }
100  }
101 
102  // Has GainsRcd changed?
103  if (gainsWatcher_.check(es)) { // Yes...
104  theAverageGain = -1.0; // ...reset, so next access will recalculate it
105  }
106 
107  if (readBadChambers()) {
108  // Entire bad chambers
110  }
111 
112  if (useGasGainCorrections()) {
114  }
115 
116  // print();
117 }
edm::ESHandle< CSCDBGasGainCorrection > theGasGainCorrections
edm::ESHandle< CSCDBNoiseMatrix > theNoiseMatrix
edm::ESHandle< CSCBadWires > theBadWires
edm::ESHandle< CSCChamberTimeCorrections > theChamberTimingCorrections
bool useTimingCorrections() const
did we request reading timing correction info from db?
edm::ESHandle< CSCBadStrips > theBadStrips
edm::ESHandle< CSCIndexerBase > indexer_
edm::ESWatcher< CSCDBGainsRcd > gainsWatcher_
edm::ESHandle< CSCChannelMapperBase > mapper_
bool readBadChannels() const
did we request reading bad channel info from db?
edm::ESHandle< CSCBadChambers > theBadChambers
edm::ESHandle< CSCDBGains > theGains
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)
Definition: ESWatcher.h:52
T get() const
Definition: EventSetup.h:71
bool useGasGainCorrections() const
did we request reading gas gain correction info from db?
float theAverageGain
edm::ESHandle< CSCDBPedestals > thePedestals
bool CSCConditions::isInBadChamber ( const CSCDetId id) const

Is the gven chamber flagged as bad?

Definition at line 215 of file CSCConditions.cc.

References CSCIndexerBase::chamberIndex(), indexer_, CSCBadChambers::isInBadChamber(), mapper_, CSCChannelMapperBase::rawCSCDetId(), readBadChambers(), and theBadChambers.

Referenced by idOfBadChannelWords(), and CSCDbStripConditions::isInBadChamber().

215  {
216  //@@ We do not consider the possibility of having ME1/1A & ME1/1B
217  // independently 'bad'.
218  //@@ To do that we would need to define separate chamber indexes for ME1/1A &
219  // ME1/1B.
220 
221  if (readBadChambers()) {
222  CSCDetId idraw = mapper_->rawCSCDetId(id);
223  int index = indexer_->chamberIndex(idraw);
224  return theBadChambers->isInBadChamber(index);
225  } else
226  return false;
227 }
IndexType chamberIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic) const
edm::ESHandle< CSCIndexerBase > indexer_
bool isInBadChamber(IndexType ichamber) const
Is the chamber with index &#39;ichamber&#39; flagged as bad?
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
edm::ESHandle< CSCBadChambers > theBadChambers
bool readBadChambers() const
did we request reading bad chamber info from db?
const CSCDBNoiseMatrix::Item & CSCConditions::noiseMatrix ( const CSCDetId detId,
int  channel 
) const

raw noise matrix (unscaled short int elements)

Definition at line 273 of file CSCConditions.cc.

References indexer_, edm::ESHandleBase::isValid(), CSCDBNoiseMatrix::item(), mapper_, CSCChannelMapperBase::rawCSCDetId(), CSCChannelMapperBase::rawStripChannel(), CSCIndexerBase::stripChannelIndex(), and theNoiseMatrix.

Referenced by gainSigma(), and noiseMatrixElements().

273  {
274  //@@ BEWARE - THIS FUNCTION DOES NOT APPLY SCALE FACTOR USED IN PACKING VALUES
275  // IN CONDITIONS DATA
276  //@@ MAY BE AN ERROR? WHO WOULD WANT ACCESS WITHOUT IT?
277 
278  assert(theNoiseMatrix.isValid());
279  CSCDetId idraw = mapper_->rawCSCDetId(id);
280  int iraw = mapper_->rawStripChannel(id, geomChannel);
281  int index = indexer_->stripChannelIndex(idraw, iraw) - 1; // NOTE THE MINUS ONE!
282  return theNoiseMatrix->item(index);
283 }
edm::ESHandle< CSCDBNoiseMatrix > theNoiseMatrix
edm::ESHandle< CSCIndexerBase > indexer_
virtual int rawStripChannel(const CSCDetId &id, int igeom) const =0
Return raw strip channel number for input geometrical channel number.
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
const Item & item(int index) const
LongIndexType stripChannelIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip) const
bool isValid() const
Definition: ESHandle.h:44
void CSCConditions::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)

Definition at line 285 of file CSCConditions.cc.

References objects.autophobj::float, noiseMatrix(), CSCDBNoiseMatrix::scale(), and theNoiseMatrix.

Referenced by CSCDbStripConditions::fetchNoisifier(), gainSigma(), and CSCRecoConditions::noiseMatrix().

285  {
286  assert(me.size() > 11);
287  const CSCDBNoiseMatrix::Item &item = noiseMatrix(id, geomChannel); // i.e. the function above
288  me[0] = float(item.elem33) / theNoiseMatrix->scale();
289  me[1] = float(item.elem34) / theNoiseMatrix->scale();
290  me[2] = float(item.elem35) / theNoiseMatrix->scale();
291  me[3] = float(item.elem44) / theNoiseMatrix->scale();
292  me[4] = float(item.elem45) / theNoiseMatrix->scale();
293  me[5] = float(item.elem46) / theNoiseMatrix->scale();
294  me[6] = float(item.elem55) / theNoiseMatrix->scale();
295  me[7] = float(item.elem56) / theNoiseMatrix->scale();
296  me[8] = float(item.elem57) / theNoiseMatrix->scale();
297  me[9] = float(item.elem66) / theNoiseMatrix->scale();
298  me[10] = float(item.elem67) / theNoiseMatrix->scale();
299  me[11] = float(item.elem77) / theNoiseMatrix->scale();
300 }
edm::ESHandle< CSCDBNoiseMatrix > theNoiseMatrix
const CSCDBNoiseMatrix::Item & noiseMatrix(const CSCDetId &detId, int channel) const
raw noise matrix (unscaled short int elements)
int scale() const
float CSCConditions::pedestal ( const CSCDetId detId,
int  channel 
) const

static ped in ADC counts

Definition at line 237 of file CSCConditions.cc.

References objects.autophobj::float, indexer_, edm::ESHandleBase::isValid(), mapper_, CSCDBPedestals::pedestal(), CSCChannelMapperBase::rawCSCDetId(), CSCChannelMapperBase::rawStripChannel(), CSCDBPedestals::scale_ped(), CSCIndexerBase::stripChannelIndex(), and thePedestals.

Referenced by gainSigma(), CSCDbStripConditions::pedestal(), and CSCRecoConditions::pedestal().

237  {
238  assert(thePedestals.isValid());
239  CSCDetId idraw = mapper_->rawCSCDetId(id);
240  int iraw = mapper_->rawStripChannel(id, geomChannel);
241  int index = indexer_->stripChannelIndex(idraw, iraw) - 1; // NOTE THE MINUS ONE!
242  return float(thePedestals->pedestal(index)) / thePedestals->scale_ped();
243 }
edm::ESHandle< CSCIndexerBase > indexer_
virtual int rawStripChannel(const CSCDetId &id, int igeom) const =0
Return raw strip channel number for input geometrical channel number.
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
LongIndexType stripChannelIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip) const
short int pedestal(int index) const
bool isValid() const
Definition: ESHandle.h:44
edm::ESHandle< CSCDBPedestals > thePedestals
int scale_ped() const
float CSCConditions::pedestalSigma ( const CSCDetId detId,
int  channel 
) const

static ped rms in ADC counts

Definition at line 245 of file CSCConditions.cc.

References objects.autophobj::float, indexer_, edm::ESHandleBase::isValid(), mapper_, CSCDBPedestals::pedestal_rms(), CSCChannelMapperBase::rawCSCDetId(), CSCChannelMapperBase::rawStripChannel(), CSCDBPedestals::scale_rms(), CSCIndexerBase::stripChannelIndex(), and thePedestals.

Referenced by gainSigma(), CSCDbStripConditions::pedestalSigma(), and CSCRecoConditions::pedestalSigma().

245  {
246  assert(thePedestals.isValid());
247  CSCDetId idraw = mapper_->rawCSCDetId(id);
248  int iraw = mapper_->rawStripChannel(id, geomChannel);
249  int index = indexer_->stripChannelIndex(idraw, iraw) - 1; // NOTE THE MINUS ONE!
251 }
edm::ESHandle< CSCIndexerBase > indexer_
short int pedestal_rms(int index) const
virtual int rawStripChannel(const CSCDetId &id, int igeom) const =0
Return raw strip channel number for input geometrical channel number.
edm::ESHandle< CSCChannelMapperBase > mapper_
virtual CSCDetId rawCSCDetId(const CSCDetId &id) const =0
int scale_rms() const
LongIndexType stripChannelIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip) const
bool isValid() const
Definition: ESHandle.h:44
edm::ESHandle< CSCDBPedestals > thePedestals
void CSCConditions::print ( void  ) const

Definition at line 410 of file CSCConditions.cc.

Referenced by idOfBadChannelWords().

412 {
413  /*
414  std::cout << "SIZES: GAINS: " << theGains->gains.size()
415  << " PEDESTALS: " << thePedestals->pedestals.size()
416  << " NOISES " << theNoiseMatrix->matrix.size() << std::endl;;
417 
418  std::map< int,std::vector<CSCDBGains::Item> >::const_iterator layerGainsItr
419  = theGains->gains.begin(), lastGain = theGains->gains.end(); for( ;
420  layerGainsItr != lastGain; ++layerGainsItr)
421  {
422  std::cout << "GAIN " << layerGainsItr->first
423  << " STRIPS " << layerGainsItr->second.size() << " "
424  << layerGainsItr->second[0].gain_slope
425  << " " << layerGainsItr->second[0].gain_intercept << std::endl;
426  }
427 
428  std::map< int,std::vector<CSCDBPedestals::Item> >::const_iterator
429  pedestalItr = thePedestals->pedestals.begin(), lastPedestal =
430  thePedestals->pedestals.end(); for( ; pedestalItr != lastPedestal;
431  ++pedestalItr)
432  {
433  std::cout << "PEDS " << pedestalItr->first << " "
434  << " STRIPS " << pedestalItr->second.size() << " ";
435  for(int i = 1; i < 80; ++i)
436  {
437  std::cout << pedestalItr->second[i-1].rms << " " ;
438  }
439  std::cout << std::endl;
440  }
441 
442  std::map< int,std::vector<CSCDBCrosstalk::Item> >::const_iterator
443  crosstalkItr = theCrosstalk->crosstalk.begin(), lastCrosstalk =
444  theCrosstalk->crosstalk.end(); for( ; crosstalkItr != lastCrosstalk;
445  ++crosstalkItr)
446  {
447  std::cout << "XTALKS " << crosstalkItr->first
448  << " STRIPS " << crosstalkItr->second.size() << " "
449  << crosstalkItr->second[5].xtalk_slope_left << " "
450  << crosstalkItr->second[5].xtalk_slope_right << " "
451  << crosstalkItr->second[5].xtalk_intercept_left << " "
452  << crosstalkItr->second[5].xtalk_intercept_right << std::endl;
453  }
454  */
455 }
int CSCConditions::rawStripChannel ( const CSCDetId id,
int  geomChannel 
) const

Definition at line 406 of file CSCConditions.cc.

References mapper_, and CSCChannelMapperBase::rawStripChannel().

Referenced by CSCRecoConditions::badStrip(), and useGasGainCorrections().

406  {
407  return mapper_->rawStripChannel(id, geomChannel);
408 }
virtual int rawStripChannel(const CSCDetId &id, int igeom) const =0
Return raw strip channel number for input geometrical channel number.
edm::ESHandle< CSCChannelMapperBase > mapper_
bool CSCConditions::readBadChambers ( ) const
inline

did we request reading bad chamber info from db?

Definition at line 109 of file CSCConditions.h.

References readBadChambers_.

Referenced by initializeEvent(), and isInBadChamber().

109 { return readBadChambers_; }
bool CSCConditions::readBadChannels ( ) const
inline

did we request reading bad channel info from db?

Definition at line 106 of file CSCConditions.h.

References readBadChannels_.

Referenced by fillBadChannelWords(), and initializeEvent().

106 { return readBadChannels_; }
void CSCConditions::setIdOfBadChannelWords ( const CSCDetId id)
inlineprivate

Set id for current content of bad channel words - this is offline id i.e. separate for ME11A & ME11B

Definition at line 139 of file CSCConditions.h.

References triggerObjects_cff::id, and idOfBadChannelWords_.

Referenced by fillBadChannelWords().

bool CSCConditions::useGasGainCorrections ( ) const
inline

did we request reading gas gain correction info from db?

Definition at line 127 of file CSCConditions.h.

References channelFromStrip(), fillBadStripWord(), fillBadWireWord(), rawStripChannel(), and useGasGainCorrections_.

Referenced by gasGainCorrection(), and initializeEvent().

127 { return useGasGainCorrections_; }
bool useGasGainCorrections_
bool CSCConditions::useTimingCorrections ( ) const
inline

did we request reading timing correction info from db?

Definition at line 112 of file CSCConditions.h.

References averageGain(), fillBadChannelWords(), gasGainCorrection(), digitizers_cfi::strip, and useTimingCorrections_.

Referenced by anodeBXoffset(), chamberTimingCorrection(), chipCorrection(), and initializeEvent().

112 { return useTimingCorrections_; }
bool useTimingCorrections_

Member Data Documentation

std::bitset<112> CSCConditions::badStripWord_
private

Definition at line 172 of file CSCConditions.h.

Referenced by badStripWord(), fillBadChannelWords(), and fillBadStripWord().

std::bitset<112> CSCConditions::badWireWord_
private

Definition at line 173 of file CSCConditions.h.

Referenced by badWireWord(), fillBadChannelWords(), and fillBadWireWord().

edm::ESWatcher<CSCDBGainsRcd> CSCConditions::gainsWatcher_
private

Definition at line 178 of file CSCConditions.h.

Referenced by initializeEvent().

CSCDetId CSCConditions::idOfBadChannelWords_
private

Definition at line 171 of file CSCConditions.h.

Referenced by idOfBadChannelWords(), and setIdOfBadChannelWords().

edm::ESHandle<CSCIndexerBase> CSCConditions::indexer_
private
edm::ESHandle<CSCChannelMapperBase> CSCConditions::mapper_
private
bool CSCConditions::readBadChambers_
private

Definition at line 163 of file CSCConditions.h.

Referenced by CSCConditions(), and readBadChambers().

bool CSCConditions::readBadChannels_
private

Definition at line 161 of file CSCConditions.h.

Referenced by CSCConditions(), and readBadChannels().

float CSCConditions::theAverageGain
mutableprivate

Definition at line 175 of file CSCConditions.h.

Referenced by averageGain(), and initializeEvent().

edm::ESHandle<CSCBadChambers> CSCConditions::theBadChambers
private

Definition at line 149 of file CSCConditions.h.

Referenced by initializeEvent(), and isInBadChamber().

edm::ESHandle<CSCBadStrips> CSCConditions::theBadStrips
private

Definition at line 147 of file CSCConditions.h.

Referenced by fillBadStripWord(), and initializeEvent().

edm::ESHandle<CSCBadWires> CSCConditions::theBadWires
private

Definition at line 148 of file CSCConditions.h.

Referenced by fillBadWireWord(), and initializeEvent().

edm::ESHandle<CSCChamberTimeCorrections> CSCConditions::theChamberTimingCorrections
private

Definition at line 151 of file CSCConditions.h.

Referenced by anodeBXoffset(), chamberTimingCorrection(), and initializeEvent().

edm::ESHandle<CSCDBChipSpeedCorrection> CSCConditions::theChipCorrections
private

Definition at line 150 of file CSCConditions.h.

Referenced by chipCorrection(), and initializeEvent().

edm::ESHandle<CSCDBCrosstalk> CSCConditions::theCrosstalk
private

Definition at line 144 of file CSCConditions.h.

Referenced by crossTalk(), crosstalkIntercept(), crosstalkSlope(), and initializeEvent().

edm::ESHandle<CSCDBGains> CSCConditions::theGains
private

Definition at line 143 of file CSCConditions.h.

Referenced by averageGain(), gain(), and initializeEvent().

edm::ESHandle<CSCDBGasGainCorrection> CSCConditions::theGasGainCorrections
private

Definition at line 152 of file CSCConditions.h.

Referenced by gasGainCorrection(), and initializeEvent().

edm::ESHandle<CSCDBNoiseMatrix> CSCConditions::theNoiseMatrix
private

Definition at line 146 of file CSCConditions.h.

Referenced by initializeEvent(), noiseMatrix(), and noiseMatrixElements().

edm::ESHandle<CSCDBPedestals> CSCConditions::thePedestals
private

Definition at line 145 of file CSCConditions.h.

Referenced by initializeEvent(), pedestal(), and pedestalSigma().

bool CSCConditions::useGasGainCorrections_
private

Definition at line 167 of file CSCConditions.h.

Referenced by CSCConditions(), and useGasGainCorrections().

bool CSCConditions::useTimingCorrections_
private

Definition at line 165 of file CSCConditions.h.

Referenced by CSCConditions(), and useTimingCorrections().