diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/MUCALGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/MUCALGeant4Factory.java index fae838ef7f..813cd1b6ed 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/MUCALGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/MUCALGeant4Factory.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import org.jlab.detector.volume.Geant4Basic; import org.jlab.detector.units.SystemOfUnits.Length; -import org.jlab.detector.volume.G4Pgon; +import org.jlab.detector.volume.G4Pcone; import org.jlab.detector.volume.G4Trd; import org.jlab.detector.volume.G4World; import org.jlab.geom.base.ConstantProvider; @@ -24,7 +24,7 @@ public MUCALGeant4Factory(ConstantProvider provider) { double[] mucal_iradius = {301.0*Length.mm, 72.8*Length.mm, 81.5*Length.mm, 98.7*Length.mm}; double[] mucal_oradius = {301.1*Length.mm, 360.6*Length.mm, 401.0*Length.mm, 98.8*Length.mm}; double[] mucal_zpos_root = {520.0*Length.mm, 625.0*Length.mm, 696.0*Length.mm, 836.0*Length.mm}; - G4Pgon mucalVolume = new G4Pgon("mucalVolume", phiStart, phiTotal, nplanes, nplanes, mucal_zpos_root, mucal_iradius, mucal_oradius); + G4Pcone mucalVolume = new G4Pcone("mucalVolume", phiStart, phiTotal, nplanes, mucal_zpos_root, mucal_iradius, mucal_oradius); mucalVolume.setMother(motherVolume); for (int sector = 1; sector <= 2; sector++) { List layerVolume = createPanel(provider, sector, 1); diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/volume/G4Pcone.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/volume/G4Pcone.java new file mode 100644 index 0000000000..8808549e53 --- /dev/null +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/volume/G4Pcone.java @@ -0,0 +1,31 @@ +package org.jlab.detector.volume; + +import org.jlab.geometry.prim.Pcone; +import org.jlab.detector.units.Measurement; +import org.jlab.detector.units.SystemOfUnits.Angle; +import org.jlab.detector.units.SystemOfUnits.Length; + +/** + * @author pdavies/devita + */ +// FIXME: currently support only polyheadra defintion to gemc geometry +public class G4Pcone extends Geant4Basic { + + public G4Pcone(String name, double phiStart, double phiTotal, int numZPlanes, + double[] zPlane, double[] rInner, double[] rOuter ) { + + super( new Pcone(phiStart, phiTotal, numZPlanes, zPlane, rInner, rOuter)); + setName( name ); + setType("Polycone"); + + Measurement[] dimensions = new Measurement[4+3*numZPlanes]; + dimensions[0] = Angle.value(phiStart); + dimensions[1] = Angle.value(phiTotal); + dimensions[3] = new Measurement(numZPlanes,"counts"); + for(int i=0; i toPolygons() + { + List polygons = new ArrayList<>(); + // just returns something to not cause a NullPointerException + return polygons; + } + + @Override + public PropertyStorage getProperties() + { + return null; + } + +}