Go to the documentation of this file.00001
00002
00003
00005 #include "SimG4CMS/Calo/interface/HcalTestNumberingScheme.h"
00006 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
00007 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
00008
00009 #include <iostream>
00010
00011 HcalTestNumberingScheme::HcalTestNumberingScheme(bool forTB) :
00012 HcalNumberingScheme(), forTBH2(forTB) {
00013 edm::LogInfo("HcalSim") << "Creating HcalTestNumberingScheme with TB Flag "
00014 << forTBH2;
00015 }
00016
00017 HcalTestNumberingScheme::~HcalTestNumberingScheme() {
00018 edm::LogInfo("HcalSim") << "Deleting HcalTestNumberingScheme";
00019 }
00020
00021 uint32_t HcalTestNumberingScheme::getUnitID(const HcalNumberingFromDDD::HcalID
00022 id) {
00023
00024
00025 uint32_t index = 0;
00026 if (forTBH2) {
00027
00028 int etaR = id.etaR;
00029 int phi = id.phis;
00030 HcalSubdetector subdet = (HcalSubdetector)(id.subdet);
00031 if (subdet == HcalBarrel && phi > 4) {
00032 if (etaR > 4 && etaR < 10)
00033 index = HcalDetId(subdet,id.lay,id.phis,1).rawId();
00034 } else {
00035 index = HcalDetId(subdet,etaR,id.phis,id.depth).rawId();
00036 }
00037 } else {
00038
00039 index = HcalTestNumbering::packHcalIndex(id.subdet, id.zside, id.depth,
00040 id.etaR, id.phi, id.lay);
00041 }
00042
00043 LogDebug("HcalSim") << "HcalTestNumberingScheme det = " << id.subdet
00044 << " depth/lay = " << id.depth << "/" << id.lay
00045 << " zside = " << id.zside << " eta/R = " << id.etaR
00046 << " phi = " << id.phi << " packed index = 0x"
00047 << std::hex << index << std::dec;
00048
00049 return index;
00050
00051 }
00052
00053 uint32_t HcalTestNumberingScheme::packHcalIndex(int det, int z, int depth,
00054 int eta, int phi, int lay) {
00055
00056 return HcalTestNumbering::packHcalIndex(det, z, depth, eta, phi, lay);
00057 }
00058
00059 void HcalTestNumberingScheme::unpackHcalIndex(const uint32_t & idx,
00060 int& det, int& z,
00061 int& depth, int& eta,
00062 int& phi, int& lay) {
00063
00064 HcalTestNumbering::unpackHcalIndex(idx, det, z, depth, eta, phi, lay);
00065 }