00001 //-------------------------------------------------------------------------- 00002 // 00003 // Environment: 00004 // This software is part of models developed at BES collaboration 00005 // based on the EvtGen framework. If you use all or part 00006 // of it, please give an appropriate acknowledgement. 00007 // 00008 // Copyright Information: See EvtGen/BesCopyright 00009 // Copyright (A) 2006 Ping Rong-Gang @IHEP 00010 // 00011 // Module: EvtDIY.cc 00012 // 00013 // Description: Class to calculate the Euler angles to rotate a system 00014 // 00015 // Modification history: 00016 // 00017 // Ping R.-G. December, 2007 Module created 00018 // 00019 //------------------------------------------------------------------------ 00020 // 00021 #ifndef EVTEULERANGLES_HH 00022 #define EVTEULERANGLES_HH 00023 00024 #include <iostream> 00025 // #include <math.h> 00026 #include "EvtGenBase/EvtVector4R.hh" 00027 #include "EvtGenBase/EvtVector3R.hh" 00028 00029 //using std::endl; 00030 //using std::fstream; 00031 00032 class EvtEulerAngles 00033 { 00034 00035 public: 00036 00037 //destructor 00038 virtual ~EvtEulerAngles(); 00039 00040 // constructor 00041 EvtEulerAngles(); 00042 EvtEulerAngles( const EvtVector3R & Yaxis, const EvtVector3R & Zaxis); 00043 EvtEulerAngles( const EvtVector4R & Pyaxis, const EvtVector4R & Pzaxis); 00044 void EulerAngles(); 00045 double getAlpha(); 00046 double getBeta(); 00047 double getGamma(); 00048 private: 00049 EvtVector3R _Yaxis,_Zaxis; 00050 double _alpha,_beta,_gamma,_ry,_rz; 00051 }; 00052 00053 #endif