ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/LJMet/MultivariateAnalysis/src/TMBVector3.cc
Revision: 1.1
Committed: Tue Nov 11 23:01:22 2008 UTC (16 years, 5 months ago) by kukartse
Content type: text/plain
Branch: MAIN
CVS Tags: V00-03-01, ZMorph_BASE_20100408, gak040610_morphing, V00-02-02, gak011410, gak010310, ejterm2010_25nov2009, V00-02-01, V00-02-00, gak112409, CMSSW_22X_branch_base, segala101609, V00-01-15, V00-01-14, V00-01-13, V00-01-12, V00-01-11, V00-01-10, gak031009, gak030509, gak022309, gak021209, gak040209, gak012809, V00-01-09, V00-01-08, V00-01-07, V00-01-06, V00-01-05, V00-01-04, V00-00-07, V00-00-06, V00-00-05, V00-00-04, V00-01-03, V00-00-02, V00-00-01, HEAD
Branch point for: ZMorph-V00-03-01, CMSSW_22X_branch
Log Message:
initial creation of a package for LJMET multivariate analysis

File Contents

# User Rev Content
1 kukartse 1.1
2     #include "LJMet/MultivariateAnalysis/interface/TMBVector3.h"
3     #include <limits>
4     #include <cmath>
5    
6    
7     //ClassImp(TMBVector3)
8    
9    
10     bool TMBVector3::is_equal(double x1, double x2)
11     {
12     if ( x1 == 0.0 ) return x2 == 0.0;
13     if ( x2 == 0.0 ) return false;
14     double eps = std::numeric_limits<double>::epsilon();
15     // 1 tick = 0.5, 2tick = 1, ...
16     // Choose an intermediate value
17     double maxdif = 0.7*eps;
18     double num = x1 - x2;
19     double den = std::fabs(x1) + std::fabs(x2);
20     double rat = std::fabs(num/den);
21     return rat < maxdif;
22     }
23    
24    
25     /// Equivalence operator. True if all components are
26     /// equivalent within machine precision.
27     Bool_t TMBVector3::is_equal (const TMBVector3 &v) const
28     {
29     return is_equal (v.fX, fX) && is_equal (v.fY, fY) && is_equal (v.fZ, fZ);
30     }
31