Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public class DumbShaperFit implements ShaperFitAlgorithm {

private boolean debug = false;
private String fitTimeMinimizer = "Simplex";
private int runNum = 1000000;

public DumbShaperFit() {
}
Expand All @@ -20,6 +21,10 @@ public void setDebug(boolean debug) {
this.debug = debug;
}

@Override
public void setRunNum(int RunNum){
this.runNum=RunNum;
}
@Override
public void setFitTimeMinimizer(String fitTimeMinimizer) {
this.fitTimeMinimizer = fitTimeMinimizer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public class NearestNeighborRMSClusterer implements ClusteringAlgorithm {
private double _timeWindow = 48;
private double _neighborDeltaT = Double.POSITIVE_INFINITY;
private double _neighborDeltaTSigma = Double.POSITIVE_INFINITY;
private final double _minChiProb = Gamma.regularizedGammaQ(4, 20);
private final double _minChiProb = .01;//Gamma.regularizedGammaQ(4, 20);
private double _doTimeError = 0.0;
private boolean _doDeadFix = false;
private boolean _doVSplit = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,7 @@ public void process(EventHeader event) {
int strip = hit.getIdentifierFieldValue("strip");
HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
//===> ChannelConstants constants = HPSSVTCalibrationConstants.getChannelConstants((SiSensor) hit.getDetectorElement(), strip);
fitter.setRunNum(event.getRunNumber());
for (ShapeFitParameters fit : fitter.fitShape(hit, shape)) {

if (correctTimeOffset) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,18 @@
public class ShaperAnalyticFitAlgorithm implements ShaperFitAlgorithm {

private boolean debug = false;
private int runNum = 1000000;
public String fitTimeMinimizer;

public void setDebug(boolean debug) {
this.debug = debug;
}

@Override
public void setRunNum(int RunNum){
this.runNum=RunNum;
}

@Override
public void setFitTimeMinimizer(String fitTimeMinimizer) {
this.fitTimeMinimizer = fitTimeMinimizer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,7 @@ public interface ShaperFitAlgorithm {

public void setDebug(boolean debug);

public void setRunNum(int runNum);

public void setFitTimeMinimizer(String fitTimeMinimizer);
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ public class ShaperLinearFitAlgorithm implements ShaperFitAlgorithm, FCNBase {
private boolean fitPedestal = false;
private boolean debug = false;
private static final Logger minuitLoggger = Logger.getLogger("org.freehep.math.minuit");
private int runNum = 1000000;

public ShaperLinearFitAlgorithm(int nPulses) {
this.nPulses = nPulses;
Expand Down Expand Up @@ -89,6 +90,11 @@ public void setFitTimeMinimizer(String fitTimeMinimizer) {
this.fitTimeMinimizer = fitTimeMinimizer;
}

@Override
public void setRunNum(int RunNum){
this.runNum=RunNum;
}

@Override
//===> public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, ChannelConstants constants) {
public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, PulseShape shape) {
Expand Down Expand Up @@ -142,14 +148,75 @@ public Collection<ShapeFitParameters> fitShape(short[] samples) {

ArrayList<ShapeFitParameters> fits = new ArrayList<ShapeFitParameters>();

double[][] mults={{0.859375, 0.78125, 0.75, 0.796875, 0.875, 0.921875, 0.90625, 0.90625, 0.859375, 0.953125, 0.984375, 0.953125, 0.984375,1.0},
{1.0, 0.859375, 0.765625, 0.890625, 1.078125, 1.125, 0.96875, 0.96875, 0.890625, 0.984375, 1.015625, 0.984375, 0.984375,1.0},
{1.046875, 0.90625, 0.828125, 0.890625, 1.0, 1.109375, 1.0, 1.0625, 0.90625, 1.015625, 1.03125, 1.09375, 0.953125,1.0},
{0.859375, 0.828125, 0.71875, 0.8125, 1.03125, 1.078125, 1.015625, 1.046875, 0.875, 1.03125, 1.0625, 1.09375, 0.953125,1.0},
{0.84375, 0.796875, 0.71875, 0.75, 1.03125, 1.109375, 0.96875, 1.015625, 0.90625, 1.046875, 1.0625, 1.09375, 0.984375,1.0},
{0.859375, 0.8125, 0.703125, 0.71875, 1.078125, 1.078125, 1.03125, 1.078125, 0.90625, 1.0625, 1.078125, 1.15625, 1.0,1.0},
{0.828125, 0.765625, 0.703125, 0.765625, 1.046875, 1.09375, 0.984375, 1.015625, 0.890625, 1.015625, 1.03125, 1.03125, 1.0,1.0},
{0.828125, 0.71875, 0.6875, 0.734375, 1.078125, 1.125, 1.015625, 1.078125, 0.90625, 1.078125, 1.125, 1.140625, 0.984375,1.0},
{0.828125, 0.75, 0.71875, 0.765625, 1.0625, 1.125, 1.0, 1.03125, 0.921875, 1.046875, 1.09375, 1.09375, 1.0625,1.0},
{0.8125, 0.71875, 0.65625, 0.671875, 1.03125, 1.0625, 0.984375, 1.015625, 0.875, 1.015625, 1.046875, 1.03125, 0.96875,1.0},
{0.84375, 0.703125, 0.6875, 0.703125, 1.0, 1.0625, 0.984375, 1.046875, 0.875, 1.03125, 1.046875, 1.078125, 1.0,1.0},
{0.765625, 0.703125, 0.625, 0.609375, 1.0, 1.015625, 0.96875, 0.96875, 0.828125, 0.96875, 0.96875, 0.96875, 0.921875,1.0},
{0.8125, 0.734375, 0.703125, 0.8125, 1.09375, 1.09375, 1.125, 1.078125, 0.84375, 1.0, 1.0, 1.046875, 0.953125,1.0},
{0.8125, 0.75, 0.671875, 0.71875, 1.03125, 1.03125, 0.96875, 1.015625, 0.875, 1.0, 1.015625, 1.078125, 0.953125,1.0},
{0.8125, 0.734375, 0.671875, 0.734375, 1.046875, 1.078125, 1.046875, 1.0, 0.875, 1.0, 1.015625, 1.03125, 0.953125,1.0},
{0.796875, 0.78125, 0.703125, 0.796875, 1.09375, 1.09375, 1.078125, 1.09375, 0.9375, 1.125, 1.09375, 1.171875, 1.125,1.0},
{0.78125, 0.734375, 0.65625, 0.734375, 1.0, 1.078125, 1.015625, 1.015625, 0.859375, 1.0, 1.03125, 1.046875, 0.953125,1.0},
{0.71875, 0.65625, 0.640625, 0.640625, 0.90625, 0.9375, 0.96875, 1.0, 0.84375, 1.0, 1.046875, 1.046875, 0.96875,1.0},
{0.75, 0.703125, 0.640625, 0.75, 1.09375, 1.140625, 1.015625, 0.984375, 0.828125, 0.96875, 0.921875, 1.03125, 0.921875,1.0},
{0.765625, 0.71875, 0.671875, 0.71875, 1.03125, 1.078125, 1.046875, 1.046875, 0.875, 0.984375, 1.03125, 1.046875, 0.984375,1.0},
{0.765625, 0.703125, 0.640625, 0.671875, 0.96875, 1.03125, 0.96875, 0.953125, 0.84375, 0.984375, 0.984375, 1.03125, 0.90625,1.0},
{0.75, 0.734375, 0.671875, 0.75, 1.03125, 1.046875, 0.984375, 1.046875, 0.84375, 1.03125, 1.03125, 1.09375, 0.984375,1.0},
{0.734375, 0.703125, 0.65625, 0.75, 1.046875, 1.046875, 0.984375, 1.03125, 0.875, 1.03125, 1.015625, 1.046875, 0.984375,1.0},
{0.734375, 0.71875, 0.703125, 0.765625, 1.125, 1.125, 1.09375, 1.09375, 0.9375, 1.125, 1.109375, 1.1875, 1.109375,1.0},

{0.71875, 0.71875, 0.6875, 0.71875, 1.0625, 1.03125, 1.0, 1.03125, 0.859375, 1.046875, 1.0, 1.046875, 0.96875,1.0},
{0.734375, 0.671875, 0.609375, 0.640625, 1.015625, 1.015625, 1.015625, 1.015625, 0.84375, 1.0, 1.015625, 1.046875, 0.984375,1.0},
{0.859375, 0.828125, 0.828125, 0.921875, 1.078125, 1.09375, 1.09375, 1.078125, 0.84375, 1.03125, 1.09375, 1.125, 1.03125,1.0},
{0.875, 0.859375, 0.90625, 0.984375, 1.09375, 1.078125, 1.09375, 1.03125, 0.875, 1.046875, 1.0625, 1.140625, 1.0,1.0},
{0.890625, 0.859375, 0.828125, 0.859375, 1.0, 1.140625, 1.09375, 1.046875, 0.84375, 1.046875, 1.078125, 1.09375, 0.984375,1.0},
{0.78125, 0.890625, 0.953125, 0.953125, 0.984375, 1.03125, 0.984375, 0.953125, 0.859375, 1.03125, 1.046875, 1.03125, 0.96875,1.0},
{0.953125, 0.90625, 0.96875, 1.046875, 1.0, 1.078125, 1.09375, 1.078125, 0.859375, 1.0625, 1.046875, 1.09375, 0.96875,1.0},
{0.953125, 0.921875, 0.890625, 1.046875, 1.046875, 1.03125, 1.09375, 1.109375, 0.859375, 1.03125, 1.109375, 1.078125, 0.953125,1.0},
{0.984375, 0.953125, 1.0, 1.078125, 1.015625, 1.03125, 1.0625, 1.046875, 0.828125, 0.984375, 1.0, 1.078125, 0.984375,1.0},
{1.046875, 1.0, 1.078125, 1.21875, 1.078125, 1.078125, 1.09375, 1.109375, 0.875, 1.109375, 1.078125, 1.125, 1.09375,1.0},
{1.09375, 1.03125, 1.09375, 1.171875, 1.015625, 1.046875, 1.078125, 1.015625, 0.84375, 1.03125, 1.03125, 1.078125, 0.984375,1.0},

{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0}};

int[] runs = {14170,14185,14191,14200,14204,14210,14222,14232,14262,14272,
14291,14314,14332,14340,14381,14391,14408,14421,14443,14460,
14470,14482,14506,14520,14540,14550,14573,14596,14612,14654,
14710,14720,14731,14750,14772};
boolean helper = true;
int holder = mults.length-1;
//System.out.println("The run number is ");
//System.out.println(this.runNum);
for (int i = 0; i<runs.length; i++){
if(runs[i]<14170){
holder=0;
helper=false;
}
if((runs[i]<=this.runNum)&&helper){
helper=false;
holder=i;
}
}
if(holder>=mults.length-1){
holder=mults.length-1;
}
for (int i = 0; i < nPulses; i++) {
ShapeFitParameters fit = new ShapeFitParameters();
fit.setAmp(amplitudes[i]);
fit.setAmpErr(amplitudeErrors[i]);
fit.setAmpErr(amplitudeErrors[i]/mults[holder][sensor.getLayerNumber()-1]);
//Note IF WE CHOOSE TO DO FIT PEDESTAL, THESE WILL NEED TO BE FIXED!!!
if (fitPedestal) {
fit.setChiProb(Gamma.regularizedGammaQ(samples.length - 2 * nPulses - 1, chisq));
fit.setChiProb(Gamma.regularizedGammaQ(samples.length - 2 * nPulses - 1, chisq/mults[holder][sensor.getLayerNumber()-1]));
} else {
fit.setChiProb(Gamma.regularizedGammaQ(samples.length - 2 * nPulses, chisq));
fit.setChiProb(Gamma.regularizedGammaQ(samples.length - 2 * nPulses, chisq/mults[holder][sensor.getLayerNumber()-1]));
}

fit.setT0(min.userState().value(i));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public class ShaperPileupFitAlgorithm implements ShaperFitAlgorithm {
private int refitAttempts = 0;
private int refitsAccepted = 0;
private int doOldDT = 1;
private int runNum = 1000000;

public ShaperPileupFitAlgorithm() {
}
Expand All @@ -28,7 +29,10 @@ public void setFitTimeMinimizer(String fitTimeMinimizer) {
this.onePulseFitter.setFitTimeMinimizer(fitTimeMinimizer);
this.twoPulseFitter.setFitTimeMinimizer(fitTimeMinimizer);
}

@Override
public void setRunNum(int RunNum){
this.runNum=RunNum;
}
//===> public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, HPSSVTCalibrationConstants.ChannelConstants constants) {
public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, PulseShape shape) {
Collection<ShapeFitParameters> fittedPulses = onePulseFitter.fitShape(rth, shape);
Expand Down