1 #ifndef CSCIndexerBase_H 2 #define CSCIndexerBase_H 65 #include <boost/tuple/tuple.hpp> 105 const IndexType nrins[5] = {0, 3, 2, 2, 2};
122 const IndexType nrings[5] = {0, 4, 2, 2, 2};
131 const IndexType nCinR[16] = {36, 36, 36, 36, 18, 36, 0, 0, 18, 36, 0, 0, 18, 36, 0, 0};
132 return nCinR[(is - 1) * 4 + ir - 1];
180 const IndexType nschin[32] = {1, 37, 73, 1, 109, 127, 0, 0, 163, 181, 0, 0, 217, 469, 0, 0,
181 235, 271, 307, 235, 343, 361, 0, 0, 397, 415, 0, 0, 451, 505, 0, 0};
182 return nschin[(ie - 1) * 16 + (is - 1) * 4 + ir - 1];
193 IndexType
chamberIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic)
const {
222 IndexType
layerIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il)
const {
223 const IndexType layersInChamber = 6;
224 return (
chamberIndex(ie, is, ir, ic) - 1) * layersInChamber + il;
269 virtual LongIndexType
stripChannelStart(IndexType ie, IndexType is, IndexType ir)
const = 0;
279 IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip)
const {
302 virtual IndexType
chipsPerLayer(IndexType is, IndexType ir)
const = 0;
311 virtual IndexType
chipStart(IndexType ie, IndexType is, IndexType ir)
const = 0;
322 IndexType
chipIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType ichip)
const {
334 IndexType
chipIndex(
const CSCDetId &
id, IndexType ichip)
const {
347 IndexType
chipIndex(IndexType istrip)
const {
return (istrip - 1) / 16 + 1; }
361 const IndexType nSinL[16] = {1, 3, 3, 1, 3, 5, 0, 0, 3, 5, 0, 0, 3, 5, 0, 0};
362 return nSinL[(is - 1) * 4 + ir - 1];
374 IndexType
hvSegmentIndex(IndexType is, IndexType ir, IndexType iwire)
const;
401 virtual IndexType
sectorStart(IndexType ie, IndexType is, IndexType ir)
const = 0;
420 IndexType ihvsegment,
421 IndexType ichip)
const {
436 IndexType
gasGainIndex(
const CSCDetId &
id, IndexType istrip, IndexType iwire)
const {
459 IndexType
gasGainIndex(IndexType ihvsegment, IndexType ichip,
const CSCDetId &
id)
const {
525 virtual int dbIndex(
const CSCDetId &
id,
int &channel)
const = 0;
virtual IndexType onlineRingsInStation(IndexType is) const =0
virtual IndexType chipsPerOnlineLayer(IndexType is, IndexType ir) const =0
virtual IndexType stripChannelsPerLayer(IndexType is, IndexType ir) const =0
IndexType chamberIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic) const
IndexType sectorsPerOnlineLayer(IndexType is, IndexType ir) const
LongIndexType stripChannelIndex(const CSCDetId &id, IndexType istrip) const
boost::tuple< CSCDetId, IndexType, IndexType > GasGainIndexType
CSCDetId detIdFromChamberIndex(IndexType ici) const
virtual std::pair< CSCDetId, IndexType > detIdFromStripChannelIndex(LongIndexType ichi) const =0
IndexType chambersInRingOfStation(IndexType is, IndexType ir) const
virtual LongIndexType stripChannelStart(IndexType ie, IndexType is, IndexType ir) const =0
virtual LongIndexType maxStripChannelIndex() const =0
IndexType layerIndex(const CSCDetId &id) const
virtual IndexType stripChannelsPerOfflineLayer(IndexType is, IndexType ir) const =0
IndexType maxLayerIndex() const
virtual GasGainIndexType detIdFromGasGainIndex(IndexType igg) const =0
CSCDetId detIdFromChamberLabel(IndexType ie, IndexType icl) const
virtual int dbIndex(const CSCDetId &id, int &channel) const =0
IndexType hvSegmentsPerLayer(IndexType is, IndexType ir) const
IndexType maxChamberIndex() const
IndexType gasGainIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType ihvsegment, IndexType ichip) const
IndexType gasGainIndex(const CSCDetId &id, IndexType istrip, IndexType iwire) const
virtual IndexType chipsPerLayer(IndexType is, IndexType ir) const =0
IndexType sectorsPerLayer(IndexType is, IndexType ir) const
virtual IndexType stripChannelsPerOnlineLayer(IndexType is, IndexType ir) const =0
IndexType hvSegmentIndex(IndexType is, IndexType ir, IndexType iwire) const
IndexType startChamberIndexInEndcap(IndexType ie, IndexType is, IndexType ir) const
CSCDetId detIdFromLayerIndex(IndexType ili) const
virtual IndexType maxGasGainIndex() const =0
virtual IndexType maxChipIndex() const =0
IndexType chipIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType ichip) const
virtual IndexType sectorStart(IndexType ie, IndexType is, IndexType ir) const =0
IndexType chamberLabelFromChamberIndex(IndexType) const
IndexType offlineRingsInStation(IndexType is) const
IndexType chipIndex(IndexType istrip) const
virtual std::pair< CSCDetId, IndexType > detIdFromChipIndex(IndexType ichi) const =0
IndexType chipIndex(const CSCDetId &id, IndexType ichip) const
IndexType ringsInStation(IndexType is) const
IndexType layerIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il) const
LongIndexType stripChannelIndex(IndexType ie, IndexType is, IndexType ir, IndexType ic, IndexType il, IndexType istrip) const
virtual std::string name() const
virtual IndexType chipStart(IndexType ie, IndexType is, IndexType ir) const =0
IndexType gasGainIndex(IndexType ihvsegment, IndexType ichip, const CSCDetId &id) const
IndexType chamberIndex(const CSCDetId &id) const
virtual ~CSCIndexerBase()
std::vector< IndexType > chamberLabel_