Commit in GeomConverter on MAIN | |||
src/org/lcsim/geometry/compact/converter/lcdd/HPSMuonCalorimeter2.java | +55 | added 1.1 | |
testResources/org/lcsim/geometry/subdetector/HPSMuonCalorimeter2Test.xml | +57 | added 1.1 | |
+112 |
skeleton code for muon detector
diff -N HPSMuonCalorimeter2.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ HPSMuonCalorimeter2.java 3 Jun 2013 21:25:49 -0000 1.1 @@ -0,0 +1,55 @@
+package org.lcsim.geometry.compact.converter.lcdd; + +import org.jdom.Element; +import org.jdom.JDOMException; +import org.lcsim.geometry.compact.converter.lcdd.util.LCDD; +import org.lcsim.geometry.compact.converter.lcdd.util.SensitiveDetector; +import org.lcsim.geometry.compact.converter.lcdd.util.Volume; + +public class HPSMuonCalorimeter2 extends LCDDSubdetector +{ + HPSMuonCalorimeter2(Element e) throws JDOMException + { + super(e); + } + + void addToLCDD(LCDD lcdd, SensitiveDetector sens) throws JDOMException + { + String name = node.getAttributeValue("name"); + System.out.println("HPSMuonCalorimeter2.addToLCDD - " + name); + int id = node.getAttribute("id").getIntValue(); + Volume mother = lcdd.pickMotherVolume(this); + + Element parameters = node.getChild("parameters"); + if (parameters == null) { + throw new RuntimeException("parameters element missing"); + } + + double frontFaceToTarget = parameters.getAttribute("front_face_to_target").getDoubleValue(); + double deadZoneAngle = parameters.getAttribute("dead_zone_angle").getDoubleValue(); + double stripThickness = parameters.getAttribute("strip_thickness").getDoubleValue(); + double stripSpacingZ = parameters.getAttribute("strip_spacing_z").getDoubleValue(); + double stripSpacingY = parameters.getAttribute("strip_spacing_y").getDoubleValue(); + double stripSpacingX = parameters.getAttribute("strip_spacing_x").getDoubleValue(); + + System.out.println("frontFaceToTarget = " + frontFaceToTarget); + System.out.println("deadZoneAngle = " + deadZoneAngle); + System.out.println("stripThickness = " + stripThickness); + System.out.println("stripSpacingX = " + stripSpacingX); + System.out.println("stripSpacingY = " + stripSpacingY); + System.out.println("stripSpacingZ = " + stripSpacingZ); + + for (Object layerObject : node.getChildren("layer")) { + Element layerElement = (Element)layerObject; + int layerId = layerElement.getAttribute("id").getIntValue(); + System.out.println("layer = " + layerId); + for (Object sliceObject : layerElement.getChildren("slice")) { + Element sliceElement = (Element)sliceObject; + if (sliceElement.getAttribute("thickness") != null) { + double thickness = sliceElement.getAttribute("thickness").getDoubleValue(); + System.out.println("slice thickness = " + thickness); + } + } + } + } +}
diff -N HPSMuonCalorimeter2Test.xml --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ HPSMuonCalorimeter2Test.xml 3 Jun 2013 21:25:49 -0000 1.1 @@ -0,0 +1,57 @@
+<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" + xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> + + <info name="HPSMuonCalorimeter2Test" /> + + <define> + + <!-- world volume --> + <constant name="world_side" value="10000.0*cm" /> + <constant name="world_x" value="world_side" /> + <constant name="world_y" value="world_side" /> + <constant name="world_z" value="world_side" /> + + <!-- tracking region --> + <constant name="tracking_region_radius" value="5.0*cm" /> + <constant name="tracking_region_min" value="0.0*cm" /> + <constant name="tracking_region_zmax" value="100.0*cm" /> + + </define> + + <materials> + <material name="Scintillator"> + <D value="1.032" unit="g/cm3"/> + <composite n="9" ref="C"/> + <composite n="10" ref="H"/> + </material> + </materials> + + <detectors> + <detector id="2" name="MUON" type="HPSMuonCalorimeter2" insideTrackingVolume="false" readout="MUON_HITS"> + <parameters front_face_to_target="177.0*cm" + dead_zone_angle="0.015" + strip_thickness="1.0*cm" + strip_spacing_z="1.0" + strip_spacing_y="0.1" + strip_spacing_x="0.1" + strip_spacing_z_outer="1.0*cm" + center_x="0." /> + + <layer id="1"> + <slice material="Iron" sensitive="false" thickness="30.0*cm" /> + <slice material="Scintillator" sensitive="true" /> + <slice material="Scintillator" sensitive="true" /> + </layer> + + </detector> + </detectors> + + <readouts> + <readout name="MUON_HITS"> + <segmentation type="GridXYZ" gridSizeX="5.0" gridSizeY="5.0" gridSizeZ="0.0" /> + <id>system:6,side:-2,layer:4,slice:3,x:32:-8,y:-6</id> + </readout> + </readouts> + +</lccdd>
\ No newline at end of file
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1