#include <MEEEGeom.h>
Public Types | |
typedef int | CrysCoord |
enum | EEUnit { iEcalEndCap = 0, iDee, iQuadrant, iSector, iDCC, iLMRegion, iLMModule, iSuperCrystal, iCrystal } |
typedef std::pair< float, float > | EtaPhiPoint |
typedef int | SuperCrysCoord |
Public Member Functions | |
virtual | ~MEEEGeom () |
Static Public Member Functions | |
static std::vector< int > | apdRefChannels (int ilmmod) |
static int | apdRefTower (int ilmr, int ilmmod) |
static int | crystal (CrysCoord ix, CrysCoord iy) |
static int | crystal_in_sc (CrysCoord ix, CrysCoord iy) |
static int | dcc (SuperCrysCoord iX, SuperCrysCoord iY, int iz) |
static int | dccFromSm (int ism) |
static int | dee (SuperCrysCoord iX, SuperCrysCoord iY, int iz) |
static int | dee (int ilmr) |
static int | deeFromMem (int imem) |
static void | getBoundary (std::list< std::pair< float, float > > &l, int type, int num, int iz=-1, int xside=0) |
static TGraph * | getGraphBoundary (int type, int num, int iz=-1, int xside=0) |
static int | lmmod (SuperCrysCoord iX, SuperCrysCoord iY) |
static std::vector< int > | lmmodFromLmr (int ilmr) |
static int | lmr (SuperCrysCoord iX, SuperCrysCoord iY, int iz) |
static std::pair< int, int > | memFromLmr (int ilmr) |
static bool | near (int ilmr) |
static std::pair< int, int > | pn (int dee, int ilmod) |
static int | quadrant (SuperCrysCoord iX, SuperCrysCoord iY) |
static int | sc (SuperCrysCoord iX, SuperCrysCoord iY) |
static int | sc_in_quad (SuperCrysCoord iX, SuperCrysCoord iY) |
static int | sc_type (SuperCrysCoord iX, SuperCrysCoord iY) |
static int | sector (SuperCrysCoord iX, SuperCrysCoord iY) |
static int | side (SuperCrysCoord iX, SuperCrysCoord iY, int iz) |
static int | sm (SuperCrysCoord iX, SuperCrysCoord iY, int iz) |
static int | smFromDcc (int idcc) |
static TString | smName (int ism) |
Static Public Attributes | |
static bool | pnTheory = true |
Definition at line 15 of file MEEEGeom.h.
typedef int MEEEGeom::CrysCoord |
Definition at line 23 of file MEEEGeom.h.
typedef std::pair<float,float> MEEEGeom::EtaPhiPoint |
Definition at line 25 of file MEEEGeom.h.
typedef int MEEEGeom::SuperCrysCoord |
Definition at line 22 of file MEEEGeom.h.
enum MEEEGeom::EEUnit |
Definition at line 20 of file MEEEGeom.h.
{ iEcalEndCap=0, iDee, iQuadrant, iSector, iDCC, iLMRegion, iLMModule, iSuperCrystal, iCrystal };
virtual MEEEGeom::~MEEEGeom | ( | ) | [inline, virtual] |
Definition at line 61 of file MEEEGeom.h.
{}
std::vector< int > MEEEGeom::apdRefChannels | ( | int | ilmmod | ) | [static] |
Definition at line 588 of file ME.cc.
References MEEBGeom::apdRefChannels().
{ if( isBarrel( ilmr ) ) return MEEBGeom::apdRefChannels( ilmmod ); else return MEEEGeom::apdRefChannels( ilmmod ); return std::vector< int>(); }
int MEEEGeom::apdRefTower | ( | int | ilmr, |
int | ilmmod | ||
) | [static] |
Definition at line 1006 of file MEEEGeom.cc.
Referenced by EcalLaserAnalyzer::analyze(), and EcalLaserAnalyzer2::analyze().
{ int ilmr10=ilmr%10; int tower=0; if( ilmr10==3 ){ switch( ilmmod ){ case 9: tower=77; break; case 10: tower=55; break; case 11: tower=37; break; case 12: tower=310; break; case 13: tower=294; break; default: abort(); } }else if( ilmr10==4 ){ switch( ilmmod ){ case 5: tower=52; break; case 6: tower=41; break; case 7: tower=18; break; case 8: tower=65; break; default: abort(); } }else if( ilmr10==5 ){ switch( ilmmod ){ case 1: tower=45; break; case 2: tower=53; break; case 3: tower=42; break; case 4: tower=32; break; default: abort(); } }else if( ilmr10==6 ){ switch( ilmmod ){ case 1: tower=124; break; case 2: tower=132; break; case 3: tower=121; break; case 4: tower=111; break; default: abort(); } }else if( ilmr10==7 ){ switch( ilmmod ){ case 5: tower=147; break; case 6: tower=135; break; case 7: tower=117; break; case 8: tower=158; break; default: abort(); } }else if( ilmr10==8 ){ switch( ilmmod ){ case 9: tower=156; break; case 10: tower=214; break; case 11: tower=197; break; case 12: tower=237; break; case 13: tower=224; break; default: abort(); } }else if( ilmr10==9 ){ switch( ilmmod ){ case 14: tower=234; break; case 15: tower=220; break; case 16: tower=212; break; case 17: tower=189; break; default: abort(); } }else if( ilmr10==0 ){ switch( ilmmod ){ case 18: tower=185; break; case 19: tower=172; break; default: abort(); } }else if( ilmr10==1 ){ switch( ilmmod ){ case 18: tower=264; break; case 19: tower=251; break; default: abort(); } } return tower; }
Definition at line 398 of file MEEEGeom.cc.
Referenced by EcalPerEvtLaserAnalyzer::analyze(), and ME::regTree().
{ int iX = (ix-1)/5+1; int iY = (iy-1)/5+1; int isc = sc( iX, iY ); assert( isc!=0 ); if( isc<0 ) return -2; int icr_in_sc = crystal_in_sc( ix, iy ); assert( icr_in_sc!=0 ); if( icr_in_sc<0 ) return -1; return 25*(isc-1) + icr_in_sc; }
Definition at line 299 of file MEEEGeom.cc.
References cuy::ii.
{ // the seven types of super-crystals static const int idx_[7][25] = { { 21, 16, 11, 6, 1, 22, 17, 12, 7, 2, 23, 18, 13, 8, 3, 24, 19, 14, 9, 4, 25, 20, 15, 10, 5 }, { -1, -1, -1, -1, -1, 22, 17, 12, 7, 2, 23, 18, 13, 8, 3, 24, 19, 14, 9, 4, 25, 20, 15, 10, 5, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, 24, 19, -1, -1, -1, 25, 20, 15, -1, -1 }, { 21, 16, 11, 6, -1, 22, 17, 12, 7, -1, 23, 18, 13, 8, -1, 24, 19, 14, 9, -1, 25, 20, 15, 10, -1 }, { 21, 16, 11, 6, 1, 22, 17, 12, 7, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, 6, 1, -1, -1, -1, 7, 2, -1, -1, -1, 8, 3, -1, -1, -1, 9, 4, -1, -1, -1, 10, 5 } }; int iX, iY, jx, jy; int iX_ = (ix-1)/5+1; int iY_ = (iy-1)/5+1; int jx_ = ix - 5*(iX_-1); int jy_ = iy - 5*(iY_-1); int iquad = quadrant( iX_, iY_ ); if( iX_>=11 ) { iX_ = 20-iX_+1; jx_ = 5-jx_+1; } if( iY_>=11 ) { iY_ = 20-iY_+1; jy_ = 5-jy_+1; } // FIXME : this is stupid !!! if( iquad==1 || iquad==3 ) { iX = iX_; iY = iY_; jx = jx_; jy = jy_; } else { iX = iY_; iY = iX_; jx = jy_; jy = jx_; } int isc_type = sc_type( iX, iY ); assert( isc_type>=0 && isc_type<7 ); int iym, ixm, il, ic, ii; iym=5; ixm=5; il=iym-jy; ic=jx-1; ii=il*ixm+ic; if(ii < 0 || ii > (int)(sizeof(idx_)/sizeof(int)) || idx_[isc_type][ii] == -1) { return -1; }; return idx_[isc_type][ii]; }
int MEEEGeom::dcc | ( | SuperCrysCoord | iX, |
SuperCrysCoord | iY, | ||
int | iz | ||
) | [static] |
Definition at line 222 of file MEEEGeom.cc.
References abs.
{ // end-cap minus: // S7 --> DCC-1 (N) // S8 --> DCC-2 (N) // S9 --> DCC-3 (N) // S1 --> DCC-4 (F) // S2 --> DCC-5 (F) // S3 --> DCC-6 (F) // S4 --> DCC-7 (F) // S5 --> DCC-8 (F and N) // S6 --> DCC-9 (N) // for the end-cap plus, add 45 to the DCC number int isect = sector( iX, iY ); assert( isect!=0 ); assert( abs(iz)==1 ); if( isect<0 ) return -1; int idcc=0; idcc = isect-6; if( idcc<=0 ) idcc+=9; if( iz==+1 ) idcc+=45; return idcc; }
int MEEEGeom::dccFromSm | ( | int | ism | ) | [static] |
Definition at line 429 of file MEEEGeom.cc.
int MEEEGeom::dee | ( | SuperCrysCoord | iX, |
SuperCrysCoord | iY, | ||
int | iz | ||
) | [static] |
Definition at line 284 of file MEEEGeom.cc.
References reco::HaloData::minus, and reco::HaloData::plus.
Referenced by EcalLaserAnalyzer::analyze(), EcalLaserAnalyzer2::analyze(), MELaserPrim::fillHistograms(), pn(), ecaldqm::LedTask::runOnUncalibRecHits(), and ecaldqm::LaserTask::runOnUncalibRecHits().
int MEEEGeom::dee | ( | int | ilmr | ) | [static] |
Definition at line 882 of file MEEEGeom.cc.
References gather_cfg::cout, and cuy::ii.
int MEEEGeom::deeFromMem | ( | int | imem | ) | [static] |
Definition at line 602 of file MEEEGeom.cc.
{ int imem_ = imem%600; int dee_(0); if( imem_==50 || imem_==51 ) dee_=1; else if( imem_==47 || imem_==46 ) dee_=2; else if( imem_==1 || imem_==2 ) dee_=3; else if( imem_==5 || imem_==6 ) dee_=4; else abort(); return dee_; }
void MEEEGeom::getBoundary | ( | std::list< std::pair< float, float > > & | l, |
int | type, | ||
int | num, | ||
int | iz = -1 , |
||
int | xside = 0 |
||
) | [static] |
Definition at line 486 of file MEEEGeom.cc.
References recoMuon::in, prof2calltree::l, and convertSQLiteXML::ok.
{ // for each iy, get first and last ix for <whatever> std::multimap< int, std::pair< int, int > > map_; int iymin=1; int iymax=100; int ixmin=1; int ixmax=100; if( xside==1 ) { ixmin=1; ixmax=50; } if( xside==2 ) { ixmin=51; ixmax=100; } for( int iy=iymin; iy<=iymax; iy++ ) { bool in=false; int firstix(0); int lastix(0); for( int ix=ixmin; ix<=ixmax; ix++ ) { int icr = crystal( ix, iy ); bool ok = icr>0; int iX = (ix-1)/5+1; int iY = (iy-1)/5+1; int num_(0); switch( type ) { case iDee: num_ = dee( iX, iY, iz ); break; case iQuadrant: num_ = quadrant( iX, iY ); break; case iSector: num_ = sector( iX, iY ); break; case iLMRegion: num_ = lmr( iX, iY, iz ); break; case iLMModule: num_ = lmmod( iX, iY ); break; case iDCC: num_ = dcc( iX, iY, iz ); break; case iSuperCrystal: num_ = sc( iX, iY ); break; case iCrystal: num_ = crystal( ix, iy ); break; default: abort(); }; ok &= num_==num; if( !in && !ok ) continue; if( in && ok ) { lastix = ix; continue; } if( !in && ok ) { in = true; firstix = ix; } else if( in && !ok ) { in = false; map_.insert( std::pair< int, std::pair<int, int> >( iy, std::pair<int,int>( firstix, lastix ) ) ); } } if( in ) map_.insert( std::pair< int, std::pair<int, int> >( iy, std::pair<int,int>( firstix, lastix ) ) ); } // clean the list l.clear(); std::multimap< int, std::pair< int, int > >::const_iterator it; std::multimap< int, std::pair< int, int > >::const_iterator lastelement; std::list< std::pair< float, float > > rightl; for( int iy=1; iy<=100; iy++ ) { it = map_.find(iy); if( it==map_.end() ) continue; int n_ = map_.count( iy ); // std::cout << "n[" << iy << "]=" << n_ << std::endl; assert( n_==1 ); // fixme ! lastelement = map_.upper_bound(iy); for( ; it!=lastelement; ++it ) { std::pair<float,float> p_ = it->second; l.push_back( std::pair<float,float>( p_.first-0.5, iy-0.5 ) ); l.push_back( std::pair<float,float>( p_.first-0.5, iy+0.5 ) ); rightl.push_back( std::pair<float,float>( p_.second+0.5, iy-0.5 ) ); rightl.push_back( std::pair<float,float>( p_.second+0.5, iy+0.5 ) ); } } l.unique(); rightl.unique(); rightl.reverse(); std::list< std::pair< float, float > >::const_iterator rightl_it; for( rightl_it=rightl.begin(); rightl_it!=rightl.end(); rightl_it++ ) { l.push_back( std::pair<float,float>( rightl_it->first, rightl_it->second ) ); } l.push_back( *l.begin() ); }
TGraph * MEEEGeom::getGraphBoundary | ( | int | type, |
int | num, | ||
int | iz = -1 , |
||
int | xside = 0 |
||
) | [static] |
Definition at line 460 of file MEEEGeom.cc.
References cuy::ii, prof2calltree::l, and n.
Referenced by MEGeom::drawGlobalBoundaries().
{ std::list< std::pair< float, float > > l; getBoundary( l, type, num, iz, xside ); int n = l.size(); if( n==0 ) return 0; // GHM : changed to comply to CMSSW compilator options float ix[1000]; float iy[1000]; assert( n<1000 ); int ii=0; std::list< std::pair< float, float > >::const_iterator l_it; for( l_it=l.begin(); l_it!=l.end(); l_it++ ) { // std::cout << "[" << l_it->first << "," << l_it->second << "]" << std::endl; ix[ii] = l_it->first; iy[ii] = l_it->second; ii++; } assert( ii==n ); return new TGraph( n, ix, iy ); }
int MEEEGeom::lmmod | ( | SuperCrysCoord | iX, |
SuperCrysCoord | iY | ||
) | [static] |
Definition at line 94 of file MEEEGeom.cc.
References cuy::ii.
Referenced by EcalTestPulseAnalyzer::analyze(), EcalLaserAnalyzer::analyze(), EcalPerEvtLaserAnalyzer::analyze(), EcalLaserAnalyzer2::analyze(), ME::regTree(), ecaldqm::LedTask::runOnUncalibRecHits(), and ecaldqm::LaserTask::runOnUncalibRecHits().
{ // // laser monitoring modules for EE-F and EE+F // for EE-N and EE+N : iX ---> 20-iX+1 // static const int idx_[] = { // 1 2 3 4 5 6 7 8 9 A //------------------------------ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 0, 0, 0, 5, 2, 2, 2, 2, 2, 1, 0, 0, 5, 5, 5, 3, 3, 2, 2, 2, 0, 8, 5, 5, 5, 3, 3, 3, 3, 3, 0, 8, 8, 5, 6, 6, 4, 4, 4, 3, 0, 8, 8, 5, 6, 6, 7, 4, 4, 4, 8, 8, 8, 6, 6, 7, 7, 7, 4, 4, 9, 9, 8, 6, 6, 7, 7, 7, 7, 0, 9, 9, 9, 10, 10, 11, 11, 7, 0, 0, 12, 9, 9, 10, 10, 11, 11, 11, 0, 0, 12, 12, 13, 10, 10, 11, 11, 17, 17, 0, 12, 12, 13, 13, 13, 11, 17, 17, 17, 19, 0, 12, 13, 13, 14, 15, 17, 17, 17, 19, 0, 12, 14, 14, 14, 15, 16, 17, 19, 19, 0, 14, 14, 14, 14, 15, 16, 16, 19, 19, 0, 0, 14, 15, 15, 15, 16, 16, 19, 19, 0, 0, 0, 15, 15, 15, 16, 18, 18, 18, 0, 0, 0, 0, 16, 16, 16, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18 }; int iym, ixm, il, ic, ii; iym=20; ixm=10; int iX_ = iX; if( iX>=11 ) iX_ = 20-iX+1; int iY_ = iY; il=iym-iY_; ic=iX_-1; ii=il*ixm+ic; if(ii < 0 || ii > (int)(sizeof(idx_)/sizeof(int)) || idx_[ii] == 0) { return -1; }; return idx_[ii]; }
std::vector< int > MEEEGeom::lmmodFromLmr | ( | int | ilmr | ) | [static] |
Definition at line 598 of file ME.cc.
References MEEBGeom::lmmodFromLmr().
{ if( isBarrel(ilmr) ) return MEEBGeom::lmmodFromLmr( ilmr ); else return MEEEGeom::lmmodFromLmr( ilmr ); return std::vector<int>(); }
int MEEEGeom::lmr | ( | SuperCrysCoord | iX, |
SuperCrysCoord | iY, | ||
int | iz | ||
) | [static] |
Definition at line 250 of file MEEEGeom.cc.
References abs.
Referenced by EcalLaserAnalyzer::analyze(), EcalLaserAnalyzer2::analyze(), EcalLaserDbService::getLaserCorrection(), and ME::regTree().
{ // laser monitoring regions // end-cap minus: // S7 --> LM-1 // S8 --> LM-2 // S9 --> LM-3 // S1 --> LM-4 // S2 --> LM-5 // S3 --> LM-6 // S4 --> LM-7 // S5 --> LM-8 (F) and LM-9 (N) // S6 --> LM-10 // for the end-cap plus, add 72 to the LM number // for the end-cap minus, add 82 to the LM number int iquad = quadrant( iX, iY ); int isect = sector( iX, iY ); assert( isect!=0 ); assert( abs(iz)==1 ); if( isect<0 ) return -1; int ilmr=0; ilmr = isect-6; if( ilmr<=0 ) ilmr+=9; if( ilmr==9 ) ilmr++; if( ilmr==8 && iquad==4 ) ilmr++; if( iz==+1 ) ilmr+=72; else ilmr+=82; return ilmr; }
std::pair< int, int > MEEEGeom::memFromLmr | ( | int | ilmr | ) | [static] |
Definition at line 579 of file ME.cc.
References MEEBGeom::memFromLmr().
{ if( isBarrel( ilmr ) ) return MEEBGeom::memFromLmr( ilmr ); else return MEEEGeom::memFromLmr( ilmr ); return std::pair<int,int>(); }
bool MEEEGeom::near | ( | int | ilmr | ) | [static] |
Definition at line 932 of file MEEEGeom.cc.
{ int idee = dee( ilmr ); return ( idee==2 || idee==3 ); }
std::pair< int, int > MEEEGeom::pn | ( | int | dee, |
int | ilmod | ||
) | [static] |
Definition at line 648 of file ME.cc.
References dee(), and MEEBGeom::pn().
Referenced by ecaldqm::LedTask::runOnUncalibRecHits(), and ecaldqm::LaserTask::runOnUncalibRecHits().
{ std::pair<int,int> pnpair_(0,0); std::pair<int,int> mempair_ = memFromLmr(ilmr); if( isBarrel( ilmr ) ) { pnpair_=MEEBGeom::pn( ilmmod ); } else { int dee_ = MEEEGeom::dee( ilmr ); pnpair_=MEEEGeom::pn( dee_, ilmmod ); } int mem_(0); int pn_(0); if( ipn==iPNA ) { mem_=mempair_.first; pn_=pnpair_.first; } else { mem_=mempair_.second; pn_=pnpair_.second; } return std::pair<int,int>(mem_,pn_); }
int MEEEGeom::quadrant | ( | SuperCrysCoord | iX, |
SuperCrysCoord | iY | ||
) | [static] |
Definition at line 16 of file MEEEGeom.cc.
int MEEEGeom::sc | ( | SuperCrysCoord | iX, |
SuperCrysCoord | iY | ||
) | [static] |
Definition at line 211 of file MEEEGeom.cc.
Referenced by ME::regTree().
{ int isc_in_quad = sc_in_quad( iX, iY ); assert( isc_in_quad!=0 ); if( isc_in_quad<0 ) return -1; int iquad = quadrant( iX, iY ); return 79*(iquad-1)+isc_in_quad; }
int MEEEGeom::sc_in_quad | ( | SuperCrysCoord | iX, |
SuperCrysCoord | iY | ||
) | [static] |
Definition at line 142 of file MEEEGeom.cc.
References cuy::ii.
{ static const int idx_[] = { // 1 2 3 4 5 6 7 8 9 A //----------------------------------- 77, 71, 63, 55, 46, 37, 28, 18, 0, 0, // A 78, 72, 64, 56, 47, 38, 29, 19, 9, 0, // 9 79, 73, 65, 57, 48, 39, 30, 20, 10, 1, // 8 0, 74, 66, 58, 49, 40, 31, 21, 11, 2, // 7 0, 75, 67, 59, 50, 41, 32, 22, 12, 3, // 6 0, 76, 68, 60, 51, 42, 33, 23, 13, 4, // 5 0, 0, 69, 61, 52, 43, 34, 24, 14, 5, // 4 0, 0, 70, 62, 53, 44, 35, 25, 15, 6, // 3 0, 0, 0, 0, 54, 45, 36, 26, 16, 7, // 2 0, 0, 0, 0, 0, 0, 0, 27, 17, 8, // 1 //----------------------------------- }; int iym, ixm, il, ic, ii; iym=10; ixm=10; int iX_ = iX; if( iX>=11 ) iX_ = 20-iX+1; int iY_ = iY; if( iY>=11 ) iY_ = 20-iY+1; il=iym-iY_; ic=iX_-1; ii=il*ixm+ic; if(ii < 0 || ii > (int)(sizeof(idx_)/sizeof(int)) || idx_[ii] == 0) { return -1; }; return idx_[ii]; }
int MEEEGeom::sc_type | ( | SuperCrysCoord | iX, |
SuperCrysCoord | iY | ||
) | [static] |
Definition at line 176 of file MEEEGeom.cc.
References cuy::ii.
{ static const int idx_[] = { // there are seven types of super-crystals // 1 2 3 4 5 6 7 8 9 10 //----------------------------------- 0, 0, 0, 0, 0, 0, 0, 3, -1, -1, // 10 0, 0, 0, 0, 0, 0, 0, 0, 2, -1, // 9 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, // 8 -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 7 -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6 -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, // 5 -1, -1, 6, 0, 0, 0, 0, 0, 0, 0, // 4 -1, -1, 5, 4, 0, 0, 0, 0, 0, 0, // 3 -1, -1, -1, -1, 4, 0, 0, 0, 0, 0, // 2 -1, -1, -1, -1, -1, -1, -1, 4, 0, 0, // 1 //----------------------------------- }; int iym, ixm, il, ic, ii; iym=10; ixm=10; int iX_ = iX; if( iX>=11 ) iX_ = 20-iX+1; int iY_ = iY; if( iY>=11 ) iY_ = 20-iY+1; il=iym-iY_; ic=iX_-1; ii=il*ixm+ic; if(ii < 0 || ii > (int)(sizeof(idx_)/sizeof(int)) || idx_[ii] == -1) { return -1; }; return idx_[ii]; }
int MEEEGeom::sector | ( | SuperCrysCoord | iX, |
SuperCrysCoord | iY | ||
) | [static] |
Definition at line 31 of file MEEEGeom.cc.
References cuy::ii.
{ // Y (towards the surface) // T // | // | // | // o---------| X (towards center of LHC) // static const int idx_[] = { // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, // 20 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, // 19 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 9, 8, 0, 0, 0, // 18 0, 0, 2, 2, 2, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 8, 8, 8, 0, 0, // 17 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 8, 8, 8, 8, 0, // 16 0, 2, 2, 2, 2, 2, 1, 1, 1, 1, 9, 9, 9, 9, 8, 8, 8, 8, 8, 0, // 15 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 9, 9, 9, 8, 8, 8, 8, 8, 8, 0, // 14 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, // 13 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0, 8, 8, 8, 8, 8, 8, 8, 7, 7, // 12 3, 3, 3, 3, 3, 3, 3, 2, 0, 0, 0, 0, 8, 7, 7, 7, 7, 7, 7, 7, // 11 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, // 10 3, 3, 3, 3, 3, 3, 3, 4, 4, 0, 0, 6, 6, 7, 7, 7, 7, 7, 7, 7, // 9 3, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7, // 8 0, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 0, // 7 0, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 0, // 6 0, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 0, // 5 0, 0, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 0, 0, // 4 0, 0, 0, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 0, 0, 0, // 3 0, 0, 0, 0, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 0, 0, 0, 0, // 2 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0 // 1 // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 }; int iym, ixm, il, ic, ii; iym=20; ixm=20; int iX_ = iX; int iY_ = iY; il=iym-iY_; ic=iX_-1; ii=il*ixm+ic; if(ii < 0 || ii > (int)(sizeof(idx_)/sizeof(int)) || idx_[ii] == 0) { return -1; }; return idx_[ii]; }
int MEEEGeom::side | ( | SuperCrysCoord | iX, |
SuperCrysCoord | iY, | ||
int | iz | ||
) | [static] |
Definition at line 939 of file MEEEGeom.cc.
int MEEEGeom::sm | ( | SuperCrysCoord | iX, |
SuperCrysCoord | iY, | ||
int | iz | ||
) | [static] |
Definition at line 83 of file MEEEGeom.cc.
Referenced by ME::regTree().
{ // this is *my* convention. To be consistent with the barrel // sm goes from 1 to 9 for iz+ and from 10 to 18 for iz- int ism_ = sector( iX, iY ); if( ism_<0 ) return ism_; if( iz<0 ) ism_+=9; return ism_; }
int MEEEGeom::smFromDcc | ( | int | idcc | ) | [static] |
Definition at line 439 of file MEEEGeom.cc.
References ecalpyutils::ism().
TString MEEEGeom::smName | ( | int | ism | ) | [static] |
Definition at line 415 of file MEEEGeom.cc.
References ecalpyutils::ism(), and dbtoconf::out.
bool MEEEGeom::pnTheory = true [static] |
Definition at line 48 of file MEEEGeom.h.