From 17f96ce626beb7e9839b5dab3c588af6dc6d6532 Mon Sep 17 00:00:00 2001
From: Nikolai Hartmann <Nikolai.Hartmann@physik.uni-muenchen.de>
Date: Wed, 17 Oct 2018 08:45:08 +0200
Subject: [PATCH] option to fix parameters when writing friends (useful for
 parametrized classifiers)

---
 toolkit.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/toolkit.py b/toolkit.py
index 3e75d2c..6780435 100755
--- a/toolkit.py
+++ b/toolkit.py
@@ -1024,7 +1024,9 @@ class ClassificationProject(object):
     def write_friend_tree(self, score_name,
                           source_filename, source_treename,
                           target_filename, target_treename,
-                          batch_size=100000, score_mode=None):
+                          batch_size=100000,
+                          score_mode=None,
+                          fixed_params=None):
         f = ROOT.TFile.Open(source_filename)
         tree = f.Get(source_treename)
         entries = tree.GetEntries()
@@ -1037,8 +1039,11 @@ class ClassificationProject(object):
             x_from_tree = tree2array(tree,
                                      branches=self.branches+self.identifiers,
                                      start=start, stop=start+batch_size)
+            # for parametrized classifiers
+            if fixed_params is not None:
+                for param_name, value in fixed_params.items():
+                    x_from_tree[param_name] = value
             x_eval = rec2array(x_from_tree[self.branches])
-
             if len(self.identifiers) > 0:
                 # create list of booleans that indicate which events where used for training
                 df_identifiers = pd.DataFrame(x_from_tree[self.identifiers])
-- 
GitLab