/usr/include/CLHEP/Vector/EulerAngles.h is in libclhep-dev 2.1.2.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | #ifndef HEP_EULERANGLES_H
#define HEP_EULERANGLES_H
// ----------------------------------------------------------------------
//
// EulerAngles.h EulerAngles class --
// Support class for PhysicsVectors classes
//
// History:
// 09-Jan-1998 WEB FixedTypes is now found in ZMutility
// 12-Jan-1998 WEB PI is now found in ZMutility
// 15-Jun-1998 WEB Added namespace support
// 02-May-2000 WEB No global using
// 26-Jul-2000 MF CLHEP version
//
// ----------------------------------------------------------------------
#include <iostream>
#include "CLHEP/Vector/defs.h"
namespace CLHEP {
// Declarations of classes and global methods
class HepEulerAngles;
std::ostream & operator<<(std::ostream & os, const HepEulerAngles & aa);
std::istream & operator>>(std::istream & is, HepEulerAngles & aa);
/**
* @author
* @ingroup vector
*/
class HepEulerAngles {
protected:
typedef HepEulerAngles EA; // just an abbreviation
static double tolerance; // to determine relative nearness
public:
// ---------- Constructors:
inline HepEulerAngles();
inline HepEulerAngles( double phi, double theta, double psi );
// ---------- Destructor, copy constructor, assignment:
// use C++ defaults
// ---------- Accessors:
public:
inline double getPhi() const;
inline double phi() const;
inline EA & setPhi( double phi );
inline double getTheta() const;
inline double theta() const;
inline EA & setTheta( double theta );
inline double getPsi() const;
inline double psi() const;
inline EA & setPsi( double psi );
inline EA & set( double phi, double theta, double psi );
// ---------- Operations:
// comparisons:
inline int compare ( const EA & ea ) const;
inline bool operator==( const EA & ea ) const;
inline bool operator!=( const EA & ea ) const;
inline bool operator< ( const EA & ea ) const;
inline bool operator<=( const EA & ea ) const;
inline bool operator> ( const EA & ea ) const;
inline bool operator>=( const EA & ea ) const;
// relative comparison:
inline static double getTolerance();
inline static double setTolerance( double tol );
bool isNear ( const EA & ea, double epsilon = tolerance ) const;
double howNear( const EA & ea ) const;
// ---------- I/O:
friend std::ostream & operator<<( std::ostream & os, const EA & ea );
friend std::istream & operator>>( std::istream & is, EA & ea );
// ---------- Helper methods:
protected:
double distance( const HepEulerAngles & ex ) const;
// ---------- Data members:
protected:
double phi_;
double theta_;
double psi_;
}; // HepEulerAngles
} // namespace CLHEP
namespace zmpv {
typedef CLHEP::HepEulerAngles EulerAngles;
} // end of namespace zmpv
#define EULERANGLES_ICC
#include "CLHEP/Vector/EulerAngles.icc"
#undef EULERANGLES_ICC
#ifdef ENABLE_BACKWARDS_COMPATIBILITY
// backwards compatibility will be enabled ONLY in CLHEP 1.9
using namespace CLHEP;
#endif
#endif // EULERANGLES_H
|