CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Friends
hitfit::EtaDepResElement Class Reference

Represent a resolution and an $ \eta $ range in which the resolution is valid. More...

#include <EtaDepResElement.h>

Public Member Functions

 EtaDepResElement (double eta1, double eta2, const Vector_Resolution &res)
 Construct an instance of EtaDepResElement from the lower limit, upper limit, and the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit. More...
 
 EtaDepResElement (double eta1, double eta2, std::string res)
 Construct an instance of EtaDepResElement from the lower limit, upper limit, and a string which encoded the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit. More...
 
 EtaDepResElement (double eta1, double eta2, const Resolution &p_res, const Resolution &eta_res, const Resolution &phi_res, bool use_et)
 Construct an instance of EtaDepResElement from the lower limit, upper limit, and the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit. More...
 
const double EtaMax () const
 Return the lower limit of valid $ \eta $ range. More...
 
const double EtaMin () const
 Return the lower limit of valid $ \eta $ range. More...
 
const Vector_Resolution GetResolution () const
 Access the resolution. More...
 
bool IsInInterval (const double &eta) const
 Check if an $ \eta $ value is within this instance's $ \eta $ range. More...
 
bool IsNotOverlap (const EtaDepResElement &e) const
 Check if this instance does not have overlapping $ \eta $ range with another instance. More...
 
bool IsOnEdge (const double &eta) const
 Check if an $ \eta $ value is at the edge/boundary of this instance's valid $ \eta $ range. More...
 
bool IsOnEdge (const EtaDepResElement &e) const
 Check if another instance of EtaDepResElement lies at the edge/boundary of this instance's $ \eta $ range. this instance's valid $ \eta $ range. A tolerance factor of 1/1000000 is used. More...
 
bool IsOverlap (const EtaDepResElement &e) const
 Check if this instance has overlapping $ \eta $ range with another instance of EtaDepResElement. More...
 
 ~EtaDepResElement ()
 

Static Public Attributes

static const int InverseEtaPrecision = 1000000
 Constant, the inverse of precision expected. More...
 

Private Member Functions

void SetEta (double eta1, double eta2)
 

Private Attributes

double _EtaMax
 
double _EtaMin
 
Vector_Resolution _Vector_Resolution
 

Friends

bool operator< (const EtaDepResElement &a, const EtaDepResElement &b)
 Comparison operator, compare two EtaDepResElement instances based on their respective valid $\eta$ ranges. More...
 
std::ostream & operator<< (std::ostream &s, const EtaDepResElement &e)
 Output stream operator. More...
 

Detailed Description

Represent a resolution and an $ \eta $ range in which the resolution is valid.

Usage:
Users instantiate multiple instances of this class. For each instance users provide:

See the documentation for Vector_Resolution and Resolution classes for more details.

Author
Haryo Sumowidagdo Suhar.nosp@m.yo.S.nosp@m.umowi.nosp@m.dagd.nosp@m.o@cer.nosp@m.n.ch
Creation date:
June 2009

Definition at line 63 of file EtaDepResElement.h.

Constructor & Destructor Documentation

hitfit::EtaDepResElement::EtaDepResElement ( double  eta1,
double  eta2,
const Vector_Resolution res 
)

Construct an instance of EtaDepResElement from the lower limit, upper limit, and the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit.

Parameters
eta1Value of $ \eta $ in one end/edge/boundary of the valid $ \eta $ range.
eta2Value of $ \eta $ in the other end/edge/boundary of the valid $ \eta $ range.
resThe resolution.

Definition at line 33 of file EtaDepResElement.cc.

References SetEta().

34  :
36 {
37 
38  SetEta(eta1,eta2);
39 
40 }
Vector_Resolution _Vector_Resolution
void SetEta(double eta1, double eta2)
hitfit::EtaDepResElement::EtaDepResElement ( double  eta1,
double  eta2,
std::string  res 
)

Construct an instance of EtaDepResElement from the lower limit, upper limit, and a string which encoded the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit.

Parameters
eta1Value of $ \eta $ in one end/edge/boundary of the valid $ \eta $ range.
eta2Value of $ \eta $ in the other end/edge/boundary of the valid $ \eta $ range.
resThe resolution encoded in string.

Definition at line 43 of file EtaDepResElement.cc.

References SetEta().

44  :
46 {
47 
48  SetEta(eta1,eta2);
49 
50 }
Vector_Resolution _Vector_Resolution
void SetEta(double eta1, double eta2)
hitfit::EtaDepResElement::EtaDepResElement ( double  eta1,
double  eta2,
const Resolution p_res,
const Resolution eta_res,
const Resolution phi_res,
bool  use_et 
)

Construct an instance of EtaDepResElement from the lower limit, upper limit, and the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit.

Parameters
eta1Value of $ \eta $ in one end of the valid $ \eta $ range.
eta2Walue of $ \eta $ in the other end of the valid $ \eta $ range.
p_resThe energy/momentum resolution.
eta_resThe $ \eta $ resolution.
phi_resThe $ \phi $ resolution.
use_etIf true, then the energy/momentum resolution is for transverse component $ (p_{T}/E_{T}) $ instead for radial $ (p/E) $ component.

Definition at line 53 of file EtaDepResElement.cc.

References SetEta().

57  :
58  _Vector_Resolution(p_res,eta_res,phi_res,use_et)
59 {
60 
61  SetEta(eta1,eta2);
62 
63 }
Vector_Resolution _Vector_Resolution
void SetEta(double eta1, double eta2)
hitfit::EtaDepResElement::~EtaDepResElement ( )

Destructor.

Definition at line 66 of file EtaDepResElement.cc.

67 {
68 }

Member Function Documentation

const double hitfit::EtaDepResElement::EtaMax ( ) const

Return the lower limit of valid $ \eta $ range.

Definition at line 122 of file EtaDepResElement.cc.

References _EtaMax.

123 {
124 
125  return _EtaMax;
126 
127 }
const double hitfit::EtaDepResElement::EtaMin ( ) const

Return the lower limit of valid $ \eta $ range.

Definition at line 113 of file EtaDepResElement.cc.

References _EtaMin.

114 {
115 
116  return _EtaMin;
117 
118 }
const Vector_Resolution hitfit::EtaDepResElement::GetResolution ( ) const

Access the resolution.

Return:
The resolution.

Definition at line 178 of file EtaDepResElement.cc.

References _Vector_Resolution.

Referenced by hitfit::operator<<().

179 {
180 
181  return _Vector_Resolution;
182 
183 }
Vector_Resolution _Vector_Resolution
bool hitfit::EtaDepResElement::IsInInterval ( const double &  eta) const

Check if an $ \eta $ value is within this instance's $ \eta $ range.

Parameters
etaThe $ \eta $ value to be checked.
Return:
true if $ \eta $ is within the instance's $ \eta $ range. false if $ \eta $ is not within the instnace's $ \eta $ range.

Definition at line 149 of file EtaDepResElement.cc.

References _EtaMax, and _EtaMin.

Referenced by IsOverlap().

150 {
151 
152  return ((_EtaMin < eta) && (eta < _EtaMax));
153 
154 }
T eta() const
bool hitfit::EtaDepResElement::IsNotOverlap ( const EtaDepResElement e) const

Check if this instance does not have overlapping $ \eta $ range with another instance.

Parameters
eThe other instance of EtaDepResElement to be checked.
Return:
true if this instance does not have overlapping $ \eta $ range with another instance's $ \eta $ range. false if this instance has overlapping $ \eta $ range with another instance's $ \eta $ range.

Definition at line 140 of file EtaDepResElement.cc.

References IsOverlap().

141 {
142 
143  return !(IsOverlap(e));
144 
145 }
bool IsOverlap(const EtaDepResElement &e) const
Check if this instance has overlapping range with another instance of EtaDepResElement.
bool hitfit::EtaDepResElement::IsOnEdge ( const double &  eta) const

Check if an $ \eta $ value is at the edge/boundary of this instance's valid $ \eta $ range.

Parameters
etaThe $ \eta $ value to be checked.

Definition at line 158 of file EtaDepResElement.cc.

References _EtaMax, _EtaMin, and InverseEtaPrecision.

Referenced by IsOnEdge().

159 {
160 
161  bool nearEtaMin = fabs(eta - _EtaMin) < (1.0/double(InverseEtaPrecision));
162  bool nearEtaMax = fabs(eta - _EtaMax) < (1.0/double(InverseEtaPrecision));
163  return nearEtaMin || nearEtaMax ;
164 
165 }
T eta() const
static const int InverseEtaPrecision
Constant, the inverse of precision expected.
bool hitfit::EtaDepResElement::IsOnEdge ( const EtaDepResElement e) const

Check if another instance of EtaDepResElement lies at the edge/boundary of this instance's $ \eta $ range. this instance's valid $ \eta $ range. A tolerance factor of 1/1000000 is used.

Parameters
eThe $ \eta $ value to be checked.
Return:
true if $ \eta $ is at the edge/boundary the instance's $ \eta $ range. false if $ \eta $ is not at the edge/boundary within the instnace's $ \eta $ range.

Definition at line 169 of file EtaDepResElement.cc.

References _EtaMax, _EtaMin, and IsOnEdge().

170 {
171 
172  return (e.IsOnEdge(_EtaMin) || e.IsOnEdge(_EtaMax));
173 
174 }
bool hitfit::EtaDepResElement::IsOverlap ( const EtaDepResElement e) const

Check if this instance has overlapping $ \eta $ range with another instance of EtaDepResElement.

Parameters
eThe other instance of EtaDepResElement to be checked.
Return:
true if this instance has overlapping $ \eta $ range with another instance's $ \eta $ range.
false if this instance doesn't have overlapping $ \eta $ range with another instance's $ \eta $ range.

Definition at line 131 of file EtaDepResElement.cc.

References _EtaMax, _EtaMin, and IsInInterval().

Referenced by IsNotOverlap(), and hitfit::operator<().

132 {
133 
134  return (IsInInterval(e._EtaMin) || IsInInterval(e._EtaMax));
135 
136 }
bool IsInInterval(const double &eta) const
Check if an value is within this instance&#39;s range.
void hitfit::EtaDepResElement::SetEta ( double  eta1,
double  eta2 
)
private

Set the lower and upper limit of the valid eta range.

Parameters
eta1Value of $ \eta $ in one end of the valid $ \eta $ range.
eta2Value of $ \eta $ in the other end of the valid $ \eta $ range.

Definition at line 72 of file EtaDepResElement.cc.

References _EtaMax, _EtaMin, and InverseEtaPrecision.

Referenced by EtaDepResElement().

73 {
74 
75  if (fabs(eta1 - eta2) < (1.0/double(InverseEtaPrecision))) {
76  throw
77  std::runtime_error("EtaDepResElement::equal EtaMin and EtaMax");
78  }
79 
80  if (eta1 < eta2) {
81  _EtaMin = eta1 ;
82  _EtaMax = eta2 ;
83  } else {
84  _EtaMin = eta2 ;
85  _EtaMax = eta1 ;
86  }
87 
88 }
static const int InverseEtaPrecision
Constant, the inverse of precision expected.

Friends And Related Function Documentation

bool operator< ( const EtaDepResElement a,
const EtaDepResElement b 
)
friend

Comparison operator, compare two EtaDepResElement instances based on their respective valid $\eta$ ranges.

Parameters
aThe first instance of EtaDepResElement to be compared.
bThe second instance of EtaDepResElement to be compared.
Return:
TRUE if a's upper limit is less than b's lower limit.
FALSE all other cases.

Definition at line 103 of file EtaDepResElement.cc.

104 {
105 
106  if (a.IsOverlap(b)) { return false;}
107  return !(a._EtaMax > b._EtaMin);
108 
109 }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
std::ostream& operator<< ( std::ostream &  s,
const EtaDepResElement e 
)
friend

Output stream operator.

Parameters
sThe output stream to write to.
eThe instance of EtaDepResElement to be printed.
Return:
The output stream s

Definition at line 186 of file EtaDepResElement.cc.

187 {
188 
189  s << "(" << e._EtaMin << " to " << e._EtaMax << ")" << " / " << e.GetResolution ();
190  return s ;
191 
192 }

Member Data Documentation

double hitfit::EtaDepResElement::_EtaMax
private

Upper limit of the valid $ \eta $ range.

Definition at line 75 of file EtaDepResElement.h.

Referenced by EtaMax(), IsInInterval(), IsOnEdge(), IsOverlap(), hitfit::operator<(), hitfit::operator<<(), and SetEta().

double hitfit::EtaDepResElement::_EtaMin
private

Lower limit of the valid $ \eta $ range.

Definition at line 70 of file EtaDepResElement.h.

Referenced by EtaMin(), IsInInterval(), IsOnEdge(), IsOverlap(), hitfit::operator<(), hitfit::operator<<(), and SetEta().

Vector_Resolution hitfit::EtaDepResElement::_Vector_Resolution
private

The resolution.

Definition at line 89 of file EtaDepResElement.h.

Referenced by GetResolution().

const int hitfit::EtaDepResElement::InverseEtaPrecision = 1000000
static

Constant, the inverse of precision expected.

Definition at line 243 of file EtaDepResElement.h.

Referenced by IsOnEdge(), and SetEta().