@@ -55,6 +55,7 @@ public class ShaperLinearFitAlgorithm implements ShaperFitAlgorithm, FCNBase {
5555 private boolean fitPedestal = false ;
5656 private boolean debug = false ;
5757 private static final Logger minuitLoggger = Logger .getLogger ("org.freehep.math.minuit" );
58+ private int runNum = 1000000 ;
5859
5960 public ShaperLinearFitAlgorithm (int nPulses ) {
6061 this .nPulses = nPulses ;
@@ -89,6 +90,11 @@ public void setFitTimeMinimizer(String fitTimeMinimizer) {
8990 this .fitTimeMinimizer = fitTimeMinimizer ;
9091 }
9192
93+ @ Override
94+ public void setRunNum (int RunNum ){
95+ this .runNum =RunNum ;
96+ }
97+
9298 @ Override
9399 //===> public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, ChannelConstants constants) {
94100 public Collection <ShapeFitParameters > fitShape (RawTrackerHit rth , PulseShape shape ) {
@@ -142,14 +148,75 @@ public Collection<ShapeFitParameters> fitShape(short[] samples) {
142148
143149 ArrayList <ShapeFitParameters > fits = new ArrayList <ShapeFitParameters >();
144150
151+ 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 },
152+ {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 },
153+ {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 },
154+ {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 },
155+ {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 },
156+ {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 },
157+ {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 },
158+ {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 },
159+ {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 },
160+ {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 },
161+ {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 },
162+ {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 },
163+ {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 },
164+ {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 },
165+ {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 },
166+ {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 },
167+ {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 },
168+ {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 },
169+ {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 },
170+ {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 },
171+ {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 },
172+ {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 },
173+ {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 },
174+ {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 },
175+
176+ {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 },
177+ {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 },
178+ {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 },
179+ {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 },
180+ {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 },
181+ {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 },
182+ {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 },
183+ {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 },
184+ {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 },
185+ {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 },
186+ {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 },
187+
188+ {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 }};
189+
190+ int [] runs = {14170 ,14185 ,14191 ,14200 ,14204 ,14210 ,14222 ,14232 ,14262 ,14272 ,
191+ 14291 ,14314 ,14332 ,14340 ,14381 ,14391 ,14408 ,14421 ,14443 ,14460 ,
192+ 14470 ,14482 ,14506 ,14520 ,14540 ,14550 ,14573 ,14596 ,14612 ,14654 ,
193+ 14710 ,14720 ,14731 ,14750 ,14772 };
194+ boolean helper = true ;
195+ int holder = mults .length -1 ;
196+ //System.out.println("The run number is ");
197+ //System.out.println(this.runNum);
198+ for (int i = 0 ; i <runs .length ; i ++){
199+ if (runs [i ]<14170 ){
200+ holder =0 ;
201+ helper =false ;
202+ }
203+ if ((runs [i ]<=this .runNum )&&helper ){
204+ helper =false ;
205+ holder =i ;
206+ }
207+ }
208+ if (holder >=mults .length -1 ){
209+ holder =mults .length -1 ;
210+ }
145211 for (int i = 0 ; i < nPulses ; i ++) {
146212 ShapeFitParameters fit = new ShapeFitParameters ();
147213 fit .setAmp (amplitudes [i ]);
148- fit .setAmpErr (amplitudeErrors [i ]);
214+ fit .setAmpErr (amplitudeErrors [i ]/mults [holder ][sensor .getLayerNumber ()-1 ]);
215+ //Note IF WE CHOOSE TO DO FIT PEDESTAL, THESE WILL NEED TO BE FIXED!!!
149216 if (fitPedestal ) {
150- fit .setChiProb (Gamma .regularizedGammaQ (samples .length - 2 * nPulses - 1 , chisq ));
217+ fit .setChiProb (Gamma .regularizedGammaQ (samples .length - 2 * nPulses - 1 , chisq / mults [ holder ][ sensor . getLayerNumber ()- 1 ] ));
151218 } else {
152- fit .setChiProb (Gamma .regularizedGammaQ (samples .length - 2 * nPulses , chisq ));
219+ fit .setChiProb (Gamma .regularizedGammaQ (samples .length - 2 * nPulses , chisq / mults [ holder ][ sensor . getLayerNumber ()- 1 ] ));
153220 }
154221
155222 fit .setT0 (min .userState ().value (i ));
0 commit comments