diff --git a/compact/ci_GEM.xml b/compact/ci_GEM.xml index 7e88f369e40a31b38f3e911801fa61495b504db6..9fe3052ecf0f194c4ec272f2067d1f576cf1e1eb 100644 --- a/compact/ci_GEM.xml +++ b/compact/ci_GEM.xml @@ -1,7 +1,6 @@ <lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> -> <!-- Some information about detector --> <info name="Central Ion GEM" title="Central Ion GEM" @@ -16,8 +15,8 @@ <includes> </includes> - <!-- Define the dimensions of the world volume <define> + <!-- <constant name="ci_GEM_id" value="1"> <constant name="ci_GEM_rin" value="10 * cm"> <constant name="ci_GEM_rout" value="95 * cm"> @@ -26,8 +25,8 @@ <constant name="ci_GEM_posz" value="0 * cm"> <constant name="ci_GEM_posx" value="0 * cm"> <constant name="ci_GEM_nlayers" value="8"> + --> </define> - --> <limits> </limits> @@ -58,4 +57,6 @@ </detectors> <plugins> - </plugins> \ No newline at end of file + </plugins> + +</lccdd> \ No newline at end of file diff --git a/src/ci_GEM.cpp b/src/ci_GEM.cpp index 60cb1d0b3442ffb88a0556038d7f8d31a4cba0c8..415721e2ca5e3741afd7f18832f3192f04fdca4d 100644 --- a/src/ci_GEM.cpp +++ b/src/ci_GEM.cpp @@ -52,6 +52,7 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens xml::DetElement detElem = handle; std::string detName = "ci_GEM"; int detID = 1; + xml_comp_t x_layer = detElem.child(_U(layer)); xml::Component dims = detElem.dimensions(); double SizeZ = 30. * dd4hep::cm; // Size in Z direction @@ -64,17 +65,12 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens 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 - xml_comp_t x_layer = detElem.child(_U(layer)); for (int lNum = 0; lNum < Nlayers; lNum++){ std::string layer_name = detName + _toString(lNum, "_layer%d"); double lrmin, lrmax, lz; @@ -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; Volume layer_vol(layer_name, Tube(lrmin, lrmax, 1.0 * dd4hep::cm), mat); Position layer_pos(0, 0, lz); - DetElement layer(det, layer_name, detID); - layer_vol.setVisAttributes(desc.visAttributes(detElem.visStr())); + //DetElement layer(x_layer, layer_name, detID); + //layer_vol.setVisAttributes(desc.visAttributes(x_layer.visStr()));//no layer visable attributes //layer.setAttributes(desc, layer_vol, desc.region(), desc.limits(), );//(region, limits, visable). PlacedVolume layer_phv = detVol.placeVolume(layer_vol, layer_pos); 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; } // clang-format off diff --git a/src/ci_HCAL.cpp b/src/ci_HCAL.cpp index 273e8e4d4034fd57b9afbe6497ba8b9c1089bc4c..0efa0cc7485d2350ec4ea69f97fcb52f8f35e30c 100644 --- a/src/ci_HCAL.cpp +++ b/src/ci_HCAL.cpp @@ -10,7 +10,7 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens xml::DetElement detElem = handle; std::string detName = "ci_HCAL"; - int detID = 1000; + int detID = 1; xml::Component dims = detElem.dimensions(); //Envelope volume specs @@ -24,12 +24,9 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens Material mat_air = desc.material("Air"); Material mat_vac = desc.material("Vacuum"); - - 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 - //envelopeVol.setVisAttributes(0.3, 0, 3.0, 0.1); //Layer Specs double det_ROut = ROut - 1. * dd4hep::cm; @@ -43,14 +40,14 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens //detVol.setVisAttributes(0.6, 0, 0.6, 1); - /* //Adding layers to placed detector volume + xml_comp_t x_layer = detElem.child(_U(layer)); for (int lNum = 0; lNum < Nlay; lNum++){ - //xml_comp_t x_layer = c; std::string layer_name = detName + _toString(lNum, "_layer%d"); double layer_Posz = -SizeZ / 2. + (lNum + 1) * det_ThicknessZ + (lNum + 1) * 5. * dd4hep::cm; Volume layer_vol(layer_name, ci_Hcal_detSolid, mat_iron); + layer_vol.setVisAttributes(detElem.visStr()); Position layer_pos(0, 0, layer_Posz); //DetElement layer(envelope_det, layer_name, detID); //layer.setVisAttributes(desc.visAttributes(det.visStr())); @@ -58,14 +55,13 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens PlacedVolume layer_phv = envelopeVol.placeVolume(layer_vol, layer_pos); layer_phv.addPhysVolID("layer", lNum); } - */ + DetElement det(detName, detID); Volume motherVol = desc.pickMotherVolume(det); Transform3D tr(RotationZYX(0,0,0), Position(0, 0, ShiftZ) ); PlacedVolume detPV = motherVol.placeVolume(envelopeVol, tr); det.setPlacement(detPV); - /**/ - //DetElement det(detName, detID); + return det; } // clang-format off