Print

Print


Commit in lcsim/src/org/lcsim/recon/cluster/directedtree on MAIN
TrackHitMatcher.java+26-111.3 -> 1.4
GL: improved debugging control

lcsim/src/org/lcsim/recon/cluster/directedtree
TrackHitMatcher.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- TrackHitMatcher.java	20 Feb 2006 22:48:12 -0000	1.3
+++ TrackHitMatcher.java	15 Mar 2006 12:27:48 -0000	1.4
@@ -22,7 +22,7 @@
  * A helper class for track-hit matching in a single calorimeter component
  *
  * @author Guilherme Lima
- * @version $Id: TrackHitMatcher.java,v 1.3 2006/02/20 22:48:12 lima Exp $
+ * @version $Id: TrackHitMatcher.java,v 1.4 2006/03/15 12:27:48 lima Exp $
  */
 public class TrackHitMatcher {
 
@@ -41,8 +41,10 @@
 	_colName = colName;
 	_layers = layers;
 	_debug = debug;
-	_subdet = _expert.getSubdetector( colName );
-	_segm = (SegmentationBase)_expert.getIDDecoder( colName );
+	_subdet = _expert.getSubdetector( colName.replace("Digi","") );
+	_segm = (SegmentationBase)_expert.getIDDecoder( colName.replace("Digi","") );
+
+ 	_segm.setField(_segm.getFieldIndex("system"), _subdet.getSystemID());
 	_dU = dU;
 	_dV = dV;
     }
@@ -58,38 +60,51 @@
       _hitmap = _expert.getCollHitMap(_colName);
 
       // loop over tracks
-      for( Track trk : event.getTracks() ) {
+      // Use recon.ztracking.cheater.TrackingCheater (MCParticle)
+      List<Track> recoTracks = event.get(Track.class, "CombinedTracks");
+      // Use mc.fast.tracking.MCFastTracking (smearing around MCParticle)
+//       List<Track> recoTracks = event.getTracks();
+
+      for( Track trk : recoTracks ) {
 	_trk = trk;
 	_trkHitsMap = trkHitsMap;
 	_trkHits = trkHitsMap.get( trk );
 	int nhitsBefore = (_trkHits!=null ? _trkHits.size() : 0);
 
+	if(_debug>0) {
+	    double mcE = ((org.lcsim.recon.ztracking.cheater.CheatTrack)trk).getMCParticle().getEnergy();
+	    System.out.println("TkHitMatcher: "+_colName+" - new track: E="+mcE);
+	}
+
 	Hep3Vector pvec = new BasicHep3Vector( trk.getMomentum() );
 	Vector<Hep3Vector> trkIntercepts = intersects.get(trk);
 	if( trkIntercepts == null) continue;
 
+	int iint=0;
 	for( Hep3Vector pos : trkIntercepts ) {
 	  // find cell containing track-cylinder intersection
-	  if(_debug>0) System.out.println("TkHitMatcher: "+pos.x()+" "+pos.y()+" "+pos.z());
 	  long cellid = _segm.findCellContainingXYZ( pos );
+	  if(_debug>0) System.out.println("TkHitMatcher: "+_colName+" "+pos.x()+" "+pos.y()+" "+pos.z()+", cellid="+MyTools.printID(cellid));
 	  if(cellid==0) continue;
 
 	  // save matched hits
 	  this.addHitToTrack( cellid );
 
 	  _segm.setID( cellid );
-// 	  double rhoCell = _segm.getDistanceToSensitive(i);
-//  	  System.out.println("layer="+i+", pos="+pos+", cell pos=("
-//  	        +_segm.getX()+"; "+_segm.getY()+"; "
-//              +_segm.getZ()+")"
-//  	        +", rhoSwim="+Math.sqrt(pos.x()*pos.x()+pos.y()*pos.y())
-//  		+", rhoCell="+rhoCell+", #hits="+_hitmap.size());
+ 	  double rhoCell = _segm.getDistanceToSensitive(iint);
+	  if(_debug>1) {
+  	     System.out.println("layer="+iint+", pos="+pos+", cell pos=("
+  	        +_segm.getX()+"; "+_segm.getY()+"; "+_segm.getZ()+")"
+  	        +", rhoSwim="+Math.sqrt(pos.x()*pos.x()+pos.y()*pos.y())
+  		+", rhoCell="+rhoCell+", #hits="+_hitmap.size());
+	  }
 
           // save matched hits in neighborhood
 	  long[] neighs = _segm.getNeighbourIDs( 0, _dU, _dV );
 	  for(int i=0; i<neighs.length; ++i) {
 	      this.addHitToTrack( neighs[i] );
 	  }
+	  ++iint;
 	}
 
 	if(_debug>0) {
CVSspam 0.2.8