Commit in lcsim/src/org/lcsim/recon/pfa/identifier on MAIN
LocalHelixExtrapolator.java+25-41.4 -> 1.5
MJC: Additional extrapolation options

lcsim/src/org/lcsim/recon/pfa/identifier
LocalHelixExtrapolator.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- LocalHelixExtrapolator.java	20 Jun 2008 18:59:02 -0000	1.4
+++ LocalHelixExtrapolator.java	8 Jul 2008 16:49:35 -0000	1.5
@@ -380,6 +380,8 @@
 
     private Hep3Vector extendToBarrelLayer(int layer, Vector<Double> barrel_layering_r, double barrel_zmin, double barrel_zmax )
     {
+	if (!m_barrelValid && !m_endcapValid) { return null; }
+
 	double dphi = (m_track_phi0 - m_track_phi1);
 	while (dphi < -Math.PI) { dphi += 2.0*Math.PI; }
 	while (dphi > Math.PI) { dphi -= 2.0*Math.PI; }
@@ -451,6 +453,8 @@
 
     private Hep3Vector extendToEndcapLayer(int layer, Vector<Double> endcap_layering_z, double endcap_rmin, double endcap_rmax ) 
     {
+	if (!m_barrelValid && !m_endcapValid) { return null; }
+
 	double dphi = (m_track_phi0 - m_track_phi1);
 	while (dphi < -Math.PI) { dphi += 2.0*Math.PI; }
 	while (dphi > Math.PI) { dphi -= 2.0*Math.PI; }
@@ -480,9 +484,9 @@
     /** Assumes extrapolation has already been done. */
     public Hep3Vector extendToECALLayer(int layer) {
 	if (m_barrelValid) {
-	    return extendToBarrelLayer(layer, m_ECAL_barrel_layering_r, m_ECAL_barrel_zmin, m_ECAL_barrel_zmax);
+	    return extendToECALBarrelLayer(layer);
 	} else if (m_endcapValid) {
-	    return extendToEndcapLayer(layer, m_ECAL_endcap_layering_z, m_ECAL_endcap_rmin, m_ECAL_endcap_rmax);
+	    return extendToECALEndcapLayer(layer);
 	} else {
 	    // No solution
 	    return null;
@@ -492,12 +496,29 @@
     /** Assumes extrapolation has already been done. */
     public Hep3Vector extendToHCALLayer(int layer) {
 	if (m_barrelValid) {
-	    return extendToBarrelLayer(layer, m_HCAL_barrel_layering_r, m_HCAL_barrel_zmin, m_HCAL_barrel_zmax);
+	    return extendToHCALBarrelLayer(layer);
 	} else if (m_endcapValid) {
-	    return extendToEndcapLayer(layer, m_HCAL_endcap_layering_z, m_HCAL_endcap_rmin, m_HCAL_endcap_rmax);
+	    return extendToHCALEndcapLayer(layer);
 	} else {
 	    // No solution
 	    return null;
 	}
     }
+
+    /** Assumes extrapolation has already been done. */
+    public Hep3Vector extendToECALBarrelLayer(int layer) {
+	return extendToBarrelLayer(layer, m_ECAL_barrel_layering_r, m_ECAL_barrel_zmin, m_ECAL_barrel_zmax);
+    }
+    /** Assumes extrapolation has already been done. */
+    public Hep3Vector extendToECALEndcapLayer(int layer) {
+	return extendToEndcapLayer(layer, m_ECAL_endcap_layering_z, m_ECAL_endcap_rmin, m_ECAL_endcap_rmax);
+    }
+    /** Assumes extrapolation has already been done. */
+    public Hep3Vector extendToHCALBarrelLayer(int layer) {
+	return extendToBarrelLayer(layer, m_HCAL_barrel_layering_r, m_HCAL_barrel_zmin, m_HCAL_barrel_zmax);
+    }
+    /** Assumes extrapolation has already been done. */
+    public Hep3Vector extendToHCALEndcapLayer(int layer) {
+	return extendToEndcapLayer(layer, m_HCAL_endcap_layering_z, m_HCAL_endcap_rmin, m_HCAL_endcap_rmax);
+    }
 }
CVSspam 0.2.8