示例#1
0
int main() {

    std::cout << "Test current Hcal geometry" << std::endl;

    HcalTopologyMode::Mode mode = HcalTopologyMode::LHC;
    int maxDepthHB = 2;
    int maxDepthHE = 3;
    HcalTopology topology( mode, maxDepthHB, maxDepthHE );

    testValidDetIds( topology, DetId::Hcal, HcalBarrel, " BARREL " );
    testValidDetIds( topology, DetId::Hcal, HcalEndcap, " ENDCAP " );
    testValidDetIds( topology, DetId::Hcal, HcalOuter, " OUTER " );
    testValidDetIds( topology, DetId::Hcal, HcalForward, " FORWARD " );

    testTriggerGeometry( topology );

    testClosestCells( topology );

    std::cout << "Test SLHC Hcal geometry" << std::endl;

    mode = HcalTopologyMode::SLHC;
    maxDepthHB = 7;
    maxDepthHE = 7;
    HcalTopology stopology( mode, maxDepthHB, maxDepthHE );

    testValidDetIds( stopology, DetId::Hcal, HcalBarrel, " SLHC BARREL " );
    testValidDetIds( stopology, DetId::Hcal, HcalEndcap, " SLHC ENDCAP " );
    testValidDetIds( stopology, DetId::Hcal, HcalOuter, " SLHC OUTER " );
    testValidDetIds( stopology, DetId::Hcal, HcalForward, " SLHC FORWARD " );

    std::cout << "Test SLHC Hcal Flexi geometry" << std::endl;
    std::vector<int> dins;

    testFlexiValidDetIds( stopology, DetId::Hcal, HcalBarrel, " SLHC BARREL ", dins );
    testFlexiValidDetIds( stopology, DetId::Hcal, HcalEndcap, " SLHC ENDCAP ", dins );
    testFlexiValidDetIds( stopology, DetId::Hcal, HcalOuter, " SLHC OUTER ", dins );
    testFlexiValidDetIds( stopology, DetId::Hcal, HcalForward, " SLHC FORWARD ", dins );

    testTriggerGeometry( stopology );

    testClosestCells( stopology );

    return 0;
}
示例#2
0
int main() {

  HcalHardcodeGeometryLoader l;
  HcalHardcodeGeometryLoader::ReturnType b=l.load(DetId::Hcal,HcalBarrel);
  HcalHardcodeGeometryLoader::ReturnType e=l.load(DetId::Hcal,HcalEndcap);
  HcalHardcodeGeometryLoader::ReturnType o=l.load(DetId::Hcal,HcalOuter);
  HcalHardcodeGeometryLoader::ReturnType f=l.load(DetId::Hcal,HcalForward);

  std::cout << std::endl << " BARREL : " << std::endl;
  const std::vector<DetId>& idshb=b->getValidDetIds(DetId::Hcal,HcalBarrel);
  for (std::vector<DetId>::const_iterator i=idshb.begin(); i!=idshb.end(); i++) {
    HcalDetId hid=(*i);
    if (hid.iphi()!=1) continue;
    const CaloCellGeometry* geom=b->getGeometry(hid);
    const CaloCellGeometry::CornersVec& corners=geom->getCorners();
    std::cout << hid << std::endl;
    for (CaloCellGeometry::CornersVec::const_iterator j=corners.begin(); j!=corners.end(); j++) {
      std::cout << "  " << *j << std::endl;
    }
  }

  std::cout << std::endl << " FORWARD : " << std::endl;
  const std::vector<DetId>& idshf=f->getValidDetIds(DetId::Hcal,HcalForward);
  for (std::vector<DetId>::const_iterator i=idshf.begin(); i!=idshf.end(); i++) {
    HcalDetId hid=(*i);
    //  if (hid.iphi()!=1 && hid.iphi()!=2 && hid.iphi()!=3) continue;
    std::cout << hid << std::endl;
    
    const CaloCellGeometry* geom=f->getGeometry(hid);
    const CaloCellGeometry::CornersVec& corners=geom->getCorners();
    for (CaloCellGeometry::CornersVec::const_iterator j=corners.begin(); j!=corners.end(); j++) {
      std::cout << "  " << *j << std::endl;
    }
  }

  std::cout << std::endl << " ENDCAP : " << std::endl;
  const std::vector<DetId>& idshe=e->getValidDetIds(DetId::Hcal,HcalEndcap);
  for (std::vector<DetId>::const_iterator i=idshe.begin(); i!=idshe.end(); i++) {
    HcalDetId hid=(*i);
    if (hid.iphi()!=1 && hid.iphi()!=2 && hid.iphi()!=3) continue;
    std::cout << hid << std::endl;
    
    const CaloCellGeometry* geom=e->getGeometry(hid);
    const CaloCellGeometry::CornersVec& corners=geom->getCorners();
    for (CaloCellGeometry::CornersVec::const_iterator j=corners.begin(); j!=corners.end(); j++) {
      std::cout << "  " << *j << std::endl;
    }
  }

  std::cout << std::endl << " OUTER : " << std::endl;
  const std::vector<DetId>& idsho=o->getValidDetIds(DetId::Hcal,HcalOuter);
  for (std::vector<DetId>::const_iterator i=idsho.begin(); i!=idsho.end(); i++) {
    HcalDetId hid=(*i);
    if (hid.iphi()!=1 && hid.iphi()!=2 && hid.iphi()!=3) continue;
    std::cout << hid << std::endl;
    
    const CaloCellGeometry* geom=o->getGeometry(hid);
    const CaloCellGeometry::CornersVec& corners=geom->getCorners();
    for (CaloCellGeometry::CornersVec::const_iterator j=corners.begin(); j!=corners.end(); j++) {
      std::cout << "  " << *j << std::endl;
    }
  }

  testTriggerGeometry();

  testClosestCells();
  return 0;
}