public class BasicReadoutChip extends Object implements ReadoutChip
Modifier and Type | Class and Description |
---|---|
private class |
BasicReadoutChip.ADC
ADC class representing analog to digital converter.
|
private class |
BasicReadoutChip.BasicChannel
BasicChannel class representing a single channel's behavior
Note that binary readout is a special case.
|
ReadoutChip.ReadoutChannel
Modifier and Type | Field and Description |
---|---|
private BasicReadoutChip.ADC |
_adc |
private static org.apache.commons.math.distribution.BinomialDistribution |
_binomial |
private BasicReadoutChip.BasicChannel |
_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 |
---|
BasicReadoutChip()
Creates a new instance of BasicReadoutChip
|
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.
|
private BasicReadoutChip.ADC |
getADC() |
BasicReadoutChip.BasicChannel |
getChannel(int channel_number)
Return the BasicChannel 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 |
setDynamicRange(double dynamic_range)
Set the dynamic range of the ADC
|
void |
setNbits(int nbits)
Set the number of bits of ADC resolution
|
void |
setNeighborThreshold(double neighbor_threshold)
Set the threshold for reading a channel if its 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 BasicReadoutChip.BasicChannel _channel
private BasicReadoutChip.ADC _adc
public BasicReadoutChip()
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 setNbits(int nbits)
nbits
- public void setDynamicRange(double dynamic_range)
dynamic_range
- in fCpublic BasicReadoutChip.BasicChannel getChannel(int channel_number)
getChannel
in interface ReadoutChip
channel_number
- channel numberprivate BasicReadoutChip.ADC getADC()
public 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)
Copyright © 2016 Linear Collider Detector (LCD). All rights reserved.