lcsim/src/org/lcsim/recon/util
diff -u -r1.3 -r1.4
--- CalorimeterInformation.java 4 Feb 2010 21:09:37 -0000 1.3
+++ CalorimeterInformation.java 8 Mar 2010 19:41:20 -0000 1.4
@@ -32,6 +32,7 @@
private String[] digicollname;
private int[] sysid;
private int[] nlayers;
+ private int[] nsides;
private double[] rmin;
private double[] rmax;
private double[] zmin;
@@ -84,6 +85,7 @@
digicollname = new String[ncal];
sysid = new int[ncal];
nlayers = new int[ncal];
+ nsides = new int[ncal];
rmin = new double[ncal];
rmax = new double[ncal];
zmin = new double[ncal];
@@ -135,6 +137,7 @@
nlam[i].add(new Double(xlam/10.));
de[i].add(new Double(xde));
}
+ nsides[i] = 1;
if(s.isBarrel())
{
if(s instanceof CylindricalBarrelCalorimeter)
@@ -154,6 +157,7 @@
rmax[i] = b.getOuterR();
zmin[i] = b.getZMin();
zmax[i] = b.getZMax();
+ nsides[i] = ((AbstractPolyhedraCalorimeter) s).getNumberOfSides();
}
else if(s instanceof EcalBarrel)
{
@@ -163,6 +167,7 @@
rmax[i] = b.getOuterR();
zmin[i] = b.getZMin();
zmax[i] = b.getZMax();
+ nsides[i] = ((AbstractPolyhedraCalorimeter) s).getNumberOfSides();
}
else
{
@@ -189,6 +194,7 @@
rmax[i] = e.getOuterR();
zmin[i] = e.getZMin();
zmax[i] = e.getZMax();
+ nsides[i] = ((AbstractPolyhedraCalorimeter) s).getNumberOfSides();
}
else if(s instanceof PolyhedraEndcapCalorimeter2)
{
@@ -198,6 +204,7 @@
rmax[i] = e.getOuterR();
zmin[i] = e.getZMin();
zmax[i] = e.getZMax();
+ nsides[i] = ((AbstractPolyhedraCalorimeter) s).getNumberOfSides();
}
else
{
@@ -424,6 +431,32 @@
/**
*
* @param String representation of Calorimeter type
+ * @return # sides
+ */
+ public int getNSides(String s)
+ {
+ return getNSides(Calorimeter.CalorimeterType.fromString(s));
+ }
+ /**
+ *
+ * @param CalorimetType representation from
+ * Calorimeter.CalorimeterType
+ * @return # sides
+ */
+ public int getNSides(Calorimeter.CalorimeterType s)
+ {
+ Integer ind = indexmap.get(s);
+ if(ind == null)
+ {
+ System.out.println("Type "+s+" did not map to a CalorimeterType");
+ return -1;
+ }
+ index = ind.intValue();
+ return nsides[index];
+ }
+ /**
+ *
+ * @param String representation of Calorimeter type
* @return the maximum radius
*/
public double getRMax(String s)