lcsim/src/org/lcsim/recon/postrecon/leptonID/electron
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)