Print

Print


Commit in lcsim/src/org/lcsim/recon/postrecon/leptonID/electron on MAIN
HighPElectronFinder.java+15-71.2 -> 1.3
Use Vlayer where appropriate, get cal info from CalorimeterInformation class

lcsim/src/org/lcsim/recon/postrecon/leptonID/electron
HighPElectronFinder.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- HighPElectronFinder.java	5 Dec 2008 16:41:18 -0000	1.2
+++ HighPElectronFinder.java	8 Mar 2010 19:39:42 -0000	1.3
@@ -31,6 +31,8 @@
 import org.lcsim.util.Driver;
 import org.lcsim.util.loop.LCIODriver;
 import org.lcsim.util.swim.HelixSwimmer;
+import org.lcsim.recon.util.CalorimeterInformation;
+import org.lcsim.geometry.Calorimeter.CalorimeterType;
 import static java.lang.Math.abs;
 import static java.lang.Math.sqrt;
 import static java.lang.Math.acos;
@@ -59,6 +61,8 @@
     double m_ECAL_endcap_z;
     final ParticlePropertyProvider dPPP;
     Map<Track,Cluster> electronTrackClusterMap;
+    protected CalorimeterInformation ci;
+    protected HelixSwimmer helixswim;
     /** Creates a new instance of HighPElectronFinder */
     public HighPElectronFinder() {
         dPPP = ParticlePropertyManager.getParticlePropertyProvider();
@@ -73,13 +77,17 @@
 //	    if(ncnt_in%100 == 1) System.out.println(" ncnt_in= "+ncnt_in+" ncnt= "+ncnt+" eventNumber= "+eventNumber);
         List<Track> tracks = new ArrayList<Track>(event.get(Track.class,"Tracks"));
         List<Cluster> clusters = new ArrayList<Cluster>(event.get(Cluster.class,"Clusters"));
-        Detector thisDetector = event.getDetector();
-        double thisBfield=thisDetector.getFieldMap().getField(new BasicHep3Vector(0,0,0)).magnitude();
-        CylindricalCalorimeter emb = ((CylindricalCalorimeter) thisDetector.getSubdetectors().get("EMBarrel"));
-        CylindricalCalorimeter eme = ((CylindricalCalorimeter) thisDetector.getSubdetectors().get("EMEndcap"));
-        m_ECAL_barrel_r = emb.getLayering().getDistanceToLayerSensorMid(0);
-        m_ECAL_endcap_z = eme.getLayering().getDistanceToLayerSensorMid(0);
-        HelixSwimmer helixswim=new HelixSwimmer(thisBfield);
+        if(ci == null)
+        {
+            ci = CalorimeterInformation.instance();
+            Detector thisDetector = event.getDetector();
+            double thisBfield=thisDetector.getFieldMap().getField(new BasicHep3Vector(0,0,0)).magnitude();
+            Subdetector emb = ci.getSubdetector(CalorimeterType.EM_BARREL);
+            Subdetector eme = ci.getSubdetector(CalorimeterType.EM_ENDCAP);
+            m_ECAL_barrel_r = emb.getLayering().getDistanceToLayerSensorMid(0);
+            m_ECAL_endcap_z = eme.getLayering().getDistanceToLayerSensorMid(0);
+            helixswim=new HelixSwimmer(thisBfield);
+        }
         List<ReconstructedParticle> recoParticles = event.get(ReconstructedParticle.class,"ReconstructedParticles");
         electronTrackClusterMap = new HashMap<Track,Cluster>();
         for(ReconstructedParticle p:recoParticles)
CVSspam 0.2.8