1 #ifndef MuonDetId_CSCIndexer_h 2 #define MuonDetId_CSCIndexer_h 89 const IndexType nschin[24] = {1,37,73, 109,127,0, 163,181,0, 217,469,0,
90 235,271,307, 343,361,0, 397,415,0, 451,505,0 };
91 return nschin[(ie-1)*12 + (is-1)*3 + ir-1];
99 IndexType
chamberIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic)
const {
107 IndexType
layerIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il)
const {
108 const IndexType layersInChamber = 6;
109 return (
chamberIndex(ie,is,ir,ic) - 1 ) * layersInChamber + il;
118 const IndexType nrins[5] = {0,3,2,2,2};
129 if (is >1 && ir<2 ) nc = 18;
143 const IndexType nSCinC[12] = { 80,80,64, 80,80,0, 80,80,0, 80,80,0 };
144 return nSCinC[(is-1)*3 + ir - 1];
162 const LongIndexType nStart[24] = { 1,17281,34561, 48385,57025,0, 74305,82945,0, 100225,217729,0,
163 108865,126145,143425, 157249,165889,0, 183169,191809,0, 209089,235009,0 };
164 return nStart[(ie-1)*12 + (is-1)*3 + ir - 1];
176 LongIndexType
stripChannelIndex( IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip )
const {
203 const IndexType nCinL[12] = { 5,5,4, 5,5,0, 5,5,0, 5,5,0 };
204 return nCinL[(is-1)*3 + ir - 1];
215 IndexType
chipStart( IndexType ie, IndexType is, IndexType ir )
const {
222 const IndexType nStart[24] = {1, 1081, 2161, 3025, 3565, 0, 4645, 5185, 0, 6265, 13609,0,
223 6805, 7885, 8965, 9829, 10369,0, 11449, 11989, 0, 13069, 14689 ,0 };
225 return nStart[(ie-1)*12 + (is-1)*3 + ir - 1];
237 IndexType
chipIndex( IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType ichip )
const {
267 return (istrip-1)/16+1;
279 const IndexType nSinL[12] = { 1,3,3, 3,5,0, 3,5,0, 3,5,0 };
280 return nSinL[(is-1)*3 + ir - 1];
305 IndexType hvSegment = 1;
307 if (is > 2 && ir == 1) {
308 if ( iwire >= 33 && iwire <= 64 ) { hvSegment = 2; }
309 else if ( iwire >= 65 && iwire <= 96 ) { hvSegment = 3; }
311 }
else if (is > 1 && ir == 2) {
312 if ( iwire >= 17 && iwire <= 28 ) { hvSegment = 2; }
313 else if ( iwire >= 29 && iwire <= 40 ) { hvSegment = 3; }
314 else if ( iwire >= 41 && iwire <= 52 ) { hvSegment = 4; }
315 else if ( iwire >= 53 && iwire <= 64 ) { hvSegment = 5; }
317 }
else if (is == 1 && ir == 2) {
318 if ( iwire >= 25 && iwire <= 48 ) { hvSegment = 2; }
319 else if ( iwire >= 49 && iwire <= 64 ) { hvSegment = 3; }
321 }
else if (is == 1 && ir == 3) {
322 if ( iwire >= 13 && iwire <= 22 ) { hvSegment = 2; }
323 else if ( iwire >= 23 && iwire <= 32 ) { hvSegment = 3; }
325 }
else if (is == 2 && ir == 1) {
326 if ( iwire >= 45 && iwire <= 80 ) { hvSegment = 2; }
327 else if ( iwire >= 81 && iwire <= 112) { hvSegment = 3; }
342 IndexType
sectorStart( IndexType ie, IndexType is, IndexType ir )
const {
351 const IndexType nStart[24] = {1 ,1081 , 4321,
359 return nStart[(ie-1)*12 + (is-1)*3 + ir - 1];
383 IndexType
gasGainIndex( IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip, IndexType iwire )
const {
384 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