GeomConverter/src/org/lcsim/geometry/segmentation
diff -u -r1.1 -r1.2
--- BarrelCylinderSegmentationBase.java 7 Dec 2005 10:39:37 -0000 1.1
+++ BarrelCylinderSegmentationBase.java 7 Feb 2006 17:10:36 -0000 1.2
@@ -1,7 +1,5 @@
/*
- * BarrelCylinderSegmentationBase.java
- *
- * 20051124 - G.Lima - Created
+ * BarrelCylinderSegmentationBase.java 20051124 - G.Lima - Created
*/
package org.lcsim.geometry.segmentation;
@@ -11,11 +9,12 @@
import org.lcsim.geometry.layer.LayerStack;
/**
- * Base implementation of a barrel segmentation, it provides common
- * code implementation.
- *
+ * Base implementation of a barrel segmentation, it provides common code
+ * implementation.
+ *
* @author Guilherme Lima
- * @versoin $Id: BarrelCylinderSegmentationBase.java,v 1.1 2005/12/07 10:39:37 lima Exp $
+ * @versoin $Id: BarrelCylinderSegmentationBase.java,v 1.1 2005/12/07 10:39:37
+ * lima Exp $
*/
public abstract class BarrelCylinderSegmentationBase extends SegmentationBase
{
@@ -26,38 +25,44 @@
/**
* Return the layer number based on the radial distance to cylinder axis.
- *
- * @param r radial distance to cylinder axis
- * @return layer number of layer corresponding to that distance
- * (may be either in absorber or live material)
+ *
+ * @param r
+ * radial distance to cylinder axis
+ * @return layer number of layer corresponding to that distance (may be
+ * either in absorber or live material)
*/
- public int getLayerBin(double r) {
- // In order to be general, we should not assume that all
- // layers have the same thickness. Therefore, one has to
- // guess the starting layer (based on average thickness), and
- // then navigate through layers until one finds the right one
- double depth = r - getRMin();
- double mean_t = (getRMax()-getRMin()) / getNumberOfLayers();
+ public int getLayerBin(double r)
+ {
+ // In order to be general, we should not assume that all
+ // layers have the same thickness. Therefore, one has to
+ // guess the starting layer (based on average thickness), and
+ // then navigate through layers until one finds the right one
+ double depth = r - getRMin();
+ double mean_t = (getRMax() - getRMin()) / getNumberOfLayers();
- int ilay = (int)Math.floor( depth / mean_t );
- LayerStack stack = getLayering().getLayers();
- Layer layer = stack.getLayer(ilay);
- double depHi = stack.getThicknessToLayerBack(ilay);
- double depLo = depHi - layer.getThickness();
- for(;;) {
- if( depth>depLo && depth<=depHi ) return ilay;
- if( depth<=depLo ) {
- --ilay;
- depHi = depLo;
- layer = stack.getLayer(ilay);
- depLo -= layer.getThickness();
- }
- if( depth>depHi ) {
- ++ilay;
- depLo = depHi;
- layer = stack.getLayer(ilay);
- depHi += layer.getThickness();
- }
- }
+ int ilay = (int) Math.floor(depth / mean_t);
+ LayerStack stack = getLayering().getLayers();
+ Layer layer = stack.getLayer(ilay);
+ double depHi = stack.getThicknessToLayerBack(ilay);
+ double depLo = depHi - layer.getThickness();
+ for (;;)
+ {
+ if (depth > depLo && depth <= depHi)
+ return ilay;
+ if (depth <= depLo)
+ {
+ --ilay;
+ depHi = depLo;
+ layer = stack.getLayer(ilay);
+ depLo -= layer.getThickness();
+ }
+ if (depth > depHi)
+ {
+ ++ilay;
+ depLo = depHi;
+ layer = stack.getLayer(ilay);
+ depHi += layer.getThickness();
+ }
+ }
}
}