Skip to content
Snippets Groups Projects
Commit a76a641a authored by Marshall Scott's avatar Marshall Scott
Browse files

Testing .cpp with w/o using xml

parent 2b4ad3ed
Branches
Tags
No related merge requests found
This commit is part of merge request !12. Comments created here will be created in the context of that merge request.
...@@ -20,11 +20,6 @@ ...@@ -20,11 +20,6 @@
<!-- Define the dimensions of the world volume --> <!-- Define the dimensions of the world volume -->
<define> <define>
<constant name="world_side" value="50*m"/>
<constant name="world_x" value="world_side"/>
<constant name="world_y" value="world_side"/>
<constant name="world_z" value="world_side"/>
<constant name="ci_GEM_id" value="1"> <constant name="ci_GEM_id" value="1">
<constant name="ci_GEM_rin" value="10 * cm"> <constant name="ci_GEM_rin" value="10 * cm">
<constant name="ci_GEM_rout" value="95 * cm"> <constant name="ci_GEM_rout" value="95 * cm">
......
...@@ -7,6 +7,7 @@ using namespace dd4hep; ...@@ -7,6 +7,7 @@ using namespace dd4hep;
static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens) static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens)
{ {
/*
xml::DetElement detElem = handle; xml::DetElement detElem = handle;
std::string detName = detElem.nameStr(); std::string detName = detElem.nameStr();
int detID = detElem.id(); int detID = detElem.id();
...@@ -20,15 +21,17 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens ...@@ -20,15 +21,17 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
double Z = dims.z(); double Z = dims.z();
int Nlayers = dims.nlayers(); int Nlayers = dims.nlayers();
Material mat = desc.material(detElem.materialStr()); Material mat = desc.material(detElem.materialStr());
Material air = desc.material("Air");
Tube ci_GEM_GVol_Solid(RIn, ROut, SizeZ / 2., 0., 360 * deg); Tube ci_GEM_GVol_Solid(RIn, ROut, SizeZ / 2., 0., 360 * deg);
Volume detVol("ci_GEM_GVol_Logic", ci_GEM_GVol_Solid, mat); Volume detVol("ci_GEM_GVol_Logic", ci_GEM_GVol_Solid, air);
detVol.setVisAttributes(desc.visAttributes(detElem.visStr())); detVol.setVisAttributes(desc.visAttributes(detElem.visStr()));
DetElement det(detName, detID); DetElement det(detName, detID);
Volume motherVol = desc.pickMotherVolume(det); Volume motherVol = desc.pickMotherVolume(det);
Transform3D tr(RotationZYX(0., 0., 0.), Position(0., 0., ShiftZ)); Transform3D tr(RotationZYX(0., 0., 0.), Position(0., 0., ShiftZ));
PlacedVolume detPV = motherVol.placeVolume(detVol, tr); PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
det.setPlacement(detPV);
//Adding layers to placed volume //Adding layers to placed volume
...@@ -44,6 +47,56 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens ...@@ -44,6 +47,56 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
det.setPlacement(detPV); det.setPlacement(detPV);
return det;
*/
xml::DetElement detElem = handle;
std::string detName = "ci_GEM";
int detID = 1;
xml::Component dims = detElem.dimensions();
double SizeZ = 30. * dd4hep::cm; // Size in Z direction
double ROut = 95. * dd4hep::cm; // Outer radius
double RIn = 10. * dd4hep::cm; // Inner radius
double ShiftZ = 0. * dd4hep::cm;
double X = 0. * dd4hep::cm;
double Z = 0. * dd4hep::cm;
int Nlayers = 8;
Material mat = desc.material(detElem.materialStr());
Material air = desc.material("Air");
DetElement det(detName, detID);
Volume motherVol = desc.pickMotherVolume(det);
Tube ci_GEM_GVol_Solid(RIn, ROut, SizeZ / 2., 0., 360 * deg);
Volume detVol("ci_GEM_GVol_Logic", ci_GEM_GVol_Solid, air);
PlacedVolume detPV = motherVol.placeVolume(detVol, RotationZYX(0,0,0));
detPV.addPhysVolID("system", detID);
det.setPlacement(detPV);
//detVol.setVisAttributes(desc.visAttributes(detElem.visStr()));
//Adding layers to placed volume
int layerNum = 0;
for (cml_coll_t c(detElem, _U(layer)); c; c++)
{
xml_comp_t x_layer = c;
string layer_name = detName + _toString(layerNum, "_layer%d");
double lrmin, lrmax, lz;
lrmin = RIn + (1.0 + 0.5 * layerNum) * dd4hep::cm;
lrmax = ROut + (-25.0 + 2.0 * layerNum) * dd4hep::cm;
lz = sizez * 0.5 + (5.0 + 3. * layerNum) * dd4hep::cm;
Volume layer_vol(layer_name, Tube(lrmin, lrmax, lz ), mat);
Position layer_pos(0, 0, lz);
DetElement layer(det, layer_name, detID);
//layer.setAttributes(desc, layer_vol, , , );//(region, limits, visable).
PlacedVolume layer_phv = detVol.placeVolume(layer_vol, layer_pos);
layer_phv.addPhysVolID("layer", layerNum);
layer.setPlacement(layer_phv);
layerNum++;
}
return det; return det;
} }
// clang-format off // clang-format off
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment