Go to the documentation of this file.00001 #include "CondFormats/CSCObjects/interface/CSCChannelTranslator.h"
00002
00003 int CSCChannelTranslator::rawStripChannel( const CSCDetId& id, int igeo ) const {
00004
00005
00006
00007
00008 int iraw = igeo;
00009
00010 bool zplus = (id.endcap()==1);
00011
00012 bool me1a = (id.station()==1) && (id.ring()==4);
00013 bool me1b = (id.station()==1) && (id.ring()==1);
00014
00015 if ( me1a && zplus ) { iraw = 17 - iraw; }
00016 if ( me1b && !zplus) { iraw = 65 - iraw; }
00017 if ( me1a ) { iraw += 64 ;}
00018
00019 return iraw;
00020 }
00021
00022
00023 int CSCChannelTranslator::geomStripChannel( const CSCDetId& id, int iraw ) const {
00024
00025
00026
00027
00028 int igeo = iraw;
00029
00030 bool zplus = (id.endcap()==1);
00031 bool me11 = (id.station()==1) && (id.ring()==1);
00032 bool me1a = me11 && (iraw > 64);
00033 bool me1b = me11 && (iraw <= 64);
00034
00035 if ( me1a ) igeo -= 64;
00036
00037 if ( me1a && zplus ) { igeo = 17 - igeo; }
00038 if ( me1b && !zplus) { igeo = 65 - igeo; }
00039
00040 return igeo;
00041 }
00042
00043 int CSCChannelTranslator::channelFromStrip( const CSCDetId& id, int strip ) const {
00044
00045
00046
00047 int ichan = strip;
00048 bool me1a = (id.station()==1) && (id.ring()==4);
00049 if ( me1a && strip>16 ) ichan = (strip-1)%16 + 1;
00050 return ichan;
00051 }
00052
00053 CSCDetId CSCChannelTranslator::rawCSCDetId( const CSCDetId& id ) const {
00054
00055
00056 CSCDetId idraw( id );
00057 bool me1a = (id.station()==1) && (id.ring()==4);
00058 if ( me1a ) idraw = CSCDetId( id.endcap(), id.station(), 1, id.chamber(), id.layer() );
00059 return idraw;
00060 }