20 assert( ieta>0 && ieta<=85 );
21 if( iphi<0 ) iphi+=360;
22 assert( iphi>0 && iphi<=360 );
32 assert( ieta>0 && ieta<=85 );
36 if( iphi_>360 ) iphi_-=360;
37 assert( iphi_>0 && iphi_<=360 );
39 int ism = (iphi_-1)/20 + 1;
40 assert( ism>=1 && ism<=18 );
42 if( iz==-1 ) ism += 18;
50 int ism = sm( ieta, iphi );
51 return dccFromSm( ism );
57 assert( ism>=1 && ism<=36 );
61 assert( ism>=1 && ism<=18 );
63 if( iz==+1 ) idcc+=18;
70 if( idcc>600 ) idcc-=600;
71 assert( idcc>=10 && idcc<=45 );
81 assert( ism>=1 && ism<=36 );
95 std::pair<EBLocalCoord,EBLocalCoord> ixy = localCoord( ieta, iphi );
96 return lm_channel( ixy.first/5, ixy.second/5 );
102 std::pair<EBLocalCoord,EBLocalCoord> ixy = localCoord( ieta, iphi );
103 return tt_channel( ixy.first/5, ixy.second/5 );
109 std::pair<EBLocalCoord,EBLocalCoord> ixy = localCoord( ieta, iphi );
110 return crystal_channel( ixy.first, ixy.second );
116 int ilmmod = lmmod( ieta, iphi );
117 return (ilmmod%2==0)?1:0;
123 int idcc = dcc( ieta, iphi );
125 int iside = side( ieta, iphi );
126 int ilmr = 1 + 2*(ism-1) + iside;
130 std::pair< MEEBGeom::EBLocalCoord, MEEBGeom::EBLocalCoord >
136 assert( ieta>0 && ieta<=85 );
140 if( iphi_>360 ) iphi_-=360;
141 assert( iphi_>0 && iphi_<=360 );
145 int iy = (iphi_-1)%20;
146 if( iz==-1 ) iy = 19-iy;
149 return std::pair< EBLocalCoord, EBLocalCoord >(ix,iy);
152 std::pair< MEEBGeom::EBLocalCoord, MEEBGeom::EBLocalCoord >
155 assert( icr>=1 && icr<=1700 );
157 int iy = 19 - (icr-1)%20;
158 return std::pair< EBLocalCoord, EBLocalCoord >(ix,iy);
161 std::pair< MEEBGeom::EBGlobalCoord, MEEBGeom::EBGlobalCoord >
164 assert( ism>=1 && ism<=36 );
165 assert( ix>=0 && ix<85 );
166 assert( iy>=0 && iy<20 );
174 if( iz==-1 ) iy = 19-iy;
180 int iphi = 1 + iy + 20*(ism-1);
182 return std::pair< EBGlobalCoord, EBGlobalCoord >(ieta,iphi);
185 std::pair< float, float >
188 assert( ism>=1 && ism<=36 );
195 if( iz==-1 ) y = 19-
y;
200 float phi = 1 + y + 20*(ism-1);
202 return std::pair< float, float >(
eta,
phi);
205 std::pair< MEEBGeom::EBGlobalCoord, MEEBGeom::EBGlobalCoord >
208 assert( ism>=1 && ism<=36 );
209 assert( icr>=1 && icr<=1700 );
212 int iy = 19 - (icr-1)%20;
214 return globalCoord( ism, ix, iy );
224 "-01-02-02-02-02-04-04-04-04-06-06-06-06-08-08-08-08"
225 "-01-02-02-02-02-04-04-04-04-06-06-06-06-08-08-08-08"
226 "-01-03-03-03-03-05-05-05-05-07-07-07-07-09-09-09-09"
227 "-01-03-03-03-03-05-05-05-05-07-07-07-07-09-09-09-09"
231 int iym, ixm, nc, il, ic, ii;
240 if( str_.substr(ii,1).find(
"-")==string::npos )
return -1;
241 return atoi( str_.substr(ii+1,2).c_str() );
251 "-01-01-01-02-02-01-01-02-02-01-01-02-02-01-01-02-02"
252 "-01-01-01-02-02-01-01-02-02-01-01-02-02-01-01-02-02"
253 "-01-01-01-02-02-01-01-02-02-01-01-02-02-01-01-02-02"
254 "-01-01-01-02-02-01-01-02-02-01-01-02-02-01-01-02-02"
258 int iym, ixm, nc, il, ic, ii;
267 if( str_.substr(ii,1).find(
"-")==string::npos )
return -1;
268 return atoi( str_.substr(ii+1,2).c_str() );
278 "-01-03-05-07-09-11-13-15-17-19-21-23-25-27-29-31-33"
279 "-01-03-05-07-09-11-13-15-17-19-21-23-25-27-29-31-33"
280 "-02-04-06-08-10-12-14-16-18-20-22-24-26-28-30-32-34"
281 "-02-04-06-08-10-12-14-16-18-20-22-24-26-28-30-32-34"
285 int iym, ixm, nc, il, ic, ii;
294 if( str_.substr(ii,1).find(
"-")==string::npos )
return -1;
295 return atoi( str_.substr(ii+1,2).c_str() );
305 "-01-02-02-04-04-06-06-08-08-10-10-12-12-14-14-16-16"
306 "-01-02-02-04-04-06-06-08-08-10-10-12-12-14-14-16-16"
307 "-01-03-03-05-05-07-07-09-09-11-11-13-13-15-15-17-17"
308 "-01-03-03-05-05-07-07-09-09-11-11-13-13-15-15-17-17"
312 int iym, ixm, nc, il, ic, ii;
321 if( str_.substr(ii,1).find(
"-")==string::npos )
return -1;
322 return atoi( str_.substr(ii+1,2).c_str() );
339 int icr = 20*ix + 19-iy + 1;
349 int itt = tt_channel( iX, iY );
350 int type = tt_type( iX, iY );
354 if( iVFE%2==1 ) islot = 6-islot;
355 int icr = 5*(iVFE-1)+(islot-1);
370 if( type==iSuperModule )
374 else if( type==iLMRegion )
386 if( global ) ism = ism_;
401 if( type==iSuperModule )
415 else if( type==iLMRegion )
427 iy[0] = iymin+10-0.5;
433 iy[3] = iymin+10-0.5;
447 iy[3] = iymax-10+0.5;
449 iy[4] = iymax-10+0.5;
459 for(
int ii=0; ii<
n; ii ++ )
461 std::pair<float,float>
xy = globalCoord( ism, ix[ii], iy[ii] );
479 return new TGraph( n, ix, iy );
482 std::pair< int, int >
487 case 1:
return std::pair<int,int>( 0, 5 );
488 case 2:
return std::pair<int,int>( 1, 6 );
489 case 3:
return std::pair<int,int>( 1, 6 );
490 case 4:
return std::pair<int,int>( 2, 7 );
491 case 5:
return std::pair<int,int>( 2, 7 );
492 case 6:
return std::pair<int,int>( 3, 8 );
493 case 7:
return std::pair<int,int>( 3, 8 );
494 case 8:
return std::pair<int,int>( 4, 9 );
495 case 9:
return std::pair<int,int>( 4, 9 );
499 return std::pair<int,int>(-1,-1);
506 int idcc = dccAndSide_.first;
507 return std::pair<int,int>( idcc, idcc );
514 int iside = dccAndSide_.second;
515 std::vector< int > vec;
516 for(
int ilmmod=1; ilmmod<=9; ilmmod++ )
518 if( (ilmmod+iside)%2==1 ) vec.push_back(ilmmod);
558 std::vector< int > vec;
561 case 1: vec.push_back(0); vec.push_back(24);
break;
562 case 2: vec.push_back(0); vec.push_back(24);
break;
563 case 3: vec.push_back(0); vec.push_back(24);
break;
564 case 4: vec.push_back(0); vec.push_back(24);
break;
565 case 5: vec.push_back(0); vec.push_back(24);
break;
566 case 6: vec.push_back(0); vec.push_back(24);
break;
567 case 7: vec.push_back(0); vec.push_back(24);
break;
568 case 8: vec.push_back(0); vec.push_back(24);
break;
569 case 9: vec.push_back(0); vec.push_back(24);
break;
static XYCoord localCoord(int icr)
static int smFromDcc(int idcc)
static std::vector< int > apdRefChannels(int ilmmod)
static TString smName(int ism)
static int crystal(EBGlobalCoord ieta, EBGlobalCoord iphi)
static int crystal_channel(EBLocalCoord ix, EBLocalCoord iy)
static int tt_type(EBTTLocalCoord iX, EBTTLocalCoord iY)
static int lmr(EBGlobalCoord ieta, EBGlobalCoord iphi)
static std::pair< int, int > pn(int ilmmod)
static int lm_channel(EBTTLocalCoord iX, EBTTLocalCoord iY)
static int electronic_channel(EBLocalCoord ix, EBLocalCoord iy)
static EtaPhiCoord globalCoord(int ism, EBLocalCoord ix, EBLocalCoord iy)
static TGraph * getGraphBoundary(int type, int num, bool global=false)
static std::pair< int, int > dccAndSide(int ilmr)
static int apdRefTower(int ilmmod)
static int lv_channel(EBTTLocalCoord iX, EBTTLocalCoord iY)
static int lmmod(EBGlobalCoord ieta, EBGlobalCoord iphi)
static std::pair< int, int > memFromLmr(int ilmr)
Basic2DVector< T > xy() const
static int side(EBGlobalCoord ieta, EBGlobalCoord iphi)
static int tt_channel(EBTTLocalCoord iX, EBTTLocalCoord iY)
static int hv_channel(EBTTLocalCoord iX, EBTTLocalCoord iY)
static int barrel(EBGlobalCoord ieta, EBGlobalCoord iphi)
static int sm(EBGlobalCoord ieta, EBGlobalCoord iphi)
static int dcc(EBGlobalCoord ieta, EBGlobalCoord iphi)
int ism(int ieta, int iphi)
static int dccFromSm(int ism)
static int tt(EBGlobalCoord ieta, EBGlobalCoord iphi)
static std::vector< int > lmmodFromLmr(int ilmr)