1 |
sixie |
1.1 |
//--------------------------------------------------------------------------------------------------
|
2 |
loizides |
1.10 |
// $Id: MathUtils.h,v 1.9 2009/06/24 14:51:04 loizides Exp $
|
3 |
sixie |
1.1 |
//
|
4 |
|
|
// MathUtils
|
5 |
|
|
//
|
6 |
loizides |
1.2 |
// Math utility functions.
|
7 |
sixie |
1.1 |
//
|
8 |
loizides |
1.2 |
// Authors: S.Xie, C.Loizides
|
9 |
sixie |
1.1 |
//--------------------------------------------------------------------------------------------------
|
10 |
|
|
|
11 |
loizides |
1.2 |
#ifndef MITCOMMON_MATHTOOLS_MATHUTILS_H
|
12 |
|
|
#define MITCOMMON_MATHTOOLS_MATHUTILS_H
|
13 |
sixie |
1.1 |
|
14 |
loizides |
1.2 |
#include "MitCommon/DataFormats/interface/Types.h"
|
15 |
sixie |
1.1 |
#include <TMath.h>
|
16 |
|
|
|
17 |
loizides |
1.3 |
namespace mithep
|
18 |
sixie |
1.1 |
{
|
19 |
loizides |
1.2 |
class MathUtils {
|
20 |
|
|
public:
|
21 |
loizides |
1.4 |
static Double_t AddInQuadrature(Double_t a, Double_t b);
|
22 |
loizides |
1.9 |
static void CalcRatio(Double_t n1, Double_t n2,
|
23 |
|
|
Double_t &r, Double_t &rlow, Double_t &rup);
|
24 |
loizides |
1.4 |
static Double_t DeltaPhi(Double_t phi1, Double_t phi2);
|
25 |
loizides |
1.7 |
template<class V1, class V2>
|
26 |
|
|
static Double_t DeltaPhi(const V1 &v1, const V2 &v2);
|
27 |
loizides |
1.4 |
static Double_t DeltaR(Double_t phi1, Double_t eta1, Double_t phi2, Double_t eta2);
|
28 |
loizides |
1.7 |
template<class V1, class V2>
|
29 |
|
|
static Double_t DeltaR(const V1 &v1, const V2 &v2);
|
30 |
loizides |
1.8 |
static Double_t DeltaR2(Double_t phi1, Double_t eta1, Double_t phi2, Double_t eta2);
|
31 |
|
|
template<class V1, class V2>
|
32 |
|
|
static Double_t DeltaR2(const V1 &v1, const V2 &v2);
|
33 |
loizides |
1.4 |
static Double_t Eta2Theta(Double_t eta);
|
34 |
|
|
static Double_t Theta2Eta(Double_t theta);
|
35 |
loizides |
1.10 |
|
36 |
|
|
ClassDef(MathUtils, 0) // Math utitily functions
|
37 |
loizides |
1.2 |
};
|
38 |
sixie |
1.1 |
}
|
39 |
bendavid |
1.6 |
|
40 |
|
|
//--------------------------------------------------------------------------------------------------
|
41 |
|
|
template<class V1, class V2>
|
42 |
loizides |
1.7 |
Double_t mithep::MathUtils::DeltaPhi(const V1 &v1, const V2 &v2)
|
43 |
|
|
{
|
44 |
|
|
// DeltaPhi between two given objects
|
45 |
|
|
|
46 |
|
|
return mithep::MathUtils::DeltaPhi(v1.Phi(),v2.Phi());
|
47 |
|
|
}
|
48 |
|
|
|
49 |
|
|
//--------------------------------------------------------------------------------------------------
|
50 |
|
|
template<class V1, class V2>
|
51 |
bendavid |
1.6 |
Double_t mithep::MathUtils::DeltaR(const V1 &v1, const V2 &v2)
|
52 |
|
|
{
|
53 |
loizides |
1.7 |
// DeltaR between two given objects
|
54 |
bendavid |
1.6 |
|
55 |
|
|
return mithep::MathUtils::DeltaR(v1.Phi(),v1.Eta(),v2.Phi(),v2.Eta());
|
56 |
|
|
}
|
57 |
loizides |
1.8 |
|
58 |
|
|
//--------------------------------------------------------------------------------------------------
|
59 |
|
|
template<class V1, class V2>
|
60 |
|
|
Double_t mithep::MathUtils::DeltaR2(const V1 &v1, const V2 &v2)
|
61 |
|
|
{
|
62 |
|
|
// DeltaR between two given objects
|
63 |
|
|
|
64 |
|
|
return mithep::MathUtils::DeltaR2(v1.Phi(),v1.Eta(),v2.Phi(),v2.Eta());
|
65 |
|
|
}
|
66 |
sixie |
1.1 |
#endif
|