void testClosestCells( HcalTopology& topology ) { edm::FileInPath fp("Geometry/HcalTowerAlgo/test/runHcalGeometryAnalyzer_cfg.py"); std::string fname = fp.fullPath(); std::shared_ptr<edm::ParameterSet> pS = edm::readConfig(fname); // std::cout << pS->dump() << std::endl; edm::ParameterSet const& pModule = pS->getParameter<edm::ParameterSet>("HcalHardcodeGeometryEP@"); HcalFlexiHardcodeGeometryLoader loader(pModule); CaloSubdetectorGeometry* g = loader.load( topology ); // make sure each cel is its own closest cell HcalDetId barrelDet(HcalBarrel, 1, 1, 1); HcalDetId barrelDet2(HcalBarrel, 16, 50, 1); HcalDetId endcapDet1(HcalEndcap, -17, 72, 1); HcalDetId endcapDet2(HcalEndcap, 29, 35, 1); HcalDetId forwardDet1(HcalForward, 30, 71, 1); HcalDetId forwardDet3(HcalForward, -40, 71, 1); testClosestCell( barrelDet , g ); testClosestCell( barrelDet2 , g ); testClosestCell( endcapDet1 , g ); testClosestCell( endcapDet2 , g ); testClosestCell( forwardDet1, g ); testClosestCell( forwardDet3, g ); const std::vector<DetId>& ids=g->getValidDetIds(DetId::Hcal,HcalBarrel); for (std::vector<DetId>::const_iterator i=ids.begin(); i!=ids.end(); i++) { testClosestCell( HcalDetId(*i), g ); } }
void testClosestCells() { HcalHardcodeGeometryLoader l; HcalHardcodeGeometryLoader::ReturnType g = l .load(); // make sure each cel is its own closest cell HcalDetId barrelDet(HcalBarrel, 1, 1, 1); HcalDetId barrelDet2(HcalBarrel, 16, 50, 1); HcalDetId endcapDet1(HcalEndcap, -17, 72, 1); HcalDetId endcapDet2(HcalEndcap, 29, 35, 1); HcalDetId forwardDet1(HcalForward, 30, 71, 1); HcalDetId forwardDet3(HcalForward, -40, 71, 1); testClosestCell( barrelDet , g ); testClosestCell( barrelDet2 , g ); testClosestCell( endcapDet1 , g ); testClosestCell( endcapDet2 , g ); testClosestCell( forwardDet1, g ); testClosestCell( forwardDet3, g ); const std::vector<DetId>& ids=g->getValidDetIds(DetId::Hcal,HcalBarrel); for (std::vector<DetId>::const_iterator i=ids.begin(); i!=ids.end(); i++) { testClosestCell( HcalDetId(*i), g ); } }
void testClosestCells() { // FIXME: for SLHC HcalTopologyMode::Mode mode = HcalTopologyMode::LHC; int maxDepthHB = 2; int maxDepthHE = 3; HcalTopology topology(mode, maxDepthHB, maxDepthHE); HcalHardcodeGeometryLoader l(topology); HcalHardcodeGeometryLoader::ReturnType g = l .load(); // make sure each cel is its own closest cell HcalDetId barrelDet(HcalBarrel, 1, 1, 1); HcalDetId barrelDet2(HcalBarrel, 16, 50, 1); HcalDetId endcapDet1(HcalEndcap, -17, 72, 1); HcalDetId endcapDet2(HcalEndcap, 29, 35, 1); HcalDetId forwardDet1(HcalForward, 30, 71, 1); HcalDetId forwardDet3(HcalForward, -40, 71, 1); testClosestCell( barrelDet , g ); testClosestCell( barrelDet2 , g ); testClosestCell( endcapDet1 , g ); testClosestCell( endcapDet2 , g ); testClosestCell( forwardDet1, g ); testClosestCell( forwardDet3, g ); const std::vector<DetId>& ids=g->getValidDetIds(DetId::Hcal,HcalBarrel); for (std::vector<DetId>::const_iterator i=ids.begin(); i!=ids.end(); i++) { testClosestCell( HcalDetId(*i), g ); } }
void testTriggerGeometry() { // FIXME: for SLHC HcalTopologyMode::Mode mode = HcalTopologyMode::LHC; int maxDepthHB = 2; int maxDepthHE = 3; HcalTrigTowerGeometry trigTowers( new HcalTopology (mode, maxDepthHB, maxDepthHE)); std::cout << "HCAL trigger tower eta bounds " << std::endl; for(int ieta = 1; ieta <= 32; ++ieta) { double eta1, eta2; trigTowers.towerEtaBounds(ieta, eta1, eta2); std::cout << ieta << " " << eta1 << " " << eta2 << std::endl; } // now test some cell mappings HcalDetId barrelDet(HcalBarrel, 1, 1, 1); HcalDetId endcapDet(HcalEndcap, 29, 1, 1); HcalDetId forwardDet1(HcalForward, 29, 71, 1); HcalDetId forwardDet2(HcalForward, 29, 71, 2); HcalDetId forwardDet3(HcalForward, 40, 71, 1); typedef std::vector<HcalTrigTowerDetId> TowerDets; TowerDets barrelTowers = trigTowers.towerIds(barrelDet); TowerDets endcapTowers = trigTowers.towerIds(endcapDet); TowerDets forwardTowers1 = trigTowers.towerIds(forwardDet1); TowerDets forwardTowers2 = trigTowers.towerIds(forwardDet2); TowerDets forwardTowers3 = trigTowers.towerIds(forwardDet3); assert(barrelTowers.size() ==1); assert(endcapTowers.size() ==2); assert(forwardTowers1.size() ==1); assert(forwardTowers2.size() ==1); assert(forwardTowers3.size() ==1); std::cout << barrelTowers[0] << std::endl; std::cout << endcapTowers[0] << std::endl; std::cout << endcapTowers[1] << std::endl; std::cout << forwardTowers1[0] << std::endl; std::cout << forwardTowers3[0] << std::endl; }