CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

Geom::OnePiRange< T > Class Template Reference

#include <OnePiRange.h>

List of all members.

Public Member Functions

T degrees () const
T eta () const
 Return the pseudorapidity.
 OnePiRange (const T &val)
 Constructor from T, does not provide automatic conversion.
 OnePiRange ()
 Default constructor does not initialise - just as double.
template<class T1 >
 operator OnePiRange< T1 > ()
 Template argument conversion.
 operator T () const
 conversion operator makes transparent use possible.
OnePiRangeoperator*= (const T &a)
OnePiRangeoperator+= (const T &a)
OnePiRangeoperator+= (const OnePiRange &a)
OnePiRangeoperator-= (const OnePiRange &a)
OnePiRangeoperator-= (const T &a)
OnePiRangeoperator/= (const T &a)
T value () const
 Explicit access to value in case implicit conversion not OK.

Private Member Functions

void normalize ()

Private Attributes

T theValue

Detailed Description

template<class T>
class Geom::OnePiRange< T >

A class for polar angle represantation. The use of OnePiRange<T> is tranparant due to the implicit conversion to T Constructs like cos(theta) work as with float or double. The difference with respect to built-in types is that OnePiRange is kept in the range [0, pi], and this is consistently implemented in aritmetic operations. In other words, OnePiRange implements "modulo(pi)" arithmetics.

Definition at line 20 of file OnePiRange.h.


Constructor & Destructor Documentation

template<class T>
Geom::OnePiRange< T >::OnePiRange ( ) [inline]

Default constructor does not initialise - just as double.

Definition at line 24 of file OnePiRange.h.

{}
template<class T>
Geom::OnePiRange< T >::OnePiRange ( const T val) [inline, explicit]

Constructor from T, does not provide automatic conversion.

Definition at line 27 of file OnePiRange.h.

References Geom::OnePiRange< T >::normalize().

: theValue(val) { normalize(); }

Member Function Documentation

template<class T>
T Geom::OnePiRange< T >::degrees ( ) const [inline]

Definition at line 49 of file OnePiRange.h.

References Geom::pi(), and Geom::OnePiRange< T >::theValue.

{ return theValue*180./pi();}
template<class T>
T Geom::OnePiRange< T >::eta ( ) const [inline]

Return the pseudorapidity.

Definition at line 53 of file OnePiRange.h.

References funct::log(), funct::tan(), and Geom::OnePiRange< T >::theValue.

{ return -log(tan(theValue/2.)); } 
template<class T>
void Geom::OnePiRange< T >::normalize ( ) [inline, private]
template<class T>
template<class T1 >
Geom::OnePiRange< T >::operator OnePiRange< T1 > ( ) [inline]

Template argument conversion.

Definition at line 33 of file OnePiRange.h.

References Geom::OnePiRange< T >::theValue.

{ return OnePiRange<T1>(theValue);}
template<class T>
Geom::OnePiRange< T >::operator T ( ) const [inline]

conversion operator makes transparent use possible.

Definition at line 30 of file OnePiRange.h.

References Geom::OnePiRange< T >::theValue.

{ return theValue;}
template<class T>
OnePiRange& Geom::OnePiRange< T >::operator*= ( const T a) [inline]

Definition at line 45 of file OnePiRange.h.

References a, Geom::OnePiRange< T >::normalize(), and Geom::OnePiRange< T >::theValue.

{theValue*=a; normalize(); return *this;}
template<class T>
OnePiRange& Geom::OnePiRange< T >::operator+= ( const T a) [inline]

Definition at line 39 of file OnePiRange.h.

References a, Geom::OnePiRange< T >::normalize(), and Geom::OnePiRange< T >::theValue.

{theValue+=a; normalize(); return *this;}
template<class T>
OnePiRange& Geom::OnePiRange< T >::operator+= ( const OnePiRange< T > &  a) [inline]

Definition at line 40 of file OnePiRange.h.

References Geom::OnePiRange< T >::operator+=(), and Geom::OnePiRange< T >::value().

Referenced by Geom::OnePiRange< T >::operator+=().

{return operator+=(a.value());}
template<class T>
OnePiRange& Geom::OnePiRange< T >::operator-= ( const OnePiRange< T > &  a) [inline]

Definition at line 43 of file OnePiRange.h.

References Geom::OnePiRange< T >::operator-=(), and Geom::OnePiRange< T >::value().

Referenced by Geom::OnePiRange< T >::operator-=().

{return operator-=(a.value());}
template<class T>
OnePiRange& Geom::OnePiRange< T >::operator-= ( const T a) [inline]

Definition at line 42 of file OnePiRange.h.

References a, Geom::OnePiRange< T >::normalize(), and Geom::OnePiRange< T >::theValue.

{theValue-=a; normalize(); return *this;}
template<class T>
OnePiRange& Geom::OnePiRange< T >::operator/= ( const T a) [inline]

Definition at line 47 of file OnePiRange.h.

References a, Geom::OnePiRange< T >::normalize(), and Geom::OnePiRange< T >::theValue.

{theValue/=a; normalize(); return *this;}
template<class T>
T Geom::OnePiRange< T >::value ( ) const [inline]

Explicit access to value in case implicit conversion not OK.

Definition at line 36 of file OnePiRange.h.

References Geom::OnePiRange< T >::theValue.

Referenced by Geom::OnePiRange< T >::operator+=(), Geom::operator-(), Geom::OnePiRange< T >::operator-=(), and Geom::operator/().

{ return theValue;}

Member Data Documentation

template<class T>
T Geom::OnePiRange< T >::theValue [private]