#include <Geometry/HcalCommonData/interface/HcalNumberingFromDDD.h>
Public Member Functions | |
HcalCellType::HcalCell | cell (int det, int zside, int depth, int etaR, int iphi, bool corr=true) const |
std::vector< double > | getEtaTable () const |
std::vector < HcalCellType::HcalCellType > | HcalCellTypes (HcalSubdetector) const |
std::vector < HcalCellType::HcalCellType > | HcalCellTypes () const |
HcalNumberingFromDDD (std::string &name, const DDCompactView &cpv) | |
HcalID | unitID (int det, int zside, int depth, int etaR, int phi, int lay=-1) const |
HcalID | unitID (int det, double etaR, double phi, int depth, int lay=-1) const |
HcalID | unitID (double eta, double phi, int depth=1, int lay=-1) const |
HcalID | unitID (int det, Hep3Vector pos, int depth, int lay=-1) const |
~HcalNumberingFromDDD () | |
Private Member Functions | |
double | deltaEta (int det, int eta, int depth) const |
unsigned | find (int element, std::vector< int > array) const |
std::vector< double > | getDDDArray (const std::string &, const DDsvalues_type &, int &) const |
double | getEta (double r, double z) const |
double | getEta (int det, int etaR, int zside, int depth=1) const |
double | getGain (HcalSubdetector subdet, int depth) const |
int | getShift (HcalSubdetector subdet, int depth) const |
void | initialize (std::string &name, const DDCompactView &cpv) |
void | loadGeometry (DDFilteredView) |
void | loadSpecPars (DDFilteredView) |
Private Attributes | |
std::vector< int > | depth1 |
std::vector< int > | depth2 |
std::vector< int > | depth3 |
double | dzVcal |
std::vector< int > | etaMax |
std::vector< int > | etaMin |
std::vector< double > | etaTable |
std::vector< double > | gainHB |
std::vector< double > | gainHE |
std::vector< double > | gainHF |
int | nDepth |
int | nEta |
int | nmodHB |
int | nmodHE |
std::vector< int > | nOff |
int | nPhi |
int | nR |
int | nzHB |
int | nzHE |
std::vector< double > | phibin |
std::vector< double > | phioff |
std::vector< double > | rHB |
std::vector< double > | rTable |
std::vector< int > | shiftHB |
std::vector< int > | shiftHE |
std::vector< int > | shiftHF |
std::vector< double > | zHE |
double | zVcal |
Classes | |
struct | HcalID |
Definition at line 20 of file HcalNumberingFromDDD.h.
HcalNumberingFromDDD::HcalNumberingFromDDD | ( | std::string & | name, | |
const DDCompactView & | cpv | |||
) |
Definition at line 20 of file HcalNumberingFromDDD.cc.
References initialize().
00021 { 00022 edm::LogInfo("HCalGeom") << "Creating HcalNumberingFromDDD"; 00023 initialize(name, cpv); 00024 }
HcalNumberingFromDDD::~HcalNumberingFromDDD | ( | ) |
Definition at line 26 of file HcalNumberingFromDDD.cc.
00026 { 00027 edm::LogInfo("HCalGeom") << "Deleting HcalNumberingFromDDD"; 00028 }
HcalCellType::HcalCell HcalNumberingFromDDD::cell | ( | int | det, | |
int | zside, | |||
int | depth, | |||
int | etaR, | |||
int | iphi, | |||
bool | corr = true | |||
) | const |
Definition at line 203 of file HcalNumberingFromDDD.cc.
References deltaEta(), depth1, depth2, depth3, HcalCellType::HcalCell::deta, HcalCellType::HcalCell::dphi, HcalCellType::HcalCell::drz, HcalCellType::HcalCell::eta, eta, etaMax, etaMin, HcalCellType::HcalCell::flagrz, getEta(), HcalBarrel, HcalEndcap, HcalForward, HcalOuter, int, LogDebug, nEta, nOff, nR, HcalCellType::HcalCell::ok, phi, HcalCellType::HcalCell::phi, phibin, phioff, rHB, rTable, HcalCellType::HcalCell::rz, tmp, and zHE.
Referenced by HcalCellTypes(), and HcalTestAnalysis::update().
00205 { 00206 00207 int idet = det; 00208 double etaMn = etaMin[0]; 00209 double etaMx = etaMax[0]; 00210 if (idet==static_cast<int>(HcalEndcap)) { 00211 etaMn = etaMin[1]; etaMx = etaMax[1]; 00212 } else if (idet==static_cast<int>(HcalForward)) { 00213 etaMn = etaMin[2]; etaMx = etaMax[2]; 00214 } 00215 if (corr) { 00216 if (etaR >= nOff[2] && depth == 3 && idet == static_cast<int>(HcalBarrel)) 00217 idet = static_cast<int>(HcalEndcap); 00218 } 00219 double eta = 0, deta = 0, phi = 0, dphi = 0, rz = 0, drz = 0; 00220 bool ok = false, flagrz = true; 00221 if ((idet==static_cast<int>(HcalBarrel)||idet==static_cast<int>(HcalEndcap)|| 00222 idet==static_cast<int>(HcalOuter)||idet==static_cast<int>(HcalForward)) 00223 && etaR >=etaMn && etaR <= etaMx) 00224 ok = true; 00225 if (idet == static_cast<int>(HcalEndcap)) { 00226 if (depth < 3 && etaR <= etaMin[1]) ok = false; 00227 else if (depth > 2 && etaR == nOff[1]) ok = false; 00228 } 00229 if (ok) { 00230 int maxlay = (int)(rHB.size()); 00231 if (idet == static_cast<int>(HcalEndcap)) maxlay = (int)(zHE.size()); 00232 eta = getEta(idet, etaR, zside, depth); 00233 deta = deltaEta(idet, etaR, depth); 00234 double fibin, fioff; 00235 if (idet == static_cast<int>(HcalBarrel)|| 00236 idet == static_cast<int>(HcalOuter)) { 00237 fioff = phioff[0]; 00238 fibin = phibin[etaR-1]; 00239 } else if (idet == static_cast<int>(HcalEndcap)) { 00240 fioff = phioff[1]; 00241 fibin = phibin[etaR-1]; 00242 } else { 00243 fioff = phioff[2]; 00244 fibin = phibin[nEta+etaR-etaMin[2]-1]; 00245 if (etaR > etaMax[2]-2 ) fioff += 0.5*fibin; 00246 } 00247 phi = fioff + (iphi - 0.5)*fibin; 00248 dphi = 0.5*fibin; 00249 if (idet == static_cast<int>(HcalForward)) { 00250 int ir = nR + etaMin[2] - etaR - 1; 00251 if (ir > 0 && ir < nR) { 00252 rz = 0.5*(rTable[ir]+rTable[ir-1]); 00253 drz = 0.5*(rTable[ir]-rTable[ir-1]); 00254 } else { 00255 ok = false; 00256 LogDebug("HCalGeom") << "HcalNumberingFromDDD: wrong eta " << etaR 00257 << " (" << ir << "/" << nR << ") Detector " 00258 << idet; 00259 } 00260 if (depth != 1 && depth != 2) { 00261 ok = false; 00262 LogDebug("HCalGeom") << "HcalNumberingFromDDD: wrong depth " << depth 00263 << " in Detector " << idet; 00264 } 00265 } else if (etaR <= nEta) { 00266 int depth0 = depth1[etaR-1]; 00267 int kphi = iphi + int((phioff[3]+0.1)/fibin); 00268 kphi = (kphi-1)%4 + 1; 00269 if (etaR == nOff[0] && (kphi == 2 || kphi == 3)) depth0--; 00270 int laymin, laymax; 00271 if (depth == 1) { 00272 laymin = 1; 00273 laymax = depth0; 00274 } else if (depth == 2) { 00275 laymin = depth0+1; 00276 laymax = depth2[etaR-1]; 00277 if (etaR==etaMax[0] && idet==static_cast<int>(HcalBarrel) && 00278 nOff.size()>3) laymax = nOff[3]; 00279 } else if (depth == 3) { 00280 laymin = depth2[etaR-1]+1; 00281 laymax = depth3[etaR-1]; 00282 if (etaR<=etaMin[1] && idet==static_cast<int>(HcalEndcap)) { 00283 if (nOff.size() > 4) laymin = nOff[4]; 00284 else laymin = 1; 00285 } 00286 } else { 00287 laymin = depth3[etaR-1]+1; 00288 laymax = maxlay; 00289 } 00290 if (laymin <= maxlay && laymax <= maxlay && laymin <= laymax) { 00291 if (idet == static_cast<int>(HcalEndcap)) { 00292 flagrz = false; 00293 rz = 0.5*(zHE[laymax-1]+zHE[laymin-1]); 00294 drz = 0.5*(zHE[laymax-1]-zHE[laymin-1]); 00295 } else { 00296 rz = 0.5*(rHB[laymax-1]+rHB[laymin-1]); 00297 drz = 0.5*(rHB[laymax-1]-rHB[laymin-1]); 00298 } 00299 } else { 00300 ok = false; 00301 LogDebug("HCalGeom") << "HcalNumberingFromDDD: wrong depth " << depth 00302 << " (Layer minimum " << laymin << " maximum " 00303 << laymax << " maxLay " << maxlay << ")"; 00304 } 00305 } else { 00306 ok = false; 00307 LogDebug("HCalGeom") << "HcalNumberingFromDDD: wrong eta " << etaR 00308 << "/" << nEta << " Detector " << idet; 00309 } 00310 } else { 00311 ok = false; 00312 LogDebug("HCalGeom") << "HcalNumberingFromDDD: wrong eta " << etaR 00313 << " det " << idet; 00314 } 00315 HcalCellType::HcalCell tmp(ok,eta,deta,phi,dphi,rz,drz,flagrz); 00316 00317 LogDebug("HCalGeom") << "HcalNumberingFromDDD: det/side/depth/etaR/phi " 00318 << det << "/" << zside << "/" << depth << "/" << etaR 00319 << "/" << iphi << " Cell Flag " << tmp.ok << " " 00320 << tmp.eta << " " << tmp.deta << " phi " << tmp.phi 00321 << " " << tmp.dphi << " r(z) " << tmp.rz << " " 00322 << tmp.drz << " " << tmp.flagrz; 00323 return tmp; 00324 }
Definition at line 439 of file HcalNumberingFromDDD.cc.
References etaMin, etaTable, getEta(), HcalForward, LogDebug, nEta, nOff, nR, rTable, tmp, and zVcal.
Referenced by cell().
00439 { 00440 00441 double tmp = 0; 00442 if (det == static_cast<int>(HcalForward)) { 00443 int ir = nR + etaMin[2] - etaR - 1; 00444 if (ir > 0 && ir < nR) 00445 tmp = 0.5*(getEta(rTable[ir-1],zVcal)-getEta(rTable[ir],zVcal)); 00446 } else { 00447 if (etaR > 0 && etaR < nEta) { 00448 if (etaR == nOff[1]-1 && depth > 2) { 00449 tmp = 0.5*(etaTable[etaR+1]-etaTable[etaR-1]); 00450 } else { 00451 tmp = 0.5*(etaTable[etaR]-etaTable[etaR-1]); 00452 } 00453 } 00454 } 00455 LogDebug("HCalGeom") << "HcalNumberingFromDDD::deltaEta " << etaR << " " 00456 << depth << " ==> " << tmp; 00457 return tmp; 00458 }
Definition at line 837 of file HcalNumberingFromDDD.cc.
References i.
Referenced by loadGeometry().
00838 { 00839 00840 unsigned int id = array.size(); 00841 for (unsigned int i = 0; i < array.size(); i++) { 00842 if (element == array[i]) { 00843 id = i; 00844 break; 00845 } 00846 } 00847 return id; 00848 }
std::vector< double > HcalNumberingFromDDD::getDDDArray | ( | const std::string & | str, | |
const DDsvalues_type & | sv, | |||
int & | nmin | |||
) | const [private] |
Definition at line 769 of file HcalNumberingFromDDD.cc.
References DDfetch(), DDValue::doubles(), LogDebug, and value.
Referenced by loadSpecPars().
00771 { 00772 LogDebug("HCalGeom") << "HcalNumberingFromDDD:getDDDArray called for " 00773 << str << " with nMin " << nmin; 00774 DDValue value(str); 00775 if (DDfetch(&sv,value)) { 00776 LogDebug("HCalGeom") << "HcalNumberingFromDDD: " << value; 00777 const std::vector<double> & fvec = value.doubles(); 00778 int nval = fvec.size(); 00779 if (nmin > 0) { 00780 if (nval < nmin) { 00781 edm::LogError("HCalGeom") << "HcalNumberingFromDDD : # of " << str 00782 << " bins " << nval << " < " << nmin 00783 << " ==> illegal"; 00784 throw DDException("HcalNumberingFromDDD: cannot get array "+str); 00785 } 00786 } else { 00787 if (nval < 2) { 00788 edm::LogError("HCalGeom") << "HcalNumberingFromDDD : # of " << str 00789 << " bins " << nval << " < 2 ==> illegal" 00790 << " (nmin=" << nmin << ")"; 00791 throw DDException("HcalNumberingFromDDD: cannot get array "+str); 00792 } 00793 } 00794 nmin = nval; 00795 return fvec; 00796 } else { 00797 edm::LogError("HCalGeom") << "HcalNumberingFromDDD: cannot get array " 00798 << str; 00799 throw DDException("HcalNumberingFromDDD: cannot get array "+str); 00800 } 00801 }
double HcalNumberingFromDDD::getEta | ( | double | r, | |
double | z | |||
) | const [private] |
Definition at line 430 of file HcalNumberingFromDDD.cc.
References funct::log(), LogDebug, funct::tan(), and tmp.
00430 { 00431 00432 double tmp = 0; 00433 if (z != 0) tmp = -log(tan(0.5*atan(r/z))); 00434 LogDebug("HCalGeom") << "HcalNumberingFromDDD::getEta " << r << " " << z 00435 << " ==> " << tmp; 00436 return tmp; 00437 }
Definition at line 407 of file HcalNumberingFromDDD.cc.
References etaMin, etaTable, HcalForward, LogDebug, nEta, nOff, nR, rTable, tmp, and zVcal.
Referenced by cell(), and deltaEta().
00408 { 00409 00410 double tmp = 0; 00411 if (det == static_cast<int>(HcalForward)) { 00412 int ir = nR + etaMin[2] - etaR - 1; 00413 if (ir > 0 && ir < nR) 00414 tmp = 0.5*(getEta(rTable[ir-1],zVcal)+getEta(rTable[ir],zVcal)); 00415 } else { 00416 if (etaR > 0 && etaR < nEta) { 00417 if (etaR == nOff[1]-1 && depth > 2) { 00418 tmp = 0.5*(etaTable[etaR+1]+etaTable[etaR-1]); 00419 } else { 00420 tmp = 0.5*(etaTable[etaR]+etaTable[etaR-1]); 00421 } 00422 } 00423 } 00424 if (zside == 0) tmp = -tmp; 00425 LogDebug("HCalGeom") << "HcalNumberingFromDDD::getEta " << etaR << " " 00426 << zside << " " << depth << " ==> " << tmp; 00427 return tmp; 00428 }
std::vector< double > HcalNumberingFromDDD::getEtaTable | ( | ) | const |
double HcalNumberingFromDDD::getGain | ( | HcalSubdetector | subdet, | |
int | depth | |||
) | const [private] |
Definition at line 820 of file HcalNumberingFromDDD.cc.
References gainHB, gainHE, gainHF, HcalEndcap, and HcalForward.
Referenced by HcalCellTypes().
00820 { 00821 00822 double gain; 00823 switch(subdet) { 00824 case HcalEndcap: 00825 gain = gainHE[depth-1]; 00826 break; 00827 case HcalForward: 00828 gain = gainHF[depth-1]; 00829 break; 00830 default: 00831 gain = gainHB[depth-1]; 00832 break; 00833 } 00834 return gain; 00835 }
int HcalNumberingFromDDD::getShift | ( | HcalSubdetector | subdet, | |
int | depth | |||
) | const [private] |
Definition at line 803 of file HcalNumberingFromDDD.cc.
References HcalEndcap, HcalForward, shiftHB, shiftHE, and shiftHF.
Referenced by HcalCellTypes().
00803 { 00804 00805 int shift; 00806 switch(subdet) { 00807 case HcalEndcap: 00808 shift = shiftHE[depth-1]; 00809 break; 00810 case HcalForward: 00811 shift = shiftHF[depth-1]; 00812 break; 00813 default: 00814 shift = shiftHB[depth-1]; 00815 break; 00816 } 00817 return shift; 00818 }
std::vector< HcalCellType::HcalCellType > HcalNumberingFromDDD::HcalCellTypes | ( | HcalSubdetector | subdet | ) | const |
Definition at line 364 of file HcalNumberingFromDDD.cc.
References cell(), dzVcal, eta, etaMax, etaMin, getGain(), getShift(), HcalCellType::HcalCellType(), HcalEndcap, HcalForward, HcalOuter, nmodHB, nmodHE, nzHB, nzHE, HcalCellType::HcalCell::ok, and phi.
00364 { 00365 00366 std::vector<HcalCellType::HcalCellType> cellTypes; 00367 if (subdet == HcalForward) { 00368 if (dzVcal < 0) return cellTypes; 00369 } 00370 00371 int dmin, dmax, indx, nz, nmod; 00372 switch(subdet) { 00373 case HcalEndcap: 00374 dmin = 1; dmax = 3; indx = 1, nz = nzHE, nmod = nmodHE; 00375 break; 00376 case HcalForward: 00377 dmin = 1; dmax = 2; indx = 2, nz = 2, nmod = 18; 00378 break; 00379 case HcalOuter: 00380 dmin = 4; dmax = 4; indx = 0, nz = nzHB, nmod = nmodHB; 00381 break; 00382 default: 00383 dmin = 1; dmax = 3; indx = 0, nz = nzHB, nmod = nmodHB; 00384 break; 00385 } 00386 00387 int phi = 1, zside = 1; 00388 bool cor = false; 00389 00390 // Get the Cells 00391 int subdet0 = static_cast<int>(subdet); 00392 for (int depth=dmin; depth<=dmax; depth++) { 00393 int shift = getShift(subdet, depth); 00394 double gain = getGain (subdet, depth); 00395 for (int eta=etaMin[indx]; eta<= etaMax[indx]; eta++) { 00396 HcalCellType::HcalCell temp1 = cell(subdet0, zside, depth, eta, phi,cor); 00397 if (temp1.ok) { 00398 HcalCellType::HcalCellType temp2(subdet, eta, phi, depth, temp1, 00399 shift, gain, nz, nmod); 00400 cellTypes.push_back(temp2); 00401 } 00402 } 00403 } 00404 return cellTypes; 00405 }
std::vector< HcalCellType::HcalCellType > HcalNumberingFromDDD::HcalCellTypes | ( | ) | const |
Definition at line 332 of file HcalNumberingFromDDD.cc.
References HcalBarrel, HcalEndcap, HcalForward, HcalOuter, i, and LogDebug.
Referenced by HcalDDDGeometryLoader::fill(), initialize(), and HcalDDDGeometryLoader::load().
00332 { 00333 00334 std::vector<HcalCellType::HcalCellType> cellTypes =HcalCellTypes(HcalBarrel); 00335 LogDebug ("HCalGeom") << "HcalNumberingFromDDD: " << cellTypes.size() 00336 << " cells of type HCal Barrel"; 00337 for (unsigned int i=0; i<cellTypes.size(); i++) 00338 LogDebug ("HCalGeom") << "Cell " << i << " " << cellTypes[i]; 00339 00340 std::vector<HcalCellType::HcalCellType> hoCells =HcalCellTypes(HcalOuter); 00341 LogDebug ("HCalGeom") << "HcalNumberingFromDDD: " << hoCells.size() 00342 << " cells of type HCal Outer"; 00343 for (unsigned int i=0; i<hoCells.size(); i++) 00344 LogDebug ("HCalGeom") << "Cell " << i << " " << hoCells[i]; 00345 00346 cellTypes.insert(cellTypes.end(), hoCells.begin(), hoCells.end()); 00347 std::vector<HcalCellType::HcalCellType> heCells =HcalCellTypes(HcalEndcap); 00348 LogDebug ("HCalGeom") << "HcalNumberingFromDDD: " << heCells.size() 00349 << " cells of type HCal Endcap"; 00350 for (unsigned int i=0; i<heCells.size(); i++) 00351 LogDebug ("HCalGeom") << "Cell " << i << " " << heCells[i]; 00352 00353 cellTypes.insert(cellTypes.end(), heCells.begin(), heCells.end()); 00354 std::vector<HcalCellType::HcalCellType> hfCells =HcalCellTypes(HcalForward); 00355 LogDebug ("HCalGeom") << "HcalNumberingFromDDD: " << hfCells.size() 00356 << " cells of type HCal Forward"; 00357 for (unsigned int i=0; i<hfCells.size(); i++) 00358 LogDebug ("HCalGeom") << "Cell " << i << " " << hfCells[i]; 00359 00360 cellTypes.insert(cellTypes.end(), hfCells.begin(), hfCells.end()); 00361 return cellTypes; 00362 }
void HcalNumberingFromDDD::initialize | ( | std::string & | name, | |
const DDCompactView & | cpv | |||
) | [private] |
Definition at line 460 of file HcalNumberingFromDDD.cc.
References DDFilteredView::addFilter(), DDSpecificsFilter::equals, filter, DDFilteredView::firstChild(), HcalCellTypes(), i, loadGeometry(), loadSpecPars(), LogDebug, and DDSpecificsFilter::setCriteria().
Referenced by HcalNumberingFromDDD().
00461 { 00462 00463 std::string attribute = "ReadOutName"; 00464 edm::LogInfo("HCalGeom") << "HcalNumberingFromDDD: Initailise for " << name 00465 << " as " << attribute; 00466 00467 DDSpecificsFilter filter; 00468 DDValue ddv(attribute,name,0); 00469 filter.setCriteria(ddv,DDSpecificsFilter::equals); 00470 DDFilteredView fv(cpv); 00471 fv.addFilter(filter); 00472 bool ok = fv.firstChild(); 00473 00474 if (ok) { 00475 //Load the SpecPars 00476 loadSpecPars(fv); 00477 00478 //Load the Geometry parameters 00479 loadGeometry(fv); 00480 } else { 00481 edm::LogError("HCalGeom") << "HcalNumberingFromDDD: cannot get filtered " 00482 << " view for " << attribute << " matching " 00483 << name; 00484 throw DDException("HcalNumberingFromDDD: cannot match "+attribute+" to "+name); 00485 } 00486 00487 std::vector<HcalCellType::HcalCellType> cellTypes =HcalCellTypes(); 00488 LogDebug ("HCalGeom") << "HcalNumberingFromDDD: " << cellTypes.size() 00489 << " cells of type HCal (All)"; 00490 for (unsigned int i=0; i<cellTypes.size(); i++) 00491 LogDebug ("HCalGeom") << "Cell " << i << " " << cellTypes[i]; 00492 00493 }
void HcalNumberingFromDDD::loadGeometry | ( | DDFilteredView | fv | ) | [private] |
Definition at line 635 of file HcalNumberingFromDDD.cc.
References edmNew::copy(), DDFilteredView::copyNumbers(), ddcons, ddpolycone_rrz, ddtubs, dzVcal, find(), i, int, it1, j, LogDebug, DDFilteredView::logicalPart(), DDBase< N, C >::name(), DDFilteredView::next(), nmodHB, nmodHE, nzHB, nzHE, DDSolid::parameters(), rb, rHB, DDSolid::shape(), DDLogicalPart::solid(), t, DDFilteredView::translation(), and zHE.
Referenced by initialize().
00635 { 00636 00637 bool dodet=true, hf=false; 00638 std::vector<double> rb(20,0.0), ze(20,0.0); 00639 std::vector<int> ib(20,0), ie(20,0); 00640 std::vector<int> izb, phib, ize, phie, izf, phif; 00641 double zf = 0; 00642 dzVcal = -1.; 00643 00644 while (dodet) { 00645 DDTranslation t = fv.translation(); 00646 std::vector<int> copy = fv.copyNumbers(); 00647 const DDSolid & sol = fv.logicalPart().solid(); 00648 int idet = 0, lay = -1; 00649 int nsiz = (int)(copy.size()); 00650 if (nsiz>0) lay = copy[nsiz-1]/10; 00651 if (nsiz>1) idet = copy[nsiz-2]/1000; 00652 if (idet == 3) { 00653 // HB 00654 LogDebug("HCalGeom") << "HB " << sol.name() << " Shape " << sol.shape() 00655 << " Layer " << lay << " R " << t.Rho(); 00656 if (lay >=0 && lay < 20) { 00657 ib[lay]++; 00658 rb[lay] += t.Rho(); 00659 } 00660 if (lay == 2) { 00661 int iz = copy[nsiz-5]; 00662 int fi = copy[nsiz-4]; 00663 unsigned int it1 = find(iz, izb); 00664 if (it1 == izb.size()) izb.push_back(iz); 00665 unsigned int it2 = find(fi, phib); 00666 if (it2 == phib.size()) phib.push_back(fi); 00667 } 00668 } else if (idet == 4) { 00669 // HE 00670 LogDebug("HCalGeom") << "HE " << sol.name() << " Shape " << sol.shape() 00671 << " Layer " << lay << " Z " << t.z(); 00672 if (lay >=0 && lay < 20) { 00673 ie[lay]++; 00674 ze[lay] += fabs(t.z()); 00675 } 00676 if (copy[nsiz-1] == 10) { 00677 int iz = copy[nsiz-6]; 00678 int fi = copy[nsiz-4]; 00679 unsigned int it1 = find(iz, ize); 00680 if (it1 == ize.size()) ize.push_back(iz); 00681 unsigned int it2 = find(fi, phie); 00682 if (it2 == phie.size()) phie.push_back(fi); 00683 } 00684 } else if (idet == 5) { 00685 // HF 00686 if (!hf) { 00687 const std::vector<double> & paras = sol.parameters(); 00688 LogDebug("HCalGeom") << "HF " << sol.name() << " Shape " << sol.shape() 00689 << " Z " << t.z() << " with " << paras.size() 00690 << " Parameters"; 00691 for (unsigned j=0; j<paras.size(); j++) 00692 LogDebug("HCalGeom") << "HF Parameter[" << j << "] = " << paras[j]; 00693 zf = fabs(t.z()); 00694 if (sol.shape() == ddpolycone_rrz) { 00695 int nz = (int)(paras.size())-3; 00696 zf += paras[3]; 00697 dzVcal = 0.5*(paras[nz]-paras[3]); 00698 hf = true; 00699 } else if (sol.shape() == ddtubs || sol.shape() == ddcons) { 00700 dzVcal = paras[0]; 00701 zf -= paras[0]; 00702 hf = true; 00703 } 00704 } 00705 } else { 00706 LogDebug("HCalGeom") << "Unknown Detector " << idet << " for " 00707 << sol.name() << " Shape " << sol.shape() << " R " 00708 << t.Rho() << " Z " << t.z(); 00709 } 00710 dodet = fv.next(); 00711 } 00712 00713 int ibmx = 0, iemx = 0; 00714 for (int i = 0; i < 20; i++) { 00715 if (ib[i]>0) { 00716 rb[i] /= (double)(ib[i]); 00717 ibmx = i+1; 00718 } 00719 if (ie[i]>0) { 00720 ze[i] /= (double)(ie[i]); 00721 iemx = i+1; 00722 } 00723 } 00724 00725 LogDebug("HCalGeom") << "HcalNumberingFromDDD: Maximum Layer for HB " 00726 << ibmx << " for HE " << iemx << " Z for HF " << zf 00727 << " extent " << dzVcal; 00728 if (ibmx > 0) { 00729 rHB.resize(ibmx); 00730 for (int i=0; i<ibmx; i++) { 00731 rHB[i] = rb[i]; 00732 LogDebug("HCalGeom") << "HcalNumberingFromDDD: rHB[" << i << "] = " 00733 << rHB[i]; 00734 } 00735 } 00736 if (iemx > 0) { 00737 zHE.resize(iemx); 00738 for (int i=0; i<iemx; i++) { 00739 zHE[i] = ze[i]; 00740 LogDebug("HCalGeom") << "HcalNumberingFromDDD: zHE[" << i << "] = " 00741 << zHE[i]; 00742 } 00743 } 00744 00745 nzHB = (int)(izb.size()); 00746 nmodHB = (int)(phib.size()); 00747 LogDebug("HCalGeom") << "HcalNumberingFromDDD::loadGeometry: " << nzHB 00748 << " barrel half-sectors"; 00749 for (int i=0; i<nzHB; i++) 00750 LogDebug("HCalGeom") << "Section " << i << " Copy number " << izb[i]; 00751 LogDebug("HCalGeom") << "HcalNumberingFromDDD::loadGeometry: " << nmodHB 00752 << " barrel modules"; 00753 for (int i=0; i<nmodHB; i++) 00754 LogDebug("HCalGeom") << "Module " << i << " Copy number " << phib[i]; 00755 00756 nzHE = (int)(ize.size()); 00757 nmodHE = (int)(phie.size()); 00758 LogDebug("HCalGeom") << "HcalNumberingFromDDD::loadGeometry: " << nzHE 00759 << " endcap half-sectors"; 00760 for (int i=0; i<nzHE; i++) 00761 LogDebug("HCalGeom") << "Section " << i << " Copy number " << ize[i]; 00762 LogDebug("HCalGeom") << "HcalNumberingFromDDD::loadGeometry: " << nmodHE 00763 << " endcap modules"; 00764 for (int i=0; i<nmodHE; i++) 00765 LogDebug("HCalGeom") << "Module " << i << " Copy number " << phie[i]; 00766 00767 }
void HcalNumberingFromDDD::loadSpecPars | ( | DDFilteredView | fv | ) | [private] |
Definition at line 495 of file HcalNumberingFromDDD.cc.
References d1, d2, d3, depth1, depth2, depth3, etaMax, etaMin, etaTable, gainHB, gainHE, gainHF, getDDDArray(), i, LogDebug, DDFilteredView::mergedSpecifics(), nDepth, nEta, nOff, nPhi, nR, phibin, phioff, rTable, shiftHB, shiftHE, shiftHF, sv, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8, tmp9, and zVcal.
Referenced by initialize().
00495 { 00496 00497 DDsvalues_type sv(fv.mergedSpecifics()); 00498 00499 // Phi Offset 00500 int i, nphi=4; 00501 std::vector<double> tmp1 = getDDDArray("phioff",sv,nphi); 00502 phioff.resize(tmp1.size()); 00503 for (i=0; i<nphi; i++) { 00504 phioff[i] = tmp1[i]; 00505 LogDebug("HCalGeom") << "HcalNumberingFromDDD: phioff[" << i << "] = " 00506 << phioff[i]/deg; 00507 } 00508 00509 //Eta table 00510 nEta = -1; 00511 std::vector<double> tmp2 = getDDDArray("etaTable",sv,nEta); 00512 etaTable.resize(tmp2.size()); 00513 for (i=0; i<nEta; i++) { 00514 etaTable[i] = tmp2[i]; 00515 LogDebug("HCalGeom") << "HcalNumberingFromDDD: etaTable[" << i << "] = " 00516 << etaTable[i]; 00517 } 00518 00519 //R table 00520 nR = -1; 00521 std::vector<double> tmp3 = getDDDArray("rTable",sv,nR); 00522 rTable.resize(tmp3.size()); 00523 for (i=0; i<nR; i++) { 00524 rTable[i] = tmp3[i]; 00525 LogDebug("HCalGeom") << "HcalNumberingFromDDD: rTable[" << i << "] = " 00526 << rTable[i]/cm; 00527 } 00528 00529 //Phi bins 00530 nPhi = nEta + nR - 2; 00531 std::vector<double> tmp4 = getDDDArray("phibin",sv,nPhi); 00532 phibin.resize(tmp4.size()); 00533 for (i=0; i<nPhi; i++) { 00534 phibin[i] = tmp4[i]; 00535 LogDebug("HCalGeom") << "HcalNumberingFromDDD: phibin[" << i << "] = " 00536 << phibin[i]/deg; 00537 } 00538 00539 //Layer boundaries for depths 1, 2, 3, 4 00540 nDepth = nEta - 1; 00541 std::vector<double> d1 = getDDDArray("depth1",sv,nDepth); 00542 nDepth = nEta - 1; 00543 std::vector<double> d2 = getDDDArray("depth2",sv,nDepth); 00544 nDepth = nEta - 1; 00545 std::vector<double> d3 = getDDDArray("depth3",sv,nDepth); 00546 LogDebug("HCalGeom") << "HcalNumberingFromDDD: " << nDepth << " Depths"; 00547 depth1.resize(nDepth); 00548 depth2.resize(nDepth); 00549 depth3.resize(nDepth); 00550 for (i=0; i<nDepth; i++) { 00551 depth1[i] = static_cast<int>(d1[i]); 00552 depth2[i] = static_cast<int>(d2[i]); 00553 depth3[i] = static_cast<int>(d3[i]); 00554 LogDebug("HCalGeom") << "HcalNumberingFromDDD: depth1[" << i << "] = " 00555 << depth1[i] << " depth2[" << i << "] = "<< depth2[i] 00556 << " depth3[" << i << "] = " << depth3[i]; 00557 } 00558 00559 // Minimum and maximum eta boundaries 00560 int ndx = 3; 00561 std::vector<double> tmp5 = getDDDArray("etaMin",sv,ndx); 00562 std::vector<double> tmp6 = getDDDArray("etaMax",sv,ndx); 00563 etaMin.resize(ndx); 00564 etaMax.resize(ndx); 00565 for (i=0; i<ndx; i++) { 00566 etaMin[i] = static_cast<int>(tmp5[i]); 00567 etaMax[i] = static_cast<int>(tmp6[i]); 00568 } 00569 etaMin[0] = 1; 00570 etaMax[1] = nEta-1; 00571 etaMax[2] = etaMin[2]+nR-2; 00572 for (i=0; i<ndx; i++) 00573 LogDebug("HCalGeom") << "HcalNumberingFromDDD: etaMin[" << i << "] = " 00574 << etaMin[i] << " etaMax[" << i << "] = "<< etaMax[i]; 00575 00576 // Geometry parameters for HF 00577 int ngpar = 7; 00578 std::vector<double> gpar = getDDDArray("gparHF",sv,ngpar); 00579 zVcal = gpar[6]; 00580 LogDebug("HCalGeom") << "HcalNumberingFromDDD: zVcal " << zVcal; 00581 00582 // nOff 00583 int noff = 3; 00584 std::vector<double> nvec = getDDDArray("noff",sv,noff); 00585 nOff.resize(noff); 00586 for (i=0; i<noff; i++) { 00587 nOff[i] = static_cast<int>(nvec[i]); 00588 LogDebug("HCalGeom") << "HcalNumberingFromDDD: nOff[" << i << "] = " 00589 << nOff[i]; 00590 } 00591 00592 //Gains and Shifts for HB depths 00593 ndx = 4; 00594 gainHB = getDDDArray("HBGains",sv,ndx); 00595 std::vector<double> tmp7 = getDDDArray("HBShift",sv,ndx); 00596 shiftHB.resize(ndx); 00597 LogDebug("HCalGeom") << "HcalNumberingFromDDD:: Gain factor and Shift for " 00598 << "HB depth layers:"; 00599 for (i=0; i<ndx; i++) { 00600 shiftHB[i] = static_cast<int>(tmp7[i]); 00601 LogDebug("HCalGeom") <<"HcalNumberingFromDDD:: gainHB[" << i << "] = " 00602 << gainHB[i] << " shiftHB[" << i << "] = " 00603 << shiftHB[i]; 00604 } 00605 00606 //Gains and Shifts for HB depths 00607 ndx = 4; 00608 gainHE = getDDDArray("HEGains",sv,ndx); 00609 std::vector<double> tmp8 = getDDDArray("HEShift",sv,ndx); 00610 shiftHE.resize(ndx); 00611 LogDebug("HCalGeom") << "HcalNumberingFromDDD:: Gain factor and Shift for " 00612 << "HE depth layers:"; 00613 for (i=0; i<ndx; i++) { 00614 shiftHE[i] = static_cast<int>(tmp8[i]); 00615 LogDebug("HCalGeom") <<"HcalNumberingFromDDD:: gainHE[" << i << "] = " 00616 << gainHE[i] << " shiftHE[" << i << "] = " 00617 << shiftHE[i]; 00618 } 00619 00620 //Gains and Shifts for HF depths 00621 ndx = 4; 00622 gainHF = getDDDArray("HFGains",sv,ndx); 00623 std::vector<double> tmp9 = getDDDArray("HFShift",sv,ndx); 00624 shiftHF.resize(ndx); 00625 LogDebug("HCalGeom") << "HcalNumberingFromDDD:: Gain factor and Shift for " 00626 << "HF depth layers:"; 00627 for (i=0; i<ndx; i++) { 00628 shiftHF[i] = static_cast<int>(tmp9[i]); 00629 LogDebug("HCalGeom") <<"HcalNumberingFromDDD:: gainHF[" << i << "] = " 00630 << gainHF[i] << " shiftHF[" << i << "] = " 00631 << shiftHF[i]; 00632 } 00633 }
HcalNumberingFromDDD::HcalID HcalNumberingFromDDD::unitID | ( | int | det, | |
int | zside, | |||
int | depth, | |||
int | etaR, | |||
int | phi, | |||
int | lay = -1 | |||
) | const |
Definition at line 147 of file HcalNumberingFromDDD.cc.
References HcalNumberingFromDDD::HcalID::depth, depth1, depth2, depth3, etaMin, HcalNumberingFromDDD::HcalID::etaR, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, int, HcalNumberingFromDDD::HcalID::lay, LogDebug, nEta, nOff, HcalNumberingFromDDD::HcalID::phi, phibin, phioff, HcalNumberingFromDDD::HcalID::subdet, tmp, and HcalNumberingFromDDD::HcalID::zside.
00150 { 00151 00152 //Modify the depth index 00153 if (det == static_cast<int>(HcalForward)) { // Forward HCal 00154 } else { 00155 if (lay >= 0) { 00156 double fibin = phibin[etaR-1]; 00157 int depth0 = depth1[etaR-1]; 00158 int kphi = phi + int((phioff[3]+0.1)/fibin); 00159 kphi = (kphi-1)%4 + 1; 00160 if (etaR == nOff[0] && (kphi == 2 || kphi == 3)) depth0--; 00161 if (lay <= depth2[etaR-1]) { 00162 if (lay <= depth0) depth = 1; 00163 else depth = 2; 00164 } else if (lay <= depth3[etaR-1]) { 00165 depth = 3; 00166 } else depth = 4; 00167 } else if (det == static_cast<int>(HcalBarrel)) { 00168 if (depth==3) depth = 2; 00169 } 00170 if (det != static_cast<int>(HcalBarrel)) { 00171 if (etaR <= etaMin[1]) depth = 3; 00172 } 00173 } 00174 if (etaR == nOff[1] && depth > 2 && det == static_cast<int>(HcalEndcap)) 00175 etaR = nOff[1]-1; 00176 if (det == static_cast<int>(HcalBarrel) && depth == 4) { 00177 det = static_cast<int>(HcalOuter); 00178 } 00179 00180 const double fiveDegInRad = 2*M_PI/72; 00181 00182 int iphi_skip=phi; 00183 int units=0; 00184 if (det==HcalForward) units=int(phibin[nEta+etaR-etaMin[2]-1]/fiveDegInRad+0.5); 00185 else units=int(phibin[etaR-1]/fiveDegInRad+0.5); 00186 00187 if (units==2) iphi_skip = (phi-1)*2+1; 00188 else if (units==4) iphi_skip = (phi-1)*4-1; 00189 if (iphi_skip < 0) iphi_skip += 72; 00190 00191 LogDebug("HCalGeom") << "HcalNumberingFromDDD: phi units=" << units 00192 << " iphi_skip=" << iphi_skip; 00193 00194 HcalNumberingFromDDD::HcalID tmp(det,zside,depth,etaR,phi,iphi_skip,lay); 00195 00196 LogDebug("HCalGeom") << "HcalNumberingFromDDD: det = " << det << " " 00197 << tmp.subdet << " zside = " << tmp.zside << " depth = " 00198 << tmp.depth << " eta/R = " << tmp.etaR << " phi = " 00199 << tmp.phi << " layer = " << tmp.lay; 00200 return tmp; 00201 }
HcalNumberingFromDDD::HcalID HcalNumberingFromDDD::unitID | ( | int | det, | |
double | etaR, | |||
double | phi, | |||
int | depth, | |||
int | lay = -1 | |||
) | const |
Definition at line 98 of file HcalNumberingFromDDD.cc.
References etaMax, etaMin, etaTable, HcalBarrel, HcalForward, i, int, LogDebug, nEta, nR, phibin, phioff, rTable, tmp, and unitID().
00102 { 00103 00104 int ieta=0; 00105 double fioff, fibin; 00106 double hetaR = fabs(etaR); 00107 00108 //First eta index 00109 if (det == static_cast<int>(HcalForward)) { // Forward HCal 00110 fioff = phioff[2]; 00111 ieta = etaMax[2]; 00112 for (int i = nR-1; i > 0; i--) 00113 if (hetaR < rTable[i]) ieta = etaMin[2] + nR - i - 1; 00114 fibin = phibin[nEta+ieta-etaMin[2]-1]; 00115 if (ieta > etaMax[2]-2 ) { // HF double-phi 00116 fioff += 0.5*fibin; 00117 } 00118 } else { // Barrel or Endcap 00119 ieta = 1; 00120 for (int i = 0; i < nEta-1; i++) 00121 if (hetaR > etaTable[i]) ieta = i + 1; 00122 if (det == static_cast<int>(HcalBarrel)) { 00123 fioff = phioff[0]; 00124 if (ieta > etaMax[0]) ieta = etaMax[0]; 00125 } else { 00126 fioff = phioff[1]; 00127 if (ieta <= etaMin[1]) ieta = etaMin[1]; 00128 } 00129 fibin = phibin[ieta-1]; 00130 } 00131 00132 int nphi = int((twopi+0.1*fibin)/fibin); 00133 int zside = etaR>0 ? 1: 0; 00134 double hphi = phi+fioff; 00135 if (hphi < 0) hphi += twopi; 00136 int iphi = int(hphi/fibin) + 1; 00137 if (iphi > nphi) iphi = 1; 00138 00139 LogDebug("HCalGeom") << "HcalNumberingFromDDD: etaR = " << etaR << " : " 00140 << zside << "/" << ieta << " phi " << hphi << " : " 00141 << iphi; 00142 HcalNumberingFromDDD::HcalID tmp = unitID(det,zside,depth,ieta,iphi,lay); 00143 return tmp; 00144 00145 }
HcalNumberingFromDDD::HcalID HcalNumberingFromDDD::unitID | ( | double | eta, | |
double | phi, | |||
int | depth = 1 , |
|||
int | lay = -1 | |||
) | const |
Definition at line 69 of file HcalNumberingFromDDD.cc.
References etaMax, etaMin, etaTable, funct::exp(), HcalBarrel, HcalEndcap, HcalForward, i, nEta, funct::tan(), theta, tmp, unitID(), and zVcal.
00071 { 00072 00073 int ieta = 0; 00074 double heta = fabs(eta); 00075 for (int i = 0; i < nEta; i++) 00076 if (heta > etaTable[i]) ieta = i + 1; 00077 int hsubdet=0; 00078 double etaR; 00079 if (ieta <= etaMin[1]) { 00080 if ((ieta <= etaMin[1] && depth==3) || ieta > etaMax[0]) { 00081 hsubdet = static_cast<int>(HcalEndcap); 00082 } else { 00083 hsubdet = static_cast<int>(HcalBarrel); 00084 } 00085 etaR = eta; 00086 } else { 00087 hsubdet = static_cast<int>(HcalForward); 00088 double theta = 2.*atan(exp(-heta)); 00089 double hR = zVcal*tan(theta); 00090 etaR = (eta >= 0. ? hR : -hR); 00091 } 00092 00093 HcalNumberingFromDDD::HcalID tmp = unitID(hsubdet,etaR,fi,depth,lay); 00094 return tmp; 00095 }
HcalNumberingFromDDD::HcalID HcalNumberingFromDDD::unitID | ( | int | det, | |
Hep3Vector | pos, | |||
int | depth, | |||
int | lay = -1 | |||
) | const |
Definition at line 30 of file HcalNumberingFromDDD.cc.
References HcalBarrel, HcalEndcap, HcalForward, funct::log(), LogDebug, max, min, funct::sin(), funct::sqrt(), funct::tan(), and tmp.
Referenced by SimG4HcalValidation::fill(), HcalTestAnalysis::fill(), HCalSD::getHitPMT(), HCalSD::layerWeight(), HcalTestAnalysis::qieAnalysis(), HCalSD::setDetUnitId(), and unitID().
00033 { 00034 00035 double hx = point.x(); 00036 double hy = point.y(); 00037 double hz = point.z(); 00038 double hR = sqrt(hx*hx+hy*hy+hz*hz); 00039 double htheta = (hR == 0. ? 0. : acos(std::max(std::min(hz/hR,1.0),-1.0))); 00040 double hsintheta = sin(htheta); 00041 double hphi = (hR*hsintheta == 0. ? 0. :atan2(hy,hx)); 00042 double heta = (fabs(hsintheta) == 1.? 0. : -log(fabs(tan(htheta/2.))) ); 00043 00044 int hsubdet=0; 00045 double etaR; 00046 00047 //First eta index 00048 if (det == 5) { // Forward HCal 00049 hsubdet = static_cast<int>(HcalForward); 00050 hR = sqrt(hx*hx+hy*hy); 00051 etaR = (heta >= 0. ? hR : -hR); 00052 } else { // Barrel or Endcap 00053 etaR = heta; 00054 if (det == 3) { 00055 hsubdet = static_cast<int>(HcalBarrel); 00056 } else { 00057 hsubdet = static_cast<int>(HcalEndcap); 00058 } 00059 } 00060 00061 LogDebug("HCalGeom") << "HcalNumberingFromDDD: point = " << point << " det " 00062 << hsubdet << " eta/R " << etaR << " phi " << hphi; 00063 00064 HcalNumberingFromDDD::HcalID tmp = unitID(hsubdet,etaR,hphi,depth,lay); 00065 return tmp; 00066 00067 }
std::vector<int> HcalNumberingFromDDD::depth1 [private] |
Definition at line 70 of file HcalNumberingFromDDD.h.
Referenced by cell(), loadSpecPars(), and unitID().
std::vector<int> HcalNumberingFromDDD::depth2 [private] |
Definition at line 71 of file HcalNumberingFromDDD.h.
Referenced by cell(), loadSpecPars(), and unitID().
std::vector<int> HcalNumberingFromDDD::depth3 [private] |
Definition at line 72 of file HcalNumberingFromDDD.h.
Referenced by cell(), loadSpecPars(), and unitID().
double HcalNumberingFromDDD::dzVcal [private] |
Definition at line 81 of file HcalNumberingFromDDD.h.
Referenced by HcalCellTypes(), and loadGeometry().
std::vector<int> HcalNumberingFromDDD::etaMax [private] |
Definition at line 67 of file HcalNumberingFromDDD.h.
Referenced by cell(), HcalCellTypes(), loadSpecPars(), and unitID().
std::vector<int> HcalNumberingFromDDD::etaMin [private] |
Definition at line 66 of file HcalNumberingFromDDD.h.
Referenced by cell(), deltaEta(), getEta(), HcalCellTypes(), loadSpecPars(), and unitID().
std::vector<double> HcalNumberingFromDDD::etaTable [private] |
Definition at line 62 of file HcalNumberingFromDDD.h.
Referenced by deltaEta(), getEta(), getEtaTable(), loadSpecPars(), and unitID().
std::vector<double> HcalNumberingFromDDD::gainHB [private] |
std::vector<double> HcalNumberingFromDDD::gainHE [private] |
std::vector<double> HcalNumberingFromDDD::gainHF [private] |
int HcalNumberingFromDDD::nDepth [private] |
int HcalNumberingFromDDD::nEta [private] |
Definition at line 63 of file HcalNumberingFromDDD.h.
Referenced by cell(), deltaEta(), getEta(), loadSpecPars(), and unitID().
int HcalNumberingFromDDD::nmodHB [private] |
Definition at line 85 of file HcalNumberingFromDDD.h.
Referenced by HcalCellTypes(), and loadGeometry().
int HcalNumberingFromDDD::nmodHE [private] |
Definition at line 86 of file HcalNumberingFromDDD.h.
Referenced by HcalCellTypes(), and loadGeometry().
std::vector<int> HcalNumberingFromDDD::nOff [private] |
Definition at line 82 of file HcalNumberingFromDDD.h.
Referenced by cell(), deltaEta(), getEta(), loadSpecPars(), and unitID().
int HcalNumberingFromDDD::nPhi [private] |
int HcalNumberingFromDDD::nR [private] |
Definition at line 65 of file HcalNumberingFromDDD.h.
Referenced by cell(), deltaEta(), getEta(), loadSpecPars(), and unitID().
int HcalNumberingFromDDD::nzHB [private] |
Definition at line 85 of file HcalNumberingFromDDD.h.
Referenced by HcalCellTypes(), and loadGeometry().
int HcalNumberingFromDDD::nzHE [private] |
Definition at line 86 of file HcalNumberingFromDDD.h.
Referenced by HcalCellTypes(), and loadGeometry().
std::vector<double> HcalNumberingFromDDD::phibin [private] |
Definition at line 68 of file HcalNumberingFromDDD.h.
Referenced by cell(), loadSpecPars(), and unitID().
std::vector<double> HcalNumberingFromDDD::phioff [private] |
Definition at line 61 of file HcalNumberingFromDDD.h.
Referenced by cell(), loadSpecPars(), and unitID().
std::vector<double> HcalNumberingFromDDD::rHB [private] |
std::vector<double> HcalNumberingFromDDD::rTable [private] |
Definition at line 64 of file HcalNumberingFromDDD.h.
Referenced by cell(), deltaEta(), getEta(), loadSpecPars(), and unitID().
std::vector<int> HcalNumberingFromDDD::shiftHB [private] |
std::vector<int> HcalNumberingFromDDD::shiftHE [private] |
std::vector<int> HcalNumberingFromDDD::shiftHF [private] |
std::vector<double> HcalNumberingFromDDD::zHE [private] |
double HcalNumberingFromDDD::zVcal [private] |
Definition at line 80 of file HcalNumberingFromDDD.h.
Referenced by deltaEta(), getEta(), loadSpecPars(), and unitID().