6 RPCGeomServ::RPCGeomServ::RPCGeomServ(
const RPCDetId&
id )
25 int region = _id->region();
26 int roll = _id->roll();
27 int ring = _id->ring();
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();
128 int ring = _id->ring();
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();
214 int roll = _id->roll();
215 int ring = _id->ring();
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) {
473 int ring = _id->ring();
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.