//========================================================================== // // File : CellCorners_t.cpp // Created : 29-JUN-1998 by Stephen Kahn // Purpose : Test Cal geometry // //========================================================================== // include files // #include #include "PhysicsVectors/SpaceVector.h" #include "calorimeter_geometry/base/CalBaseGeometry.hpp" #include "calorimeter_geometry/base/CalGeometer.hpp" #include "calorimeter_geometry/base/CALcell.hpp" #include "geometry_system/components/CartesianCoordinate.hpp" #include "calorimeter_geometry/utils/CalShapeGeometer.hpp" #include "calorimeter_geometry/utils/CellCorners.hpp" #include "calorimeter_geometry/utils/EdgeVector.hpp" #include "caladdress/CALparams.h" using namespace std; int main() { // float xx, yy, zz; int ieta, iphi, ilayer; /* initialize CalBaseGeometry */ d0_Ref defaultDet = CalBaseGeometry::build_default(); CalGeometer *theGeom = CalGeometer::get_instance(); theGeom->refresh( defaultDet); /* initialize CellShape geometry */ CalShapeGeometer *theShapes = CalShapeGeometer::get_instance(); theShapes->refresh( defaultDet); ofstream fout("CellVectors.txt", ios::out); char sp[2] = {" "}; cout << "Default Detector Geometry" << endl; for(ilayer = mnlyem; ilayer <= mxlych; ilayer++) for(ieta = -mxeta; ieta <= mxeta; ieta++) for(iphi = 1; iphi <= mxphi; iphi++) { CellAddress ca( ieta, iphi, ilayer); if(!ca.exists()) continue; CellCorners celvec(ca); vector edges = celvec.get_edges(); int nedges = edges.size(); fout << "CELL " << ca << sp << nedges << endl; vector::iterator it = edges.begin(); while ( it != edges.end()) { EdgeVector ev = *it; SpaceVector pt1 = ev.point(0); SpaceVector pt2 = ev.point(1); fout << "EDGE " << ev << sp << pt1 << sp << pt2 << endl; it++; } } fout.close(); return 0; }