lcsim/src/org/lcsim/recon/pfa/identifier
diff -u -r1.6 -r1.7
--- HelixExtrapolator.java 28 Jan 2010 18:33:40 -0000 1.6
+++ HelixExtrapolator.java 3 Feb 2010 19:42:23 -0000 1.7
@@ -105,83 +105,55 @@
m_HCAL_barrel_zmax = ci.getZMax("HAD_BARREL");
m_MCAL_barrel_zmax = ci.getZMax("MUON_BARREL");
Subdetector s = ci.getSubdetector("EM_BARREL");
- double rm = ci.getRMin("EM_BARREL");
+ double ebr0 = ci.getRMin("EM_BARREL");
if(s instanceof CylindricalBarrelCalorimeter)
{
- m_ECAL_barrel_r = s.getLayering().getDistanceToLayerSensorMid(0);
- }
- else
- {
- m_ECAL_barrel_r = rm + s.getLayering().getDistanceToLayerSensorMid(0);
-
+ ebr0 = 0.;
}
+ m_ECAL_barrel_r = ebr0 + s.getLayering().getDistanceToLayerSensorMid(0);
s = ci.getSubdetector("HAD_BARREL");
- rm = ci.getRMin("HAD_BARREL");
+ double hbr0 = ci.getRMin("HAD_BARREL");
if(s instanceof CylindricalBarrelCalorimeter)
{
- m_HCAL_barrel_r = s.getLayering().getDistanceToLayerSensorMid(0);
- }
- else
- {
- m_HCAL_barrel_r = rm + s.getLayering().getDistanceToLayerSensorMid(0);
-
+ hbr0 = 0.;
}
+ m_HCAL_barrel_r = hbr0 + s.getLayering().getDistanceToLayerSensorMid(0);
s = ci.getSubdetector("MUON_BARREL");
- rm = ci.getRMin("MUON_BARREL");
+ double mbr0 = ci.getRMin("MUON_BARREL");
if(s instanceof CylindricalBarrelCalorimeter)
{
- m_MCAL_barrel_r = s.getLayering().getDistanceToLayerSensorMid(0);
- }
- else
- {
- m_MCAL_barrel_r = rm + s.getLayering().getDistanceToLayerSensorMid(0);
-
+ mbr0 = 0.;
}
+ m_MCAL_barrel_r = mbr0 + s.getLayering().getDistanceToLayerSensorMid(0);
s = ci.getSubdetector("EM_ENDCAP");
- rm = ci.getZMin("EM_ENDCAP");
+ double eer0 = ci.getZMin("EM_ENDCAP");
if(s instanceof CylindricalEndcapCalorimeter)
{
- m_ECAL_endcap_z = s.getLayering().getDistanceToLayerSensorMid(0);
- }
- else
- {
- m_ECAL_endcap_z = rm + s.getLayering().getDistanceToLayerSensorMid(0);
-
+ eer0 = 0.;
}
+ m_ECAL_endcap_z = eer0 + s.getLayering().getDistanceToLayerSensorMid(0);
s = ci.getSubdetector("HAD_ENDCAP");
- rm = ci.getZMin("HAD_ENDCAP");
+ double her0 = ci.getZMin("HAD_ENDCAP");
if(s instanceof CylindricalEndcapCalorimeter)
{
- m_HCAL_endcap_z = s.getLayering().getDistanceToLayerSensorMid(0);
- }
- else
- {
- m_HCAL_endcap_z = rm + s.getLayering().getDistanceToLayerSensorMid(0);
-
+ her0 = 0.;
}
+ m_HCAL_endcap_z = her0 + s.getLayering().getDistanceToLayerSensorMid(0);
s = ci.getSubdetector("MUON_ENDCAP");
- rm = ci.getZMin("MUON_ENDCAP");
+ double mer0 = ci.getZMin("MUON_ENDCAP");
if(s instanceof CylindricalEndcapCalorimeter)
{
- m_MCAL_endcap_z = s.getLayering().getDistanceToLayerSensorMid(0);
- }
- else
- {
- m_MCAL_endcap_z = rm + s.getLayering().getDistanceToLayerSensorMid(0);
-
+ mer0 = 0.;
}
+ m_MCAL_endcap_z = mer0 + s.getLayering().getDistanceToLayerSensorMid(0);
s = ci.getSubdetector("LUMI");
- rm = ci.getZMin("LUMI");
+ double ler0 = ci.getZMin("LUMI");
if(s instanceof CylindricalEndcapCalorimeter)
{
- m_FCAL_endcap_z = s.getLayering().getDistanceToLayerSensorMid(0);
- }
- else
- {
- m_FCAL_endcap_z = rm + s.getLayering().getDistanceToLayerSensorMid(0);
-
+ ler0 = 0.;
}
+ m_FCAL_endcap_z = ler0 + s.getLayering().getDistanceToLayerSensorMid(0);
m_ECAL_endcap_rmin = ci.getRMin("EM_ENDCAP");
m_HCAL_endcap_rmin = ci.getRMin("HAD_ENDCAP");
m_MCAL_endcap_rmin = ci.getRMin("MUON_ENDCAP");
@@ -195,37 +167,37 @@
m_fieldStrength = det.getFieldMap().getField(zero);
m_ECAL_barrel_layering_r = new Vector<Double>();
for (int iLayer=0; iLayer<ci.getNLayers("EM_BARREL"); iLayer++) {
- double r = ci.getSubdetector("EM_BARREL").getLayering().getDistanceToLayerSensorMid(iLayer);
+ double r = ebr0 + ci.getSubdetector("EM_BARREL").getLayering().getDistanceToLayerSensorMid(iLayer);
m_ECAL_barrel_layering_r.add(new Double(r));
}
m_ECAL_endcap_layering_z = new Vector<Double>();
for (int iLayer=0; iLayer<ci.getNLayers("EM_ENDCAP"); iLayer++) {
- double z = ci.getSubdetector("EM_ENDCAP").getLayering().getDistanceToLayerSensorMid(iLayer);
+ double z = eer0 + ci.getSubdetector("EM_ENDCAP").getLayering().getDistanceToLayerSensorMid(iLayer);
m_ECAL_endcap_layering_z.add(new Double(z));
}
m_HCAL_barrel_layering_r = new Vector<Double>();
for (int iLayer=0; iLayer<ci.getNLayers("HAD_BARREL"); iLayer++) {
- double r = ci.getSubdetector("HAD_BARREL").getLayering().getDistanceToLayerSensorMid(iLayer);
+ double r = hbr0 + ci.getSubdetector("HAD_BARREL").getLayering().getDistanceToLayerSensorMid(iLayer);
m_HCAL_barrel_layering_r.add(new Double(r));
}
m_HCAL_endcap_layering_z = new Vector<Double>();
for (int iLayer=0; iLayer<ci.getNLayers("HAD_ENDCAP"); iLayer++) {
- double z = ci.getSubdetector("HAD_ENDCAP").getLayering().getDistanceToLayerSensorMid(iLayer);
+ double z = her0 + ci.getSubdetector("HAD_ENDCAP").getLayering().getDistanceToLayerSensorMid(iLayer);
m_HCAL_endcap_layering_z.add(new Double(z));
}
m_MCAL_barrel_layering_r = new Vector<Double>();
for (int iLayer=0; iLayer<ci.getNLayers("MUON_BARREL"); iLayer++) {
- double r = ci.getSubdetector("MUON_BARREL").getLayering().getDistanceToLayerSensorMid(iLayer);
+ double r = mbr0 + ci.getSubdetector("MUON_BARREL").getLayering().getDistanceToLayerSensorMid(iLayer);
m_MCAL_barrel_layering_r.add(new Double(r));
}
m_MCAL_endcap_layering_z = new Vector<Double>();
for (int iLayer=0; iLayer<ci.getNLayers("MUON_ENDCAP"); iLayer++) {
- double z = ci.getSubdetector("MUON_ENDCAP").getLayering().getDistanceToLayerSensorMid(iLayer);
+ double z = mer0 + ci.getSubdetector("MUON_ENDCAP").getLayering().getDistanceToLayerSensorMid(iLayer);
m_MCAL_endcap_layering_z.add(new Double(z));
}
m_FCAL_endcap_layering_z = new Vector<Double>();
for (int iLayer=0; iLayer<ci.getNLayers("LUMI"); iLayer++) {
- double z = ci.getSubdetector("LUMI").getLayering().getDistanceToLayerSensorMid(iLayer);
+ double z = ler0 + ci.getSubdetector("LUMI").getLayering().getDistanceToLayerSensorMid(iLayer);
m_FCAL_endcap_layering_z.add(new Double(z));
}
m_init = true;
lcsim/src/org/lcsim/recon/pfa/identifier
diff -u -r1.3 -r1.4
--- LocalHelixExtrapolationTrackClusterMatcher.java 6 Sep 2008 23:47:00 -0000 1.3
+++ LocalHelixExtrapolationTrackClusterMatcher.java 3 Feb 2010 19:42:23 -0000 1.4
@@ -23,6 +23,7 @@
import org.lcsim.mc.fast.tracking.ReconTrack;
import org.lcsim.event.base.*;
import org.lcsim.geometry.IDDecoder;
+import org.lcsim.recon.util.CalorimeterInformation;
/**
* Attempt to match a Track to a Cluster. The Track is extrapolated to the inner surface
@@ -36,10 +37,13 @@
public class LocalHelixExtrapolationTrackClusterMatcher extends Driver implements TrackClusterMatcher
{
+ protected boolean init;
+ protected CalorimeterInformation ci;
/** Simple constructor. */
public LocalHelixExtrapolationTrackClusterMatcher(HelixExtrapolator extrap) {
super();
m_extrap = extrap;
+ init = false;
}
/** Constructor, specifying additional cut to apply. */
@@ -47,6 +51,7 @@
super();
m_extraCut = extraCut;
m_extrap = extrap;
+ init = false;
}
/** Another way to specify the additional cut. */
@@ -56,6 +61,11 @@
/** Process this event, storing geometry info if needed. */
public void process(EventHeader event) {
+ if(!init)
+ {
+ ci = CalorimeterInformation.instance();
+ init = true;
+ }
m_event = event;
m_extrap.process(event);
}
@@ -66,6 +76,11 @@
* acceptable match.
*/
public Cluster matchTrackToCluster(Track tr, List<Cluster> clusters) {
+ if(!init)
+ {
+ ci = CalorimeterInformation.instance();
+ init = true;
+ }
if (m_debug) { System.out.println("DEBUG: "+this.getClass().getName()+" trying to match track with p="+(new BasicHep3Vector(tr.getMomentum())).magnitude()+" to a list of "+clusters.size()+" clusters."); }
HelixExtrapolationResult result = m_extrap.performExtrapolation(tr);
Hep3Vector point = null;
@@ -144,7 +159,7 @@
org.lcsim.geometry.Subdetector subdet = hit.getSubdetector();
if ( ! subdet.isCalorimeter() ) { throw new AssertionError("Cluster hit outside calorimeter"); }
String name = subdet.getName();
- if (name.compareTo("EMBarrel") == 0 || name.compareTo("EMEndcap") == 0) {
+ if (name.compareTo(ci.getName("EM_BARREL")) == 0 || name.compareTo(ci.getName("EM_ENDCAP")) == 0) {
// EM -- OK
if (innermostHit==null || getLayer(innermostHit)>layer) {
innermostHit = hit;