1 package org.lcsim.recon.tracking.vsegment.geom; 2 3 import java.util.*; 4 5 import org.lcsim.event.SimTrackerHit; 6 import org.lcsim.geometry.Detector; 7 8 /** 9 * Any class that implement this interface defines virtual segmentation of either 10 * entire detector or some part of it. 11 * <p> 12 * Additional machinery is provided for chaining <tt>Segmenters</tt> - see 13 * {@link AbstractSegmenter} for details. 14 * 15 * @author D. Onoprienko 16 * @version $Id: Segmenter.java,v 1.1 2008/12/06 21:53:43 onoprien Exp $ 17 */ 18 public interface Segmenter { 19 20 /** 21 * Returns a list of <tt>SensorsIDs</tt> corresponding to all virtual segments 22 * in the part of the detector handled by this <tt>Segmenter</tt>. 23 */ 24 public List<Integer> getSensorIDs(); 25 26 /** 27 * Returns integer <tt>SensorID</tt> uniquely identifying a {@link Sensor} object 28 * within the whole detector, given the simulated hit. 29 * Returns "-1" if the hit is outside of any sensor. 30 */ 31 public int getSensorID(SimTrackerHit hit); 32 33 /** 34 * Creates a new {@link Sensor} object given full <tt>SensorID</tt>. 35 */ 36 public Sensor getSensor(int sensorID); 37 38 /** 39 * Detector dependent initialization. 40 */ 41 public void detectorChanged(Detector detector); 42 43 /** 44 * Returns a list of <tt>Sensors</tt> that might contain hits that should be combined 45 * with hits in the <tt>Sensor</tt> whose <tt>sensorID</tt> is supplied as an argument 46 * to form stereo pairs. 47 * If an empty list is returned, hits on this sensor will be ignored when forming 48 * crosses. If <tt>null</tt> is returned, 49 * {@link org.lcsim.contrib.onoprien.tracking.hitmaking.TrackerHitConverter} will, by 50 * default, create a single 3-dimensional hit at the center of the strip. 51 */ 52 public List<Integer> getStereoPartners(int sensorID); 53 54 }