1 #ifndef MuonDetId_CSCIndexer_h 2 #define MuonDetId_CSCIndexer_h 87 const IndexType nschin[24] = {1, 37, 73, 109, 127, 0, 163, 181, 0, 217, 469, 0,
88 235, 271, 307, 343, 361, 0, 397, 415, 0, 451, 505, 0};
89 return nschin[(ie - 1) * 12 + (is - 1) * 3 + ir - 1];
96 IndexType
chamberIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic)
const {
104 IndexType
layerIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il)
const {
105 const IndexType layersInChamber = 6;
106 return (
chamberIndex(ie, is, ir, ic) - 1) * layersInChamber + il;
115 const IndexType nrins[5] = {0, 3, 2, 2, 2};
126 if (is > 1 && ir < 2)
141 const IndexType nSCinC[12] = {80, 80, 64, 80, 80, 0, 80, 80, 0, 80, 80, 0};
142 return nSCinC[(is - 1) * 3 + ir - 1];
159 const LongIndexType nStart[24] = {1, 17281, 34561, 48385, 57025, 0, 74305, 82945, 0, 100225, 217729, 0,
160 108865, 126145, 143425, 157249, 165889, 0, 183169, 191809, 0, 209089, 235009, 0};
161 return nStart[(ie - 1) * 12 + (is - 1) * 3 + ir - 1];
174 IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip)
const {
201 const IndexType nCinL[12] = {5, 5, 4, 5, 5, 0, 5, 5, 0, 5, 5, 0};
202 return nCinL[(is - 1) * 3 + ir - 1];
213 IndexType
chipStart(IndexType ie, IndexType is, IndexType ir)
const {
219 const IndexType nStart[24] = {1, 1081, 2161, 3025, 3565, 0, 4645, 5185, 0, 6265, 13609, 0,
220 6805, 7885, 8965, 9829, 10369, 0, 11449, 11989, 0, 13069, 14689, 0};
222 return nStart[(ie - 1) * 12 + (is - 1) * 3 + ir - 1];
234 IndexType
chipIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType ichip)
const {
262 IndexType
chipIndex(IndexType istrip)
const {
return (istrip - 1) / 16 + 1; }
273 const IndexType nSinL[12] = {1, 3, 3, 3, 5, 0, 3, 5, 0, 3, 5, 0};
274 return nSinL[(is - 1) * 3 + ir - 1];
298 IndexType hvSegment = 1;
300 if (is > 2 && ir == 1) {
301 if (iwire >= 33 && iwire <= 64) {
303 }
else if (iwire >= 65 && iwire <= 96) {
307 }
else if (is > 1 && ir == 2) {
308 if (iwire >= 17 && iwire <= 28) {
310 }
else if (iwire >= 29 && iwire <= 40) {
312 }
else if (iwire >= 41 && iwire <= 52) {
314 }
else if (iwire >= 53 && iwire <= 64) {
318 }
else if (is == 1 && ir == 2) {
319 if (iwire >= 25 && iwire <= 48) {
321 }
else if (iwire >= 49 && iwire <= 64) {
325 }
else if (is == 1 && ir == 3) {
326 if (iwire >= 13 && iwire <= 22) {
328 }
else if (iwire >= 23 && iwire <= 32) {
332 }
else if (is == 2 && ir == 1) {
333 if (iwire >= 45 && iwire <= 80) {
335 }
else if (iwire >= 81 && iwire <= 112) {
351 IndexType
sectorStart(IndexType ie, IndexType is, IndexType ir)
const {
360 const IndexType nStart[24] = {1, 1081, 4321,
368 return nStart[(ie - 1) * 12 + (is - 1) * 3 + ir - 1];
393 IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip, IndexType iwire)
const {
394 IndexType ichip = this->
chipIndex(istrip);
std::pair< CSCDetId, IndexType > detIdFromStripChannelIndex(LongIndexType ichi) const
IndexType chamberLabelFromChamberIndex(IndexType) const
IndexType chipsPerLayer(IndexType is, IndexType ir) const
IndexType layerIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il) const
IndexType chamberIndex(const CSCDetId &id) const
void fillChamberLabel() const
IndexType chambersInRingOfStation(IndexType is, IndexType ir) const
IndexType hvSegmentIndex(IndexType is, IndexType ir, IndexType iwire) const
LongIndexType stripChannelIndex(const CSCDetId &id, IndexType istrip) const
IndexType ringsInStation(IndexType is) const
int dbIndex(const CSCDetId &id, int &channel)
CSCDetId detIdFromChamberIndex(IndexType ici) const
CSCDetId detIdFromChamberIndex_OLD(IndexType ici) const
std::pair< CSCDetId, IndexType > detIdFromChipIndex(IndexType ichi) const
IndexType chamberIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic) const
IndexType chipIndex(IndexType istrip) const
IndexType chipStart(IndexType ie, IndexType is, IndexType ir) const
CSCDetId detIdFromChamberLabel(IndexType ie, IndexType icl) const
IndexType sectorsPerLayer(IndexType is, IndexType ir) const
IndexType chipIndex(const CSCDetId &id, IndexType ichip) const
IndexType stripChannelsPerLayer(IndexType is, IndexType ir) const
IndexType layerIndex(const CSCDetId &id) const
IndexType chipIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType ichip) const
IndexType startChamberIndexInEndcap(IndexType ie, IndexType is, IndexType ir) const
std::vector< IndexType > chamberLabel
IndexType hvSegmentsPerLayer(IndexType is, IndexType ir) const
LongIndexType stripChannelStart(IndexType ie, IndexType is, IndexType ir) const
LongIndexType stripChannelIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip) const
IndexType gasGainIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip, IndexType iwire) const
CSCDetId detIdFromLayerIndex(IndexType ili) const
IndexType gasGainIndex(const CSCDetId &id, IndexType istrip, IndexType iwire) const
IndexType sectorStart(IndexType ie, IndexType is, IndexType ir) const