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

changes

parent ea7c9971
Branches
Tags
No related merge requests found
Pipeline #7951 failed
<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>
...@@ -59,3 +58,5 @@ ...@@ -59,3 +58,5 @@
<plugins> <plugins>
</plugins> </plugins>
</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
...@@ -25,11 +25,8 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens ...@@ -25,11 +25,8 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
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