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, making
TEfficiency::CheckConsistencycomplain. I am thinking of dropping the negative-weighted events in my calculation but…is this safe?
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,