View Javadoc

1   package org.lcsim.detector;
2   
3   import org.lcsim.detector.identifier.IIdentifier;
4   import org.lcsim.detector.material.IMaterial;
5   import org.lcsim.detector.material.IMaterial.State;
6   import org.lcsim.detector.solids.Box;
7   import org.lcsim.detector.solids.ISolid;
8   import org.lcsim.detector.solids.Tube;
9   
10  public interface IDetectorFactory 
11  {
12      public IRotation3D createRotation3D();
13  	
14      public ITransform3D createTransform3D();
15  	
16      public IDetectorElement createDetectorElement(
17  			String name,
18  			IDetectorElement parent,
19  			IPhysicalVolumePath support,
20  			IIdentifier id);
21  	
22      public ILogicalVolume createLogicalVolume(
23  			String name, 
24  			ISolid solid, 
25  			IMaterial material);	
26  	
27      public IPhysicalVolume createPhysicalVolume(
28  			ITransform3D transform,
29  			String name,
30  			ILogicalVolume logicalVolume,
31  			ILogicalVolume motherLogicalVolume,
32  			int copyNum);		
33  	
34  	public IPhysicalVolumeNavigator createPhysicalVolumeNavigator(IPhysicalVolume world);
35      
36      public IPhysicalVolumeNavigator createPhysicalVolumeNavigator(
37              String name,
38              IPhysicalVolume worldVolume);    
39  	
40      public IMaterial createMaterialElement(
41  			String name,
42  			double Z,
43  			double A,
44  			double density, 
45              State state,
46              double temperature,
47              double pressure);
48  		
49      public IMaterial createMaterialMixture(
50  	  		String name,
51              int nComponents,
52              double density,
53              State state);
54  	
55      public Box createBox(
56  			String name, 
57  			double xHalfLength, 
58  			double yHalfLength, 
59  			double zHalfLength);
60  	
61      public Tube createTube(
62  			String name, 
63  			double innerRadius, 
64  			double outerRadius, 
65  			double zHalfLength);	
66      
67      public IReadout createReadout();    
68  }