Re: [ROOT] on abs()

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri May 12 2000 - 08:02:26 MEST


Hi Minjeong,
You must be very careful with the C++ function abs in math.h.
This function is for integers and returns an integer. If you want to use
math.h, you should use fabs for floats.
If you use TMath::Abs function, this function will work for all
data types. So you cannot get your reported behaviour for TMath::Abs.
Please confirm.

Rene Brun

On Thu, 11 May 2000, Minjeong Kim wrote:

> 
> Hi Rooters,
> 
> I work with ROOT 23/11 version on KCC. While I am debugging my analysis
> codes, I discovered one mysterious thing. It looks like a bug, but I am
> not so sure. If this is a bug, I hope it can be fixed in later version
> since this is important in order to prevent big mistake sometimes. This
> doesn't show error message and if we don't have any expectation on
> analysis results, it might induce wrong interpretation of analysis. 
> 
> I tried next two cases to fill histogram.
>  
> Case 1 :
> 
> When I fill abs(aaa-bbb) from my ntuple in this way :
>    MyTree->Draw("abs(aaa-bbb)>>MyHistogram",MyCut,"goff");
> My histogram was O.K. 
>  
> Case 2 :
> 
> When I did calculation first to fill my histogram in this way :
> 
> Float_t diff;
> diff = abs(aaa-bbb) ;  or diff = TMath::Abs(aaa-bbb);
> MyHistogram->Fill(diff);
> 
> My histogram was so strange and I checked numbers with printing.
> All numbers(diff) were changed into integers. Of course aaa and
> bbb were also defined as Float_t.
>  
> Does anyone have the same experience as mine?
> 
> Minjeong  
> ================================
>  Min Jeong Kim (CDF/KHCL)
>      E-mail : mjkim@fnal.gov    
>      Office : CDF 137-B (X8473)  
> ================================
> 
> 



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:25 MET