Dear rooters,
I am currently computing a trigger efficiency, as a function of a given variable, by filling two histograms (before and after passing the trigger) and, from them, producing a TEfficiency object using the constructor TEfficiency(const TH1& passed,const TH1& total)
.
Now, many questions (and possibly issues) related with this procedure are coming to my mind. Let me summarize them in the following, hoping that someone can shed light on this.
-
Negative per-event weight
Some of the processes I am taking into account have negative per-event weights, coming from the MC generator. Of course this is problematic, as this means that, in a given bin, the “pass” histogram can have a bigger yield than the “total” histogram, makingTEfficiency::CheckConsistency
complain. I am thinking of dropping the negative-weighted events in my calculation but…is this safe? -
Global weight
In my calculations, the event that populate the total and pass histograms come from a set of different processes. Clearly, I should “mix” them by taking into account the normalization factor σL/N_gen. If I understand correctly from TEfficiency documentation, in order to do this properly I should produce one TEfficiency object per process and then .Add() them. Is this correct? -
Positive per event-weight
Related to question 2), and assuming the answer to 2) is yes, does this still hold if I have to multiply the global weight by a positive per-event weight, which may vary from one event to the other?
Thanks a lot to you all,
cheers,
Fabio.