6 RPCGeomServ::RPCGeomServ::RPCGeomServ(
const RPCDetId&
id )
25 int region =
_id->region();
28 int layer =
_id->layer();
29 int sector =
_id->sector();
30 int subsector =
_id->subsector();
37 os << std::setw(2) << std::setfill(
'+') << ring
38 << std::setfill(
' ') <<
"_";
42 (layer == 1 ) ? os <<
"in" : os <<
"out";
44 }
else if( station > 2 )
46 if( sector == 4 && station == 4 )
52 else if( subsector == 2 )
56 else if( subsector == 3 )
60 else if( subsector == 4 )
86 os <<
"S" << std::setw(2) << std::setfill(
'0')
87 << sector << std::setfill(
' ');
99 os << std::setw(2) << std::setfill(
'+') << station * region
100 << std::setfill(
' ') <<
"_";
103 os <<
"_CH" << std::setw(2) << std::setfill(
'0') << this->segment();
127 int region =
_id->region();
129 int layer =
_id->layer();
130 int sector =
_id->sector();
131 int subsector =
_id->subsector();
133 std::stringstream os;
139 os << std::setw(2) << std::setfill(
'+') << ring
140 << std::setfill(
' ') <<
"_";
143 if ( station <= 2 ) {
145 (layer == 1 ) ? os <<
"in" : os <<
"out";
147 }
else if( station > 2 )
149 if( sector == 4 && station == 4 )
155 else if( subsector == 2 )
159 else if( subsector == 3 )
163 else if( subsector == 4 )
176 else if( station == 4
189 os <<
"S" << std::setw(2) << std::setfill(
'0')
190 << sector << std::setfill(
' ');
196 os << std::setw(2) << std::setfill(
'+') << station * region
197 << std::setfill(
' ') <<
"_";
200 os <<
"_CH" << std::setw(2) << std::setfill(
'0') << this->segment();
213 int region =
_id->region();
216 int layer =
_id->layer();
217 int sector =
_id->sector();
218 int subsector =
_id->subsector();
220 std::stringstream os;
227 (layer == 1 ) ? os <<
"in" : os <<
"out";
232 if( sector == 4 && station == 4 )
238 else if( subsector == 2 )
242 else if( subsector == 3 )
246 else if( subsector == 4 )
268 os <<
"Ri" << ring <<
" Su" << subsector;
279 std::vector<int> chipCh(4,8);
281 if(
_id->region()==0){
286 if (station<3 && _id->layer()==1){
287 chipCh.emplace_back(7);
288 chipCh.emplace_back(8);
289 }
else if (station == 1 || station == 3){
290 chipCh.emplace_back(7);
291 chipCh.emplace_back(7);
292 }
else if (station == 2){
293 chipCh.emplace_back(6);
294 chipCh.emplace_back(8);
295 }
else if (
_id->sector() == 4 ||
_id->sector()==10 ||(
_id->sector() == 8 &&
_id->subsector()!=1) || (
_id->sector() == 12 &&
_id->subsector()==1)){
296 chipCh.emplace_back(6);
297 chipCh.emplace_back(6);
299 chipCh.emplace_back(8);
300 chipCh.emplace_back(8);
312 if (
_id->region() == 0 ){
313 if (this->inverted()) {
314 _t = 3*(
_id->ring())+ (3-
_id->roll())-1;
316 _t = 3*(
_id->ring())+
_id->roll()-2;
319 _t =
_id->region() * (3*(3-
_id->ring()) +
_id->roll() + 7);
330 if(
_id->station() ==1) {
333 if(
_id->layer() ==1) {
353 if (
_id->station()==2) {
356 if(
_id->layer()==1) {
381 if(
_id->station()==3)
383 if(
_id->subsector()==1) {
401 if(
_id->station()==4) {
403 if (
_id->sector()== 4) {
405 if (
_id->subsector()==2){
414 if (
_id->subsector()==3){
423 if (
_id->subsector()==1) {
431 if (
_id->subsector()==4){
445 if(
_id->subsector()==1) {
474 ( ring == 1 && station > 1 ) ? nsub = 3 : nsub = 6;
476 return(
_id->subsector() + nsub * (
_id->sector() - 1 ));
483 return !(this->zpositive());
490 if (
_id->region()==0 && _t<-90 ){
495 if (
_id->sector() == 1 ||
_id->sector() == 4 ||
496 _id->sector() == 5 ||
_id->sector() == 8 ||
497 _id->sector() == 9 ||
_id->sector() == 12){
509 if (
_id->region()==0 && _t<-90 ){
510 if (
_id->ring() > 0){
511 if (
_id->layer()==2){
514 }
else if(
_id->ring() <0){
515 if (
_id->layer()==1){
518 }
else if(
_id->ring() ==0) {
519 if ((
_id->sector() == 1 ||
_id->sector() == 4 ||
520 _id->sector() == 5 ||
_id->sector() == 8 ||
521 _id->sector() == 9 ||
_id->sector() == 12) &&
_id->layer()==1)
523 else if ((
_id->sector() == 2 ||
_id->sector() == 3 ||
524 _id->sector() == 6 ||
_id->sector() == 7 ||
525 _id->sector() == 10||
_id->sector() == 11) &&
_id->layer()==2)
virtual std::string chambername()
virtual int eta_partition()
std::vector< int > channelInChip()
virtual std::string name()
virtual bool aclockwise()
virtual std::string shortname()
const RPCRoll * roll(RPCDetId id) const
Return a roll given its id.