57 for i
in range(n_grid):
64 hist = workspace[f
"g{i}"].generateBinned([x_var], n_samples)
94 def __init__(self, workspace):
96 self.classifier =
MLPClassifier(hidden_layer_sizes=(20, 20), max_iter=1000, random_state=42)
97 self.data_model =
None
101 self.workspace = workspace
104 def model_data(self, model, x, mu, n_samples):
107 samples_gaussian = ws[model].generate([ws[x], ws[mu]], n_samples).
to_numpy()
108 self._training_mus = samples_gaussian[mu]
117 samples_uniform = ws[model].generate(ws[x], n_samples)
125 thetas_model = self._training_mus.
reshape(-1, 1)
126 thetas_reference = self._training_mus.
reshape(-1, 1)
134 self.classifier.fit(self.X_train, self.y_train)
138n_samples_train = n_samples * 5
145 ws.factory(f
"Gaussian::gauss(x[-5,15], mu[0,4], {sigma})")
147 ws[
"mu"].setVal(mu_observed)
149 obs_data = ws[
"gauss"].generate(ws[
"x"], 1000)
159workspace =
build_ws(mu_observed, sigma)
160x_var = workspace[
"x"]
161mu_var = workspace[
"mu"]
162gauss = workspace[
"gauss"]
163uniform = workspace[
"uniform"]
164obs_data = workspace[
"obs_data"]
167model =
SBI(workspace)
182 return prob / (1 - prob)
203nll_morph = workspace[
"morph"].createNLL(obs_data)
207frame1 =
mu_var.frame(Title=
"NLL of SBI vs. Morphing;mu;NLL", Range=(2.2, 2.8))
209nll_gauss.plotOn(frame1, LineColor=
"kP6Yellow", ShiftToZero=
True, Name=
"gauss")
211nll_morph.plotOn(frame1, LineColor=
"kP6Red", ShiftToZero=
True, Name=
"morphed")
215frame2 =
x_var.frame(Title=
"Likelihood ratio r(x|#mu=2.5);x;p_{gauss}/p_{uniform}")
222c =
ROOT.TCanvas(
"",
"", 1200
if single_canvas
else 600, 600)
261for 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