56 for i
in range(n_grid):
63 hist = workspace[f
"g{i}"].generateBinned([x_var], n_samples)
93 def __init__(self, workspace):
95 self.classifier =
MLPClassifier(hidden_layer_sizes=(20, 20), max_iter=1000, random_state=42)
96 self.data_model =
None
100 self.workspace = workspace
103 def model_data(self, model, x, mu, n_samples):
106 samples_gaussian = ws[model].generate([ws[x], ws[mu]], n_samples).
to_numpy()
107 self._training_mus = samples_gaussian[mu]
116 samples_uniform = ws[model].generate(ws[x], n_samples)
124 thetas_model = self._training_mus.
reshape(-1, 1)
125 thetas_reference = self._training_mus.
reshape(-1, 1)
133 self.classifier.fit(self.X_train, self.y_train)
137n_samples_train = n_samples * 5
144 ws.factory(f
"Gaussian::gauss(x[-5,15], mu[0,4], {sigma})")
146 ws[
"mu"].setVal(mu_observed)
148 obs_data = ws[
"gauss"].generate(ws[
"x"], 1000)
158workspace =
build_ws(mu_observed, sigma)
159x_var = workspace[
"x"]
160mu_var = workspace[
"mu"]
161gauss = workspace[
"gauss"]
162uniform = workspace[
"uniform"]
163obs_data = workspace[
"obs_data"]
166model =
SBI(workspace)
181 return prob / (1 - prob)
202nll_morph = workspace[
"morph"].createNLL(obs_data)
206frame1 =
mu_var.frame(Title=
"NLL of SBI vs. Morphing;mu;NLL", Range=(2.2, 2.8))
208nll_gauss.plotOn(frame1, LineColor=
"kP6Yellow", ShiftToZero=
True, Name=
"gauss")
210nll_morph.plotOn(frame1, LineColor=
"kP6Red", ShiftToZero=
True, Name=
"morphed")
214frame2 =
x_var.frame(Title=
"Likelihood ratio r(x|#mu=2.5);x;p_{gauss}/p_{uniform}")
221c =
ROOT.TCanvas(
"",
"", 1200
if single_canvas
else 600, 600)
260for nll
in [nll_gauss, nllr_learned, nll_morph]:
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len