public class DigitalReadoutChip extends Object implements ReadoutChip
Modifier and Type | Class and Description |
---|---|
private class |
DigitalReadoutChip.DigitalChannel
DigitalChannel class representing a single channel's behavior
|
ReadoutChip.ReadoutChannel
Modifier and Type | Field and Description |
---|---|
private static org.apache.commons.math.distribution.BinomialDistribution |
_binomial |
private DigitalReadoutChip.DigitalChannel |
_channel |
private static org.apache.commons.math.distribution.NormalDistribution |
_gaussian |
private double |
_neighbor_threshold |
private double |
_noise_threshold |
private static Random |
_random |
Constructor and Description |
---|
DigitalReadoutChip()
Creates a new instance of DigitalReadoutChip
|
Modifier and Type | Method and Description |
---|---|
private void |
addNoise(SiElectrodeDataCollection data,
SiSensorElectrodes electrodes)
Add noise hits for this readout chip
|
double |
decodeCharge(RawTrackerHit hit)
Decode the hit charge stored in the RawTrackerHit.
|
int |
decodeTime(RawTrackerHit hit)
Decode the hit time.
|
private SortedMap<Integer,List<Integer>> |
digitize(SiElectrodeDataCollection data,
SiSensorElectrodes electrodes)
Digitizes the hit channels in a SiElectrodeDataCollection.
|
static int |
drawBinomial(int ntrials,
double probability) |
static double |
drawGaussianAboveThreshold(double prob_above_threshold)
Return a random variable following normal distribution, but beyond
threshold provided during initialization.
|
DigitalReadoutChip.DigitalChannel |
getChannel(int channel_number)
Return the DigitalChannel associated with a given channel number.
|
SortedMap<Integer,List<Integer>> |
readout(SiElectrodeDataCollection data,
SiSensorElectrodes electrodes)
Given a collection of electrode data (i.e., charge on strips/pixels),
return a map associating the channel and it's list of raw data.
|
void |
setConversionConstant(int adc_for_hit)
Set the ADC output value for a hit.
|
void |
setNeighborThreshold(double neighbor_threshold)
Set the threshold for reading a channel if it's neighbor is
above the noise threshold.
|
void |
setNoiseIntercept(double noise_intercept)
Set the noise intercept (i.e., the noise for 0 strip/pixel capacitance).
|
void |
setNoiseSlope(double noise_slope)
Set the noise slope (i.e., the proportionality between noise and capacitance).
|
void |
setNoiseThreshold(double noise_threshold)
Set the threshold for reading out a channel.
|
private static Random _random
private static org.apache.commons.math.distribution.NormalDistribution _gaussian
private static org.apache.commons.math.distribution.BinomialDistribution _binomial
private double _noise_threshold
private double _neighbor_threshold
private DigitalReadoutChip.DigitalChannel _channel
public DigitalReadoutChip()
public void setNoiseIntercept(double noise_intercept)
noise_intercept
- noise for 0 capacitancepublic void setNoiseSlope(double noise_slope)
noise_slope
- noise slope per unit capacitancepublic void setNoiseThreshold(double noise_threshold)
noise_threshold
- public void setNeighborThreshold(double neighbor_threshold)
neighbor_threshold
- public void setConversionConstant(int adc_for_hit)
adc_for_hit
- public DigitalReadoutChip.DigitalChannel getChannel(int channel_number)
getChannel
in interface ReadoutChip
channel_number
- channel numberpublic SortedMap<Integer,List<Integer>> readout(SiElectrodeDataCollection data, SiSensorElectrodes electrodes)
readout
in interface ReadoutChip
data
- electrode data from the charge distributionelectrodes
- strip or pixel electrodespublic double decodeCharge(RawTrackerHit hit)
decodeCharge
in interface ReadoutChip
hit
- raw hitpublic int decodeTime(RawTrackerHit hit)
decodeTime
in interface ReadoutChip
hit
- raw hit dataprivate SortedMap<Integer,List<Integer>> digitize(SiElectrodeDataCollection data, SiSensorElectrodes electrodes)
data
- electrode data collectionprivate void addNoise(SiElectrodeDataCollection data, SiSensorElectrodes electrodes)
data
- electrode data collectionelectrodes
- strip or pixel electrodespublic static int drawBinomial(int ntrials, double probability)
public static double drawGaussianAboveThreshold(double prob_above_threshold)
prob_above_threshold
- Copyright © 2016 Linear Collider Detector (LCD). All rights reserved.