lcsim/src/org/lcsim/recon/cluster/density
diff -u -r1.1 -r1.2
--- TrackMatching.java 7 Dec 2005 18:57:20 -0000 1.1
+++ TrackMatching.java 12 Dec 2005 05:32:27 -0000 1.2
@@ -14,16 +14,20 @@
import org.lcsim.event.MCParticle;
import org.lcsim.geometry.util.CalorimeterIDDecoder;
import org.lcsim.geometry.compact.Subdetector;
-// import org.lcsim.geometry.compact.Readout;
import org.lcsim.geometry.segmentation.BarrelCylinderSegmentationBase;
import org.lcsim.geometry.subdetector.CylindricalCalorimeter;
import org.lcsim.geometry.layer.Layering;
-import org.lcsim.recon.cluster.util.CalHitMapMgr;
import org.lcsim.recon.cluster.util.BasicCluster;
import org.lcsim.recon.cluster.util.SortClustersBySize;
import org.lcsim.util.swim.HelixSwimmer;
import org.lcsim.util.swim.HelixSwim;
+/**
+ * A driver for track matching using the swimmer.
+ *
+ * @author Guilherme Lima
+ * @version $Id: TrackMatching.java,v 1.2 2005/12/12 05:32:27 lima Exp $
+ */
public class TrackMatching extends Driver {
int _debug = 1; // debug level, 0 for no printout
@@ -111,6 +115,13 @@
_swimmer.setTrack( ipart.getMomentum(), ipart.getOrigin(), icharge );
for(int i=0; i<_layersEMB.length; ++i) {
if(curling) break;
+
+ int nhitsInLayerEmb = _loader.getHitCountInLayer(_embName,i);
+ int nhitsInLayerEme = _loader.getHitCountInLayer(_emeName,i);
+ int nhitsInLayer = nhitsInLayerEmb + nhitsInLayerEme;
+ System.out.println("#hits in layer: "+nhitsInLayerEmb+" "+nhitsInLayerEme+" "+nhitsInLayer);
+ if(nhitsInLayer<1) continue;
+
double rcyl = _layersEMB[i];
double zcyl = _layersEME[i];
System.out.println("*** Swimming to layer "+i
@@ -134,7 +145,7 @@
System.out.println("Swimmer: layer="+i+", pos="+pos);
// find cell containing track-cylinder intersection
- CalHitMapMgr aux = CalHitMapMgr.getInstance();
+ LoadMyCalorimeterHit aux = LoadMyCalorimeterHit.getInstance();
Subdetector _calsub = aux.getSubdetector( "EcalBarrHits" );
BarrelCylinderSegmentationBase _segm = (BarrelCylinderSegmentationBase)_calsub.getReadout().getSegmentation();
@@ -185,43 +196,43 @@
System.out.println("a bad match: event# "+_evtnum);
}
- // look for +/-3 neighbors
- long[] neighs3 = _segm.getNeighbourIDs(0,3,3);
+ // look for +/-2 neighbors
+ long[] neighs2 = _segm.getNeighbourIDs(0,2,2);
nmatch = 0;
nbad = 0;
if(perfmatch) {
if( isContributor(ipart,ihit) ) ++nmatch;
else ++nbad;
}
- for(int j=0; j<neighs3.length; ++j) {
- CalorimeterHit jhit = embhitmap.get( neighs3[j] );
+ for(int j=0; j<neighs2.length; ++j) {
+ CalorimeterHit jhit = embhitmap.get( neighs2[j] );
if( jhit!=null ) {
if( isContributor(ipart,jhit) ) ++nmatch;
else ++nbad;
}
}
-// System.out.println("good033="+nmatch+", bad033="+nbad);
- _aida.cloud1D("trkMatch 033").fill(nmatch);
- if(nbad>0) _aida.cloud1D("badMatch 033").fill(nbad);
+// System.out.println("good022="+nmatch+", bad022="+nbad);
+ _aida.cloud1D("trkMatch 022").fill(nmatch);
+ if(nbad>0) _aida.cloud1D("badMatch 022").fill(nbad);
- // look for +/-5 neighbors
- long[] neighs5 = _segm.getNeighbourIDs(0,5,5);
+ // look for +/-3 neighbors
+ long[] neighs3 = _segm.getNeighbourIDs(0,3,3);
nmatch = 0;
nbad = 0;
if(perfmatch) {
if( isContributor(ipart,ihit) ) ++nmatch;
else ++nbad;
}
- for(int j=0; j<neighs5.length; ++j) {
- CalorimeterHit jhit = embhitmap.get( neighs5[j] );
+ for(int j=0; j<neighs3.length; ++j) {
+ CalorimeterHit jhit = embhitmap.get( neighs3[j] );
if( jhit!=null ) {
if( isContributor(ipart,jhit) ) ++nmatch;
else ++nbad;
}
}
-// System.out.println("good055="+nmatch+", bad055="+nbad);
- _aida.cloud1D("trkMatch 055").fill(nmatch);
- if(nbad>0) _aida.cloud1D("badMatch 055").fill(nbad);
+// System.out.println("good033="+nmatch+", bad033="+nbad);
+ _aida.cloud1D("trkMatch 033").fill(nmatch);
+ if(nbad>0) _aida.cloud1D("badMatch 033").fill(nbad);
}
}
@@ -532,7 +543,7 @@
}
private void initialize(EventHeader event) {
- CalHitMapMgr expert = CalHitMapMgr.getInstance();
+ LoadMyCalorimeterHit expert = LoadMyCalorimeterHit.getInstance();
// face of EM calorimeter
CylindricalCalorimeter embSubdet = (CylindricalCalorimeter)expert.getSubdetector(_embName);
@@ -553,7 +564,7 @@
_layersEME[i] = layers.getDistanceToLayerSensorMid(i);
}
- // face of EM calorimeter
+ // face of HAD calorimeter
CylindricalCalorimeter hdbSubdet = (CylindricalCalorimeter)expert.getSubdetector(_hdbName);
layers = hdbSubdet.getLayering();
nlayers = layers.getLayerCount();