Author: [log in to unmask] Date: Tue Feb 24 21:15:41 2015 New Revision: 2203 Log: use millepede id in print of gbl input file Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java ============================================================================= --- java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java (original) +++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java Tue Feb 24 21:15:41 2015 @@ -28,6 +28,8 @@ import org.hps.recon.tracking.TrackUtils; import org.hps.recon.tracking.TrackerHitUtils; import org.lcsim.constants.Constants; +import org.lcsim.detector.IDetectorElement; +import org.lcsim.detector.tracker.silicon.HpsSiSensor; import org.lcsim.event.MCParticle; import org.lcsim.event.RawTrackerHit; import org.lcsim.event.SimTrackerHit; @@ -43,15 +45,10 @@ import org.lcsim.recon.tracking.seedtracker.SeedCandidate; import org.lcsim.recon.tracking.seedtracker.SeedTrack; + /** - -* -* @author Per Hansson Adrian <[log in to unmask]> -* @version $Id: GBLOutput.java,v 1.17 2013/11/07 03:30:18 phansson Exp $ $Date: 2013/11/07 03:30:18 $ $Author: phansson $ -* -*/ -/** - * @author phansson + * Calculate the input needed for Millepede minimization. + * @author Per Hansson Adrian <[log in to unmask]> * */ public class GBLOutput { @@ -258,14 +255,26 @@ for(HelicalTrackStrip stripOld : strips) { HelicalTrackStripGbl strip = new HelicalTrackStripGbl(stripOld, true); - if(_debug>0) System.out.printf("%s: layer %d\n",this.getClass().getSimpleName(),strip.layer()); + + // find Millepede layer definition from DetectorElement + IDetectorElement de = ((RawTrackerHit) strip.getStrip().rawhits().get(0)).getDetectorElement(); + HpsSiSensor sensor; + if( de instanceof HpsSiSensor) { + sensor = (HpsSiSensor) de; + } else { + throw new ClassCastException("Detector element " + de.getName() + " couldn't be casted to " + HpsSiSensor.class.getName()); + } + + int millepedeId = sensor.getMillepedeId(); + + if(_debug>0) System.out.printf("%s: layer %d millepede %d (DE=\"%s\", origin %s) \n",this.getClass().getSimpleName(),strip.layer(), millepedeId, sensor.getName(), strip.origin().toString()); if(textFile != null) { - textFile.printStrip(istrip,strip.layer()); + textFile.printStrip(istrip,millepedeId); } //GBLDATA - GBLStripClusterData stripData = new GBLStripClusterData(strip.layer()); + GBLStripClusterData stripData = new GBLStripClusterData(millepedeId); //Add to output list stripClusterDataList.add(stripData); @@ -420,7 +429,7 @@ - if(_debug>0) System.out.printf("layer %d uRes %.10f\n",strip.layer(),res_meas.x()); + if(_debug>0) System.out.printf("layer %d millePedeId %d uRes %.10f\n",strip.layer(), millepedeId ,res_meas.x()); // sim hit residual