From 401e442632cc323bdf5ad2401158c1e0e504f52a Mon Sep 17 00:00:00 2001
From: Nikolai Hartmann <Nikolai.Hartmann@physik.uni-muenchen.de>
Date: Tue, 30 Oct 2018 11:23:35 +0100
Subject: [PATCH] option to ignore negative weight events

---
 toolkit.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/toolkit.py b/toolkit.py
index 3b51650..46a4885 100755
--- a/toolkit.py
+++ b/toolkit.py
@@ -188,6 +188,8 @@ class ClassificationProject(object):
 
     :param normalize_weights: normalize the weights to mean 1
 
+    :param ignore_neg_weights: ignore events with negative weights in training (default: False)
+
     """
 
 
@@ -257,7 +259,8 @@ class ClassificationProject(object):
                         loss='binary_crossentropy',
                         mask_value=None,
                         apply_class_weight=True,
-                        normalize_weights=True):
+                        normalize_weights=True,
+                        ignore_neg_weights=False):
 
         self.name = name
         self.signal_trees = signal_trees
@@ -339,6 +342,7 @@ class ClassificationProject(object):
         self.mask_value = mask_value
         self.apply_class_weight = apply_class_weight
         self.normalize_weights = normalize_weights
+        self.ignore_neg_weights = ignore_neg_weights
 
         self.s_train = None
         self.b_train = None
@@ -437,6 +441,10 @@ class ClassificationProject(object):
                                      selection=self.selection,
                                      start=1, step=self.step_bkg, stop=self.stop_test)
 
+            if self.ignore_neg_weights:
+                self.s_train = self.s_train[self.s_train[self.weight_expr]>0]
+                self.b_train = self.b_train[self.b_train[self.weight_expr]>0]
+
             self.rename_fields(self.s_train)
             self.rename_fields(self.b_train)
             self.rename_fields(self.s_test)
-- 
GitLab