Allow column redefinition in RDFTasks
Requires #8, as RDataFrame.Redefine
is not present in the CMSSW release currently used.
Create a new class, RDataFrame, inside base.py, that includes a ROOT.RDataFrame as an object. This class will redefine the RDataFrame.Define
, as
def Define(self, var_name, var_def):
try:
return self.df.Define(var_name, var_def)
except ExceptionRaisedWhenRedefining:
if self.allow_redefinition:
print(f"WARNING: allow_redefinition is active, so {var_name} will be redefined.")
return self.df.Redefine(var_name, var_def)
else:
raise ExceptionRaisedWhenRedefining(f"{var_name} is already included in RDataframe. Please use the allow_redefinition option to redefine the variable.")
where allow_redefinition
will be a parameter inside cmt.base_tasks.base.RDFTask. The other methods inside RDataFrame should be left unchanged, following what is done in https://gitlab.cern.ch/cms-phys-ciemat/plotting_tools/-/blob/master/plotting_tools/root/canvas.py?ref_type=heads#L15-19.
Edited by Jaime Leon Holgado