53 for (
short int i = 1;
i < nstrips+1; ++
i) {
67 LogTrace(
"CSCRecoConditions") <<
id <<
" geomStrip " << geomStrip <<
" stripWeight " <<
w;
78 const float fakeme12[15] = {8.64, 3.47, 2.45, 8.60, 3.28, 1.88, 8.61, 3.18, 1.99, 7.67, 2.64, 0., 7.71, 0., 0.};
82 for (
short int i = geomStrip-1;
i < geomStrip+2; ++
i) {
84 std::vector<float>
me(12);
90 for (
short int j=0;
j<11; ++
j ) {
99 bool isFlawed =
false;
100 for (
short int k = 0;
k < 15; ++
k) {
101 if (elem[
k] < 0.001) elem[
k] = 0.001;
102 if (elem[
k] > 50.) isFlawed =
true;
107 for (
short int m = 0;
m < 15; ++
m ) { elem[
m] = fakeme12[
m]; }
110 for (
int k = 0;
k < 15; ++
k) { nMatrix.push_back( elem[
k] ); }
120 for (
short int i = geomStrip-1;
i < geomStrip+2; ++
i) {
122 std::vector<float> ct(4);
124 xtalks.push_back(ct[0]);
125 xtalks.push_back(ct[1]);
126 xtalks.push_back(ct[2]);
127 xtalks.push_back(ct[3]);
133 bool nearBad = (
badStrip(
id,geomStrip-1, nstrips) ||
badStrip(
id,geomStrip+1, nstrips) );
150 if(geomStrip>0 && geomStrip<=nstrips){
154 if( rawChan>0 && rawChan<113 ){
156 bad = badStrips.test(rawChan-1);
float gasGainCorrection(const CSCDetId &id, int strip, int wireGroup) const
returns gas-gain correction
float pedestalSigma(const CSCDetId &detId, int channel) const
static ped rms in ADC counts
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 fillBadChannelWords(const CSCDetId &id)
Fill bad channel words - one for strips, one for wires, for an offline CSCDetId.
CSCRecoConditions(const edm::ParameterSet &pset)
void noiseMatrix(const CSCDetId &id, int centralStrip, std::vector< float > &nme) const
float chipCorrection(const CSCDetId &detId, int channel) const
chip speed correction in ns given detId (w/layer) and strip channel
float averageGain() const
return average gain over entire CSC system
bool nearBadStrip(const CSCDetId &id, int geomStrip, int nstrips) const
Is a neighbour bad?
float chamberTimingCorrection(const CSCDetId &detId) const
chamber timing correction in ns given detId of chamber
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
float anodeBXoffset(const CSCDetId &detId) const
anode bx offset in bx given detId of chamber
float pedestal(const CSCDetId &detId, int channel) const
static ped in ADC counts
bool badStrip(const CSCDetId &id, int geomStrip, int nstrips) const
Is the strip bad?
float gain(const CSCDetId &id, int geomStrip) const
channels and geomstrips count from 1
const std::bitset< 112 > & badWireWord() const
bad wiregroup channel word for a CSCLayer - 1 bit per channel
void fillBadChannelWords(const CSCDetId &id)
fill bad strip & bad wiregroup bitsets from conditions data
int rawStripChannel(const CSCDetId &id, int geomChannel) const
int channelFromStrip(const CSCDetId &id, int geomStrip) const
feedthrough for external access
CSCConditions theConditions
void initializeEvent(const edm::EventSetup &es)
fetch database content via EventSetup
float stripWeight(const CSCDetId &id, int geomStrip) const
return gain weight for given strip channel
float gain(const CSCDetId &detId, int channel) const
gain per channel
float chipCorrection(const CSCDetId &detId, int channel) const
All other functions are accessed by geometrical strip label (i.e. strip number according to local coo...
float anodeBXoffset(const CSCDetId &detId) const
void crossTalk(const CSCDetId &id, int centralStrip, std::vector< float > &xtalks) const
float pedestalSigma(const CSCDetId &id, int channel) const
sigma of static pedestal in ADC counts for strip channel (e.g. 1-16 for ganged ME1a, 1-48 for unganged ME1a)
void stripWeights(const CSCDetId &id, short int nstrips, float *weights) const
float pedestal(const CSCDetId &id, int channel) const
static pedestal in ADC counts for strip channel (e.g. 1-16 for ganged ME1a, 1-48 for unganged ME1a) ...
const CSCDetId & idOfBadChannelWords() const
the offline CSCDetId of current bad channel words
float gasGainCorrection(const CSCDetId &detId, int strip, int wire) const
gas gain correction as a function of detId (w/layer), strip, and wire channels
float chamberTimingCorrection(const CSCDetId &id) const
void initializeEvent(const edm::EventSetup &es)
fetch the cond data from the database
const std::bitset< 112 > & badWireWord(const CSCDetId &id) const
Get bad wiregroup word.
const std::bitset< 112 > & badStripWord() const
bad strip channel word for a CSCLayer - 1 bit per channel