public class EcalPulseFitter extends Object
Modifier and Type | Field and Description |
---|---|
(package private) org.lcsim.util.aida.AIDA |
aida |
(package private) hep.aida.IAnalysisFactory |
analysisFactory |
private hep.aida.IHistogram1D |
chi2Hist |
private boolean |
debug |
private int |
displayHits |
private EcalConditions |
ecalConditions |
(package private) hep.aida.IDataPointSet |
fitData |
(package private) hep.aida.IFitFactory |
fitFactory |
(package private) hep.aida.IFunction |
fitFcn3Pole |
private static int[] |
fitRange
fit sample range relative to threshold crossing
|
(package private) hep.aida.IFitter |
fitter |
boolean |
fixShapeParameter
If this is false, the width will be a free parameter in the fit:
|
(package private) hep.aida.IFunctionFactory |
functionFactory |
double |
globalThreePoleWidth
if this is positive, it will override individual widths and use one global width (units = samples)
|
private int |
hitCount |
private hep.aida.IHistogram1D |
pedestal_fit |
private hep.aida.IHistogram1D |
pedestal_prefit |
private static int[] |
pedRange
sample range relative to threshold crossing used to initialize pedestal fit parameter:
|
private hep.aida.IPlotter |
plotter1 |
private hep.aida.IPlotter |
plotter2 |
private int |
skipHits |
int[] |
t0limits
restrict fit's time0 parameter to this range: (units=samples)
|
private static double[] |
threePoleWidths
442 channels' widths, measured from 2015 data (units = samples)
|
int[] |
threshRange
don't bother fitting pulses with threshold crossing outside this sample range:
|
private hep.aida.IHistogram1D |
widthOffsetHist |
private hep.aida.IHistogram1D[] |
widthOffsets |
Constructor and Description |
---|
EcalPulseFitter() |
Modifier and Type | Method and Description |
---|---|
EcalChannelConstants |
findChannel(long cellID) |
hep.aida.IFitResult |
fitPulse(org.lcsim.event.RawTrackerHit hit,
int threshCross,
double maxADC)
Perform and return "3-pole" fit of ECAL raw waveform.
|
private double |
getChi2(hep.aida.IFitResult fitResult,
hep.aida.IDataPointSet fitData)
calculate chi2 for debug
|
void |
setDebug(boolean debug) |
void |
setDetector(org.lcsim.geometry.Detector detector) |
private EcalConditions ecalConditions
public boolean fixShapeParameter
public int[] threshRange
public int[] t0limits
private static final int[] fitRange
private static final int[] pedRange
public double globalThreePoleWidth
private static final double[] threePoleWidths
org.lcsim.util.aida.AIDA aida
hep.aida.IAnalysisFactory analysisFactory
hep.aida.IFunctionFactory functionFactory
hep.aida.IFitFactory fitFactory
hep.aida.IFitter fitter
hep.aida.IFunction fitFcn3Pole
hep.aida.IDataPointSet fitData
private boolean debug
private hep.aida.IPlotter plotter1
private hep.aida.IPlotter plotter2
private hep.aida.IHistogram1D chi2Hist
private hep.aida.IHistogram1D pedestal_fit
private hep.aida.IHistogram1D pedestal_prefit
private hep.aida.IHistogram1D widthOffsetHist
private hep.aida.IHistogram1D[] widthOffsets
private int skipHits
private int displayHits
private int hitCount
public void setDebug(boolean debug)
public hep.aida.IFitResult fitPulse(org.lcsim.event.RawTrackerHit hit, int threshCross, double maxADC)
hit
- the RawTrackerHit (Mode-1 FADC ECal readout) to be fitthreshCross
- the sample of threshold crossing, used to initialize fit parametersmaxADC
- the ADC at pulse maximum, used to initialize fit parametersprivate double getChi2(hep.aida.IFitResult fitResult, hep.aida.IDataPointSet fitData)
fitResult
- fitData2
- public void setDetector(org.lcsim.geometry.Detector detector)
public EcalChannelConstants findChannel(long cellID)
Copyright © 2019. All rights reserved.