public abstract class ForwardingSegmenter extends AbstractSegmenter
Segmenter
s that forward ID or Sensor
creation calls to their daughter segmenters. See AbstractSegmenter
for
details on how to chain segmenters.
Subclasses should implement chooseSegmenter(SimTrackerHit)
method to select
a daughter segmenter that will handle a particular simulated hit. Daughter segmenters
should be added to the parent segmenter through calls to
addDaughterSegmenter(AbstractSegmenter)
.
Modifier and Type | Field and Description |
---|---|
protected int |
_daughterIdMask |
protected int |
_daughterPostfixLength |
private ArrayList<AbstractSegmenter> |
_daughters |
_postfixLength, _postfixMask, _prefix, _prefixTemplate
Modifier | Constructor and Description |
---|---|
protected |
ForwardingSegmenter()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addDaughterSegmenter(AbstractSegmenter daughter)
Add daughter Segmenter.
|
abstract AbstractSegmenter |
chooseSegmenter(SimTrackerHit hit)
Subclasses should implement this method to choose daughter Segmenter
that can handle the given hit.
|
void |
detectorChanged(Detector detector)
Detector dependent initialization.
|
protected int |
getNativePostfixLength()
Returns minimum postfix length required by this Segmenter
to accomodate all its daughters and their postfixes.
|
Sensor |
getSensor(int sensorID)
Creates a new
Sensor object given full SensorID. |
int |
getSensorID(SimTrackerHit hit)
Returns integer SensorID uniquely identifying a
Sensor object
within the whole detector, given the simulated hit. |
List<Integer> |
getSensorIDs()
Returns a list of SensorsID corresponding to all virtual segments
in the part of the detector handled by this Segmenter.
|
List<Integer> |
getStereoPartners(int sensorID)
Returns a list of Sensors that might contain hits that should be combined
with hits in the Sensor whose sensorID is supplied as an argument
to form stereo pairs.
|
protected int |
idToDaughterIndex(int sensorID)
Extract daughter Segmenter index from full SensorID.
|
void |
removeAllDaughterSegmenters()
Remove all daughter Segmenters.
|
void |
removeDaughterSegmenter(AbstractSegmenter daughter)
Remove daughter Segmenter.
|
void |
setPrefix(int prefix,
int postfixLength)
Set pretfix value and postfix length for this Segmenter.
|
protected void |
updateDaughterSegmenters(Detector detector)
Calls
detectorChanged(Detector) methods of daughter Segmenters. |
getIdSize, getLeaves, getPrefix, idToPostfix, postfixToID, setPrefix
private ArrayList<AbstractSegmenter> _daughters
protected int _daughterPostfixLength
protected int _daughterIdMask
public abstract AbstractSegmenter chooseSegmenter(SimTrackerHit hit)
public List<Integer> getSensorIDs()
public int getSensorID(SimTrackerHit hit)
Sensor
object
within the whole detector, given the simulated hit.public Sensor getSensor(int sensorID)
Sensor
object given full SensorID.
Caution: for the sake of speed, no checking is done to veryfy that the
supplied SensorID is valid and should be handled by this Segmenter.
Giving this method an invalid SensorID may produce unpredictable results.public List<Integer> getStereoPartners(int sensorID)
public void detectorChanged(Detector detector)
updateDaughterSegmenters(Detector)
from this method to have their daughter Segmenters initialized as well.protected void updateDaughterSegmenters(Detector detector)
detectorChanged(Detector)
methods of daughter Segmenters.
If subclasses override detectorChanged(Detector)
method, they should
call this method to have daughter Segmenters initialized.public void setPrefix(int prefix, int postfixLength)
setPrefix
in class AbstractSegmenter
protected int idToDaughterIndex(int sensorID)
protected int getNativePostfixLength()
getNativePostfixLength
in class AbstractSegmenter
public void addDaughterSegmenter(AbstractSegmenter daughter)
public void removeDaughterSegmenter(AbstractSegmenter daughter)
public void removeAllDaughterSegmenters()
Copyright © 2016 Linear Collider Detector (LCD). All rights reserved.