Skip to content
Snippets Groups Projects

Resolve "Implement ci_GEM"

Merged Marshall Scott requested to merge 20-implement-ci_gem into master
2 files
+ 15
18
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 13
16
@@ -16,37 +16,34 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
double ROut = dims.rmax(); // Outer radius
double RIn = dims.rmin(); // Inner radius
double ShiftZ = dims.delta();
double PosX = dims.posx();
double PosZ = dims.posz();
double X = dims.x();
double Z = dims.z();
int Nlayers = dims.nlayers();
Material mat = desc.material(detElem.materialStr());
Tube envelope(RIn, ROut, SizeZ, 0, 360 * deg);
//Volume envelopeVol(detName + "_envelope", envelope, det.;
Tube ci_GEM_GVol_Solid(RIn, ROut, SizeZ / 2., 0., 360 * deg);
Volume detVol("ci_GEM_GVol_Logic", ci_GEM_GVol_Solid, mat);
detVol.setVisAttributes(desc.visAttributes(detElem.visStr()));
DetElement det(detName, detID);
Volume motherVol = desc.pickMotherVolume(det);
Transform3D tr(RotationZYX(0., 0., 0.), Position(0., 0., ShiftZ));
PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
//Adding layers to placed volume
for (cml_coll_t c(detElem, _U(layer)); c; c++)
{
xml_comp_t x_layer = c;
string layer_name = detName + _toString(c.id(), "_layer%d");
Volume layer_vol(layer_name, Tube(c.rmin(), c.rmax(), c.z() ), mat );
Position layer_pos(0, 0, fnz);
pv = envelopeVol.placeVolume(layer_vol, layer_pos);
pv.addPhysVolID("layer", c.id() );
layer_vol.
Position layer_pos(0, 0, 0);
detPV.placeVolume(layer_vol, layer_pos);
}
detVol.setVisAttributes(desc.visAttributes(detElem.visStr()));
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);
return det;
}
// clang-format off
Loading