Skip to content

Commit

Permalink
Change range and inital values for the fit function for forward Vz fo…
Browse files Browse the repository at this point in the history
…r RG-D. Apply the double gaussian fit only for solid target. (#278)
  • Loading branch information
mathieuouillon authored Feb 14, 2025
1 parent 3984ece commit cd3b6b1
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,36 @@ import org.jlab.groot.math.F1D


class ForwardFitter{
static F1D fitBimodal(H1F h1) {
def f1 = new F1D("fit:"+h1.getName(), "[amp1]*gaus(x,[mean1],[sigma1])+[amp2]*gaus(x,[mean2],[sigma2])+[p0]+[p1]*x", -20.0, 10.0);
static F1D fitBimodal(H1F h1) {
def f1 = new F1D("fit:"+h1.getName(), "[amp1]*gaus(x,[mean1],[sigma1])+[amp2]*gaus(x,[mean2],[sigma2])+[p0]+[p1]*x", -9.0, 0.0);
double hAmp = h1.getBinContent(h1.getMaximumBin());
double hMean = h1.getAxis().getBinCenter(h1.getMaximumBin());
double hRMS = h1.getRMS(); //ns
double rangeMin = (hMean - (3*hRMS));
double rangeMax = (hMean + (3*hRMS));
double hRMS = h1.getRMS();
double rangeMin = (-9);
double rangeMax = (0);
f1.setRange(rangeMin, rangeMax);
f1.setParameter(0, hAmp);
f1.setParameter(1, -8);
f1.setParameter(2, 0.1);
f1.setParameter(2, 0.5);
f1.setParameter(3, hAmp);
f1.setParameter(4, -3);
f1.setParameter(5, 0.1);
f1.setParameter(5, 0.5);
f1.setParameter(6, 1);
f1.setParameter(7, 1);
MoreFitter.fit(f1,h1,"LQ");
double hMean1 = f1.getParameter(1)
double hRMS1 = f1.getParameter(2).abs()
double hMean2 = f1.getParameter(3)
double hRMS2 = f1.getParameter(4).abs()

def makefit = {func->
double hMean1 = func.getParameter(1)
double hRMS1 = func.getParameter(2).abs()
double hMean2 = func.getParameter(3)
double hRMS2 = func.getParameter(4).abs()
func.setRange(-20, 20)
hMean1 = func.getParameter(1)
hRMS1 = func.getParameter(2).abs()
hMean2 = func.getParameter(4)
hRMS2 = func.getParameter(5).abs()
func.setRange(-9, 0)
MoreFitter.fit(func,h1,"Q")

return [func.getChiSquare(), (0..<func.getNPars()).collect{func.getParameter(it)}]
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,12 @@ def processDirectory(dir, run) {

def f1
if(run >= 18305 && run <= 19131) {
f1 = ForwardFitter.fitBimodal(h1)
if ((run == 18580) || (18305 <= run && run <= 18336) || (18396 <= run && run <= 18399) || (18406 <= run && run <= 18439) || (18644 <= run && run <= 18656) || (18764 <= run && run <= 18790) || (18851 <= run && run <= 18873) || (18977 <= run && run <= 19060)) {
f1 = ForwardFitter.fit(h1)
}
else {
f1 = ForwardFitter.fitBimodal(h1)
}
} else {
f1 = ForwardFitter.fit(h1)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,12 @@ def processDirectory(dir, run) {

def f1
if(run >= 18305 && run <= 19131) {
f1 = ForwardFitter.fitBimodal(h1)
if ((run == 18580) || (18305 <= run && run <= 18336) || (18396 <= run && run <= 18399) || (18406 <= run && run <= 18439) || (18644 <= run && run <= 18656) || (18764 <= run && run <= 18790) || (18851 <= run && run <= 18873) || (18977 <= run && run <= 19060)) {
f1 = ForwardFitter.fit(h1)
}
else {
f1 = ForwardFitter.fitBimodal(h1)
}
} else {
f1 = ForwardFitter.fit(h1)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,15 @@ def processDirectory(dir, run) {

def f1
if(run >= 18305 && run <= 19131) {
f1 = ForwardFitter.fitBimodal(h1)
if ((run == 18580) || (18305 <= run && run <= 18336) || (18396 <= run && run <= 18399) || (18406 <= run && run <= 18439) || (18644 <= run && run <= 18656) || (18764 <= run && run <= 18790) || (18851 <= run && run <= 18873) || (18977 <= run && run <= 19060)) {
f1 = ForwardFitter.fit(h1)
}
else {
f1 = ForwardFitter.fitBimodal(h1)
}
} else {
f1 = ForwardFitter.fit(h1)
}

funclist.add(f1)
meanlist.add(f1.getParameter(1))
sigmalist.add(f1.getParameter(2).abs())
Expand Down

0 comments on commit cd3b6b1

Please sign in to comment.