#include <iostream>
Go to the source code of this file.
Functions | |
int | abOfDcc (int iDCC) |
int | dccIndex (int iDet, int i, int j) |
int | dccIndexOfRU (int iDet, int i, int j) |
int | dccPhiIndex (int iDet, int i, int j) |
int | dccPhiIndexOfRU (int iDet, int i, int j) |
template<class T > | |
T | mod (const T &a, const T &b) |
Variables | |
static const char | endcapDccMap [401] |
int abOfDcc | ( | int | iDCC | ) | [inline] |
Definition at line 104 of file ecalDccMap.h.
References mod().
{ if(iDCC<0||iDCC>54) return -1; if(iDCC<9){//EE- return iDCC/3; } else if(iDCC<27){//EB- //an EB AB is made of 6 DCCs, //first EB- AB is numbered 3 //and "1st" DCC of AB 3 is DCC 26 //(AB 3 made of DCCs 26,9,10,11,12,13): return 3+mod(iDCC-26,18)/6; } else if(iDCC<45){//EB+ //an EB AB is made of 6 DCCs, //first EB+ AB is numbered 6 //and "1st" DCC of AB6 is DCC 44 //(AB 6 made of DCCs 44,27,28,29,30,31): return 6+mod(iDCC-44,18)/6; } else{//EE+ //AB numbering starts at DCC=45 and runs along phi in increasing phi //first EE+ AB is numbered 9: return 9+(iDCC-45)/3; } }
int dccIndex | ( | int | iDet, |
int | i, | ||
int | j | ||
) | [inline] |
Gets the index of the DCC reading a crystal
iDet | 0 for EE-, 1 for EB, 2 for EE+ |
i | iEta or iX |
j | iPhi or iY |
Definition at line 66 of file ecalDccMap.h.
References dccPhiIndex().
{ if(iDet==1){//barrel //a SM is 85 crystal long: int iEtaSM = i/85; //a SM is 20 crystal wide: int iPhiSM = (j+10)/20; //DCC numbers start at 9 in the barrel and there 18 DCC/SM return 9+18*iEtaSM+iPhiSM; } int iPhi = dccPhiIndex(iDet, i, j); if(iPhi<0) return -1; //34 DCCs in barrel and 8 in EE-=>in EE+ DCC numbering starts at 45, //iDet/2 is 0 for EE- and 1 for EE+: return iPhi+iDet/2*45; }
int dccIndexOfRU | ( | int | iDet, |
int | i, | ||
int | j | ||
) | [inline] |
Gets the index of the DCC reading a crystal
iDet | 0 for EE-, 1 for EB, 2 for EE+ |
i | iEta (staring at eta=-1.48) or iX |
j | iPhi or iY |
Definition at line 88 of file ecalDccMap.h.
References dccPhiIndexOfRU().
{ if(iDet==1){//barrel //a SM is 17 RU long: int iEtaSM = i/17; //a SM is 4 RU wide: int iPhiSM = (j+2)/4; //DCC numbers start at 9 in the barrel and there 18 DCC/SM return 9+18*iEtaSM+iPhiSM; } int iPhi = dccPhiIndexOfRU(iDet, i, j); if(iPhi<0) return -1; //34 DCCs in barrel and 8 in EE-=>in EE+ DCC numbering starts at 45, //iDet/2 is 0 for EE- and 1 for EE+: return iPhi+iDet/2*45; }
int dccPhiIndex | ( | int | iDet, |
int | i, | ||
int | j | ||
) | [inline] |
Gets the phi index of the DCC reading a crystal
iDet | 0 for EE-, 1 for EB, 2 for EE+ |
i | iEta or iX |
j | iPhi or iY |
Definition at line 56 of file ecalDccMap.h.
References dccPhiIndexOfRU().
{ return dccPhiIndexOfRU(iDet, i/5, j/5); }
int dccPhiIndexOfRU | ( | int | iDet, |
int | i, | ||
int | j | ||
) | [inline] |
Gets the phi index of the DCC reading a RU (SC or TT)
iDet | 0 for EE-, 1 for EB, 2 for EE+ |
i | iEta or iX |
j | iPhi or iY |
Definition at line 38 of file ecalDccMap.h.
References endcapDccMap.
{ if(iDet==1){//barrel //iEta=i, iPhi=j //phi edge of a SM is 4 TT return (j+2)/4; } char flag=endcapDccMap[i+j*20]; return (flag==' ')?-1:(flag-'0'); }
Definition at line 4 of file ecalDccMap.h.
References b, and trackerHits::c.
const char endcapDccMap[401] [static] |
{ " 777777 " " 666777777888 " " 66667777778888 " " 6666667777888888 " " 666666677778888888 " " 566666677778888880 " " 555666667788888000 " "55555566677888000000" "555555566 880000000" "55555555 00000000" "55555554 10000000" "554444444 111111100" "44444444332211111111" " 444444333222111111 " " 444443333222211111 " " 444433333222221111 " " 4443333322222111 " " 43333332222221 " " 333333222222 " " 333222 "}
Definition at line 9 of file ecalDccMap.h.
Referenced by dccPhiIndexOfRU().