[Rivet] CMS analysis of dijet ratios at large rapdities

Hendrik Hoeth Hendrik.Hoeth at cern.ch
Fri Oct 5 19:53:45 BST 2012


Dear Vadim,

thanks a lot for your prompt reply. May I ask you for some more
clarification on a few details, please?

Thus spake Vadim Oreshkin (Vadim.Oreshkin at cern.ch):

>> - In the main error formula "sqrt( ((1.-2.*w)*e1*e1 + w*w*e2*e2 )/(b2*b2))"
>>   the errors appear in fourth power, while in the ROOT version they
>>   don't.
> 
> [...] For the current version of ROOT it should be
> http://root.cern.ch/root/html/src/TH1.cxx.html#2746.
> 
> [... motivation for your error handling, never questioned that ...]
> 
> For weighted versions of histograms we use a more complicated formula,
> which we borrowed from ROOT:
> http://root.cern.ch/phpBB3/viewtopic.php?f=3&t=3753
> 
>   fSumw2.fArray[bin] = TMath::Abs( ( (1-2*w)*e1*e1 + w*w*e2*e2 )/(b2*b2) );

I think I need to clarify my question. In the ROOT implementation e1 and
e2 are the errors on the bin content:

  Double_t e1 = h1->GetBinError(bin);
  Double_t e2 = h2->GetBinError(bin);

In your implementation, e1 and e2 are the *squared* errors:

  double e1 = pow(h2.binError(i),2);
  double e2 = pow(h1.binError(i),2);

I was wondering what the reasion for this additional square was.

> - At the end you divide the error by a factor of 2.
> 
> We divide by 2, because ROOT and Rivet use different conventions for
> storing errors. Rivet setErrorPlus,setErrorMinus store the value
> given by the argument as a pair assymmetric errors, while in ROOT we
> store single value of an error.

Nevertheless, the ROOT errors are plus/minus errors, too. In fact,
GetBinErrorLow and GetBinErrorUp will return GetBinError for the kNormal
and sumw2 cases. Your factor of 1/2 is not needed.

Cheers,

   Hendrik

-- 
If your dreams don't scare you, then you are not dreaming big enough.


More information about the Rivet mailing list