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

changes

parent ea7c9971
No related branches found
No related tags found
No related merge requests found
Pipeline #7951 failed
This commit is part of merge request !12. Comments created here will be created in the context of that merge request.
<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" <lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
>
<!-- Some information about detector --> <!-- Some information about detector -->
<info name="Central Ion GEM" title="Central Ion GEM" <info name="Central Ion GEM" title="Central Ion GEM"
...@@ -16,8 +15,8 @@ ...@@ -16,8 +15,8 @@
<includes> <includes>
</includes> </includes>
<!-- Define the dimensions of the world volume
<define> <define>
<!--
<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">
...@@ -26,8 +25,8 @@ ...@@ -26,8 +25,8 @@
<constant name="ci_GEM_posz" value="0 * cm"> <constant name="ci_GEM_posz" value="0 * cm">
<constant name="ci_GEM_posx" value="0 * cm"> <constant name="ci_GEM_posx" value="0 * cm">
<constant name="ci_GEM_nlayers" value="8"> <constant name="ci_GEM_nlayers" value="8">
-->
</define> </define>
-->
<limits> <limits>
</limits> </limits>
...@@ -58,4 +57,6 @@ ...@@ -58,4 +57,6 @@
</detectors> </detectors>
<plugins> <plugins>
</plugins> </plugins>
\ No newline at end of file
</lccdd>
\ No newline at end of file
...@@ -52,6 +52,7 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens ...@@ -52,6 +52,7 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
xml::DetElement detElem = handle; xml::DetElement detElem = handle;
std::string detName = "ci_GEM"; std::string detName = "ci_GEM";
int detID = 1; int detID = 1;
xml_comp_t x_layer = detElem.child(_U(layer));
xml::Component dims = detElem.dimensions(); xml::Component dims = detElem.dimensions();
double SizeZ = 30. * dd4hep::cm; // Size in Z direction double SizeZ = 30. * dd4hep::cm; // Size in Z direction
...@@ -64,17 +65,12 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens ...@@ -64,17 +65,12 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
Material mat = desc.material(detElem.materialStr()); Material mat = desc.material(detElem.materialStr());
Material air = desc.material("Air"); 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); Tube ci_GEM_GVol_Solid(RIn, ROut, SizeZ / 2., 0., 360 * deg);
Volume detVol("ci_GEM_GVol_Logic", ci_GEM_GVol_Solid, air); Volume detVol("ci_GEM_GVol_Logic", ci_GEM_GVol_Solid, air);
PlacedVolume detPV = motherVol.placeVolume(detVol, RotationZYX(0,0,0)); detVol.setVisAttributes(desc.visAttributes(detElem.visStr()));
detPV.addPhysVolID("system", detID);
det.setPlacement(detPV);
//Adding layers to placed volume //Adding layers to placed volume
xml_comp_t x_layer = detElem.child(_U(layer));
for (int lNum = 0; lNum < Nlayers; lNum++){ for (int lNum = 0; lNum < Nlayers; lNum++){
std::string layer_name = detName + _toString(lNum, "_layer%d"); std::string layer_name = detName + _toString(lNum, "_layer%d");
double lrmin, lrmax, lz; double lrmin, lrmax, lz;
...@@ -83,14 +79,20 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens ...@@ -83,14 +79,20 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
lz = SizeZ * 0.5 + (5.0 + 3. * lNum) * dd4hep::cm; lz = SizeZ * 0.5 + (5.0 + 3. * lNum) * dd4hep::cm;
Volume layer_vol(layer_name, Tube(lrmin, lrmax, 1.0 * dd4hep::cm), mat); Volume layer_vol(layer_name, Tube(lrmin, lrmax, 1.0 * dd4hep::cm), mat);
Position layer_pos(0, 0, lz); Position layer_pos(0, 0, lz);
DetElement layer(det, layer_name, detID); //DetElement layer(x_layer, layer_name, detID);
layer_vol.setVisAttributes(desc.visAttributes(detElem.visStr())); //layer_vol.setVisAttributes(desc.visAttributes(x_layer.visStr()));//no layer visable attributes
//layer.setAttributes(desc, layer_vol, desc.region(), desc.limits(), );//(region, limits, visable). //layer.setAttributes(desc, layer_vol, desc.region(), desc.limits(), );//(region, limits, visable).
PlacedVolume layer_phv = detVol.placeVolume(layer_vol, layer_pos); PlacedVolume layer_phv = detVol.placeVolume(layer_vol, layer_pos);
layer_phv.addPhysVolID("layer", lNum); layer_phv.addPhysVolID("layer", lNum);
layer.setPlacement(layer_phv);
} }
DetElement det(detName, detID);
Volume motherVol = desc.pickMotherVolume(det);
Transform3D tr(RotationZYX(0.0, 0.0, 0.0), Position(0.0, 0.0, 0.0));
PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
detPV.addPhysVolID("system", detID);
det.setPlacement(detPV);
return det; return det;
} }
// clang-format off // clang-format off
......
...@@ -10,7 +10,7 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens ...@@ -10,7 +10,7 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
xml::DetElement detElem = handle; xml::DetElement detElem = handle;
std::string detName = "ci_HCAL"; std::string detName = "ci_HCAL";
int detID = 1000; int detID = 1;
xml::Component dims = detElem.dimensions(); xml::Component dims = detElem.dimensions();
//Envelope volume specs //Envelope volume specs
...@@ -24,12 +24,9 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens ...@@ -24,12 +24,9 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
Material mat_air = desc.material("Air"); Material mat_air = desc.material("Air");
Material mat_vac = desc.material("Vacuum"); Material mat_vac = desc.material("Vacuum");
Tube ci_Hcal_Solid(RIn, ROut, SizeZ / 2., 0., 360 * dd4hep::deg); Tube ci_Hcal_Solid(RIn, ROut, SizeZ / 2., 0., 360 * dd4hep::deg);
Volume envelopeVol("ci_Hcal_Logic", ci_Hcal_Solid, mat_vac);//check that this one is iron Volume envelopeVol("ci_Hcal_Logic", ci_Hcal_Solid, mat_vac);//check that this one is iron
//envelopeVol.setVisAttributes(0.3, 0, 3.0, 0.1);
//Layer Specs //Layer Specs
double det_ROut = ROut - 1. * dd4hep::cm; double det_ROut = ROut - 1. * dd4hep::cm;
...@@ -43,14 +40,14 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens ...@@ -43,14 +40,14 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
//detVol.setVisAttributes(0.6, 0, 0.6, 1); //detVol.setVisAttributes(0.6, 0, 0.6, 1);
/*
//Adding layers to placed detector volume //Adding layers to placed detector volume
xml_comp_t x_layer = detElem.child(_U(layer));
for (int lNum = 0; lNum < Nlay; lNum++){ for (int lNum = 0; lNum < Nlay; lNum++){
//xml_comp_t x_layer = c;
std::string layer_name = detName + _toString(lNum, "_layer%d"); std::string layer_name = detName + _toString(lNum, "_layer%d");
double layer_Posz = -SizeZ / 2. + (lNum + 1) * det_ThicknessZ + (lNum + 1) * 5. * dd4hep::cm; double layer_Posz = -SizeZ / 2. + (lNum + 1) * det_ThicknessZ + (lNum + 1) * 5. * dd4hep::cm;
Volume layer_vol(layer_name, ci_Hcal_detSolid, mat_iron); Volume layer_vol(layer_name, ci_Hcal_detSolid, mat_iron);
layer_vol.setVisAttributes(detElem.visStr());
Position layer_pos(0, 0, layer_Posz); Position layer_pos(0, 0, layer_Posz);
//DetElement layer(envelope_det, layer_name, detID); //DetElement layer(envelope_det, layer_name, detID);
//layer.setVisAttributes(desc.visAttributes(det.visStr())); //layer.setVisAttributes(desc.visAttributes(det.visStr()));
...@@ -58,14 +55,13 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens ...@@ -58,14 +55,13 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
PlacedVolume layer_phv = envelopeVol.placeVolume(layer_vol, layer_pos); PlacedVolume layer_phv = envelopeVol.placeVolume(layer_vol, layer_pos);
layer_phv.addPhysVolID("layer", lNum); layer_phv.addPhysVolID("layer", lNum);
} }
*/
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(envelopeVol, tr); PlacedVolume detPV = motherVol.placeVolume(envelopeVol, tr);
det.setPlacement(detPV); det.setPlacement(detPV);
/**/
//DetElement det(detName, detID);
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