public class MaterialManager extends Object
MaterialManager
class to handle Subdetector types. This class should now group
together SiTrackerEndcap2 layers correctly.Modifier and Type | Class and Description |
---|---|
static class |
MaterialManager.BarrelLayerVolumeGroup
Get the path groupings for barrel Subdetectors with physical layers one level below top.
|
static class |
MaterialManager.EndcapVolumeGrouper
Default VolumeGroup for endcaps with physical layers.
|
static class |
MaterialManager.PolyconeSupportVolumeGrouper
Get the path groups for a PolyconeSupport, which is a single path.
|
static class |
MaterialManager.SiTrackerEndap2VolumeGrouper
Get the path groups for SiTrackerEndcap2, which has modules placed directly in the tracking volume.
|
static class |
MaterialManager.SiTrackerFixedTarget2VolumeGrouper
Get the path groups for SiTrackerFixedTarget2
|
static interface |
MaterialManager.SubdetectorVolumeGrouper
Interface for getting the path groupings for different Subdetector types.
|
(package private) static class |
MaterialManager.UniquePV
A UniquePV is a wrapper around IPhysicalVolumePath which provides some convenience methods and caches
transformations.
|
(package private) class |
MaterialManager.VolumeGroupInfo
A "struct" holding geometry information about lists of physical volumes
|
(package private) class |
MaterialManager.VolumeInfo
A "struct" holding geometry information about a single physical volume
|
Modifier and Type | Field and Description |
---|---|
private static ITransform3D |
_detToTrk |
private List<MaterialCylinder> |
_matcyl |
private List<MaterialDisk> |
_matdsk |
private List<MaterialPolyconeSegment> |
_matpc |
private List<MaterialXPlane> |
_matxpl |
private static double |
_rmax |
private boolean |
_useDefaultXPlanes |
private static double |
_zmax |
protected boolean |
DEBUG |
private HashMap<ISolid,Double> |
solid_vol_map |
protected Map<Class,MaterialManager.SubdetectorVolumeGrouper> |
subdetGroups
VolumeGroup handlers for Subdetector types.
|
private static boolean |
TUBE_ONLY |
Constructor and Description |
---|
MaterialManager()
Creates a new instance of MaterialManager
|
private static ITransform3D _detToTrk
private static double _rmax
private static double _zmax
private static final boolean TUBE_ONLY
private final List<MaterialCylinder> _matcyl
private final List<MaterialDisk> _matdsk
private final List<MaterialPolyconeSegment> _matpc
private final List<MaterialXPlane> _matxpl
private boolean _useDefaultXPlanes
protected boolean DEBUG
protected final Map<Class,MaterialManager.SubdetectorVolumeGrouper> subdetGroups
public MaterialManager()
public static double getRMax()
public static double getZMax()
private static List<MaterialManager.UniquePV> makeUniquePVList(IPhysicalVolumeNavigator nav, IPhysicalVolume trackingVol, List<String> paths)
private void addVolumeGroupInfo(List<MaterialManager.UniquePV> uniqPVs, MaterialManager.VolumeGroupInfo vgi)
MaterialManager.UniquePV
objects.uniqPVs
- vgi
- public void buildModel(Detector det)
public List<MaterialCylinder> getMaterialCylinders()
public List<MaterialDisk> getMaterialDisks()
public List<MaterialPolyconeSegment> getMaterialPolyconeSegments()
public List<MaterialXPlane> getMaterialXPlanes()
private double getVolumeOfSolid(ISolid solid)
private void handlePolycone(IPhysicalVolume pv)
private boolean isCylinder(double rmin, double rmax, double zmin, double zmax)
private boolean isXPlane(double xmin, double xmax)
private MaterialManager.VolumeInfo performVolumeCalculations(MaterialManager.UniquePV pv)
private MaterialManager.VolumeGroupInfo performVolumeGroupCalculations(List<MaterialManager.UniquePV> volgroup)
public void setDebug(boolean debug)
debug
- True if debugging should be enabled; false if not.public void setDefaultXPlaneUsage(boolean useDefault)
public void setTransform(ITransform3D transform)
private void setupTrackingVolume(Detector det)
det
- The Detector.Copyright © 2016 Linear Collider Detector (LCD). All rights reserved.