51 std::array<float, 2>
result = {-1, -1};
84 ffull =
new TF1(
"ffull",
"((0.5-0.5*TMath::Erf(((x-[0])/[1])))*([2]+x*[3])+(0.5+0.5*TMath::Erf(((x-[0])/[1])))*([4]+x*[5]))");
87 ffull->SetParameter(1, 0.0000015);
88 ffull->SetParLimits(1, 0.000001, 0.01);
104 gPad->SetMargin(0.15, 0.05, 0.10, 0.05);
107 log_graph->GetXaxis()->SetTitle(
"bias voltage (V)");
108 log_graph->GetYaxis()->SetTitle(
"log of current");
124 ffull->DrawCopy(
"SAME");
128 l1->DrawLatexNDC(0.45, 0.90,
Form(
"V_{bd} (V)"));
129 l1->DrawLatexNDC(0.18, 0.85,
Form(
"guess"));
131 l1->DrawLatexNDC(0.18, 0.80,
Form(
"intercept"));
135 l1->DrawLatexNDC(0.18, 0.75,
Form(
"fit"));
154 std::array<float, 2>
result = {-1, -1};
165 TF1 *
ffull =
new TF1(
"ffull",
"[0]*TMath::Landau(x,[1],[2],0)*TMath::Gaus(x,[1],[3])");
166 ffull->SetParameter(0, 0.5);
168 ffull->SetParameter(2, 1);
169 ffull->SetParameter(3, 0.5);
178 gPad->SetMargin(0.15, 0.05, 0.10, 0.05);
181 ldv_graph->GetXaxis()->SetTitle(
"bias voltage (V)");
182 ldv_graph->GetYaxis()->SetTitle(
"log of current");
192 ffull->DrawCopy(
"SAME");
196 l1->DrawLatexNDC(0.45, 0.90,
Form(
"V_{bd} (V)"));
197 l1->DrawLatexNDC(0.18, 0.85,
Form(
"guess"));
199 l1->DrawLatexNDC(0.18, 0.80,
Form(
"fit"));
217 std::array<float, 2>
result = {-1, -1};
242 gPad->SetMargin(0.15, 0.05, 0.10, 0.05);
245 ild_graph->GetXaxis()->SetTitle(
"bias voltage (V)");
246 ild_graph->GetYaxis()->SetTitle(
"inverse log of current");
260 l1->DrawLatexNDC(0.45, 0.90,
Form(
"V_{bd} (V)"));
261 l1->DrawLatexNDC(0.18, 0.85,
Form(
"guess"));
263 l1->DrawLatexNDC(0.18, 0.80,
Form(
"fit"));
283 std::array<float, 2>
result = {-1, -1};
305 gPad->SetMargin(0.15, 0.05, 0.10, 0.05);
308 ld2_graph->GetXaxis()->SetTitle(
"bias voltage (V)");
309 ld2_graph->GetYaxis()->SetTitle(
"double derivative of log of current");
323 l1->DrawLatexNDC(0.45, 0.90,
Form(
"V_{bd} (V)"));
324 l1->DrawLatexNDC(0.18, 0.85,
Form(
"guess"));
326 l1->DrawLatexNDC(0.18, 0.80,
Form(
"fit"));
346 std::array<float, 2>
result = {-1, -1};
372 std::array<std::array<float, 2>, 2>
intercept = {{{33, 0.1}, {-25, 0.1}}};
380 ffull =
new TF1(
"ffull",
"((0.5-0.5*TMath::Erf(((x-[0])/[1])))*([2]+x*[3])+(0.5+0.5*TMath::Erf(((x-[0])/[1])))*([4]+x*[5]+x*x*[6]))");
383 ffull->SetParameter(1, 0.001);
384 ffull->SetParLimits(1, 0.000001, 0.1);
401 gPad->SetMargin(0.15, 0.05, 0.10, 0.05);
404 log_graph->GetXaxis()->SetTitle(
"bias voltage (V)");
405 log_graph->GetYaxis()->SetTitle(
"log of current");
421 ffull->DrawCopy(
"SAME");
425 l1->DrawLatexNDC(0.45, 0.90,
Form(
"V_{bd} (V)"));
426 l1->DrawLatexNDC(0.18, 0.85,
Form(
"guess"));
428 l1->DrawLatexNDC(0.18, 0.80,
Form(
"intercept"));
432 l1->DrawLatexNDC(0.18, 0.75,
Form(
"fit"));
535 std::array<float, 2>
result = {-1, -1};
647 result->GetX()[
iPnt] -= sensor_to_vbd[sensor] + sensor_to_vbd_Tdep[sensor] * (std::stof(get_database_info(
board_list[0],
step,
"temp")) - 243);
std::array< std::array< float, 2 >, 2 > get_intercept_x(TF1 *pol1)
Definition breakdown_voltage.h:7
TH2_Type * build_fine_tune_raw_histogram(std::vector< TString > kInputFileNames, TString kRunTag, TString kOutputFileName, bool kRecalculate)
Functions -------------------------------------------------------------------------------------------...
Definition fine_analysis.h:80
float threshold
Definition my_test_macro_for_WF_fitting.C:6
Definition breakdown_voltage.h:11
std::array< float, 2 > measure_breakdown_1(TGraphErrors *gTarget, std::string image_folder="", float threshold_guess=0.75)
Definition breakdown_voltage.h:148
std::array< float, 2 > measure_breakdown_0(TGraphErrors *gTarget, std::string image_folder="", float threshold_guess=0.75, bool erf_mediate=true, float min_before_fit=5., float max_before_fit=0.2, float min_after_fit=0.2, float max_after_fit=1.)
Definition breakdown_voltage.h:45
std::array< float, 2 > measure_breakdown_4(TGraphErrors *gTarget, std::string image_folder="", float threshold_guess=0.75, bool erf_mediate=true, float min_before_fit=5., float max_before_fit=0.2, float min_after_fit=0.2, float max_after_fit=1.)
Definition breakdown_voltage.h:340
std::array< double, 2 > find_vbd_guess(TGraphErrors *gLogTarget, float threshold=0.35)
Definition breakdown_voltage.h:24
std::array< float, 2 > measure_breakdown_2(TGraphErrors *gTarget, std::string image_folder="", float threshold_guess=0.75)
Definition breakdown_voltage.h:211
std::array< float, 2 > measure_breakdown_5(TGraphErrors *gTarget, std::string image_folder="", float threshold_guess=0.75)
Definition breakdown_voltage.h:529
std::array< float, 2 > measure_breakdown_3(TGraphErrors *gTarget, std::string image_folder="", float threshold_guess=0.75)
Definition breakdown_voltage.h:277
TGraphErrors * derivate(TGraphErrors *gin, double sign=1.)
Definition graphutils.C:399
TGraphErrors * log(TGraphErrors *gin)
Definition graphutils.C:564
TGraphErrors * power(TGraphErrors *target_graph, double exponent=1.)
Definition graphutils.C:16
std::array< std::array< float, 2 >, 2 > get_intercept_x(float m, float em, float q, float eq)
Definition general_utility.h:42
std::array< std::array< float, 2 >, 2 > get_intercept(TF1 *pol1, TF1 *pol2)
Definition utility.h:115