00001
00002
00003
00004 #include <iostream>
00005
00006 #include "HepMC/SimpleVector.h"
00007
00008 int main()
00009 {
00010
00011 HepMC::ThreeVector vector3;
00012 HepMC::ThreeVector v3(1.1,2.2,3.3);
00013 HepMC::ThreeVector vx(1.34);
00014
00015 HepMC::ThreeVector v3copy( v3 );
00016
00017 double eps = 1.e-15;
00018 int numbad = 0;
00019
00020 double x = v3.x();
00021 double y = v3.y();
00022 double z = v3.z();
00023 double p2 = v3.perp2();
00024 double pt = v3.perp();
00025 double r = v3.r();
00026 double th = v3.theta();
00027 double ph = v3.phi();
00028 double mag = std::sqrt(x*x + y*y + z*z);
00029 double pperp = std::sqrt(x*x + y*y);
00030
00031 vx.set(1., 2., 3.);
00032 vx.setX(1.1);
00033 vx.setY(2.3);
00034 vx.setZ(4.4);
00035 vx.setPhi(0.12);
00036 vx.setTheta(0.54);
00037
00038 vector3 = v3;
00039
00040 if( fabs( mag - r ) > eps ) {
00041 std::cout << "different ThreeVector magnitude: " << mag << " " << r << std::endl;
00042 std::cout << "difference is : " << ( mag - r ) << std::endl;
00043 ++numbad;
00044 }
00045 if( fabs( pperp - pt ) > eps ) {
00046 std::cout << "different ThreeVector Pt: " << pperp << " " << pt << std::endl;
00047 std::cout << "difference is : " << ( pperp - pt ) << std::endl;
00048 ++numbad;
00049 }
00050
00051 if( v3 == vector3 ) {
00052 } else {
00053 ++numbad;
00054 std::cout << "vectors v3 and vector3 are different" << std::endl;
00055 }
00056 if( v3 != v3copy ) {
00057 ++numbad;
00058 std::cout << "vectors v3 and v3copy are different" << std::endl;
00059 }
00060
00061
00062 HepMC::FourVector vector;
00063 HepMC::FourVector v4(1.1,2.2,3.3,4.4);
00064 HepMC::FourVector vt(1.34);
00065
00066 HepMC::FourVector vectorcopy( v4 );
00067 vector = v4;
00068
00069 double px = v4.px();
00070 double py = v4.py();
00071 double pz = v4.pz();
00072 double e = v4.e();
00073 x = vectorcopy.x();
00074 y = vectorcopy.y();
00075 z = vectorcopy.z();
00076 double t = vectorcopy.t();
00077
00078 p2 = v4.perp2();
00079 pt = v4.perp();
00080 th = v4.theta();
00081 ph = v4.phi();
00082 r = v4.rho();
00083 double masssq1 = v4.m2();
00084 double mass1 = v4.m();
00085 double pr1 = v4.pseudoRapidity();
00086 double eta1 = v4.eta();
00087 double masssq2 = vector.m2();
00088 double mass2 = vector.m();
00089 double pr2 = vector.pseudoRapidity();
00090 double eta2 = vector.eta();
00091
00092 vt.set(1., 2., 3., 5.5);
00093 vt.setX(1.1);
00094 vt.setY(2.3);
00095 vt.setZ(4.4);
00096 vt.setT(6.5);
00097 vt.setPx(3.1);
00098 vt.setPy(2.2);
00099 vt.setPz(-1.1);
00100 vt.setE(5.4);
00101
00102 mag = std::sqrt(x*x + y*y + z*z);
00103 pperp = std::sqrt(x*x + y*y);
00104 if( fabs( mag - r ) > eps ) {
00105 std::cout << "different FourVector magnitude: " << mag << " " << r << std::endl;
00106 std::cout << "difference is : " << ( mag - r ) << std::endl;
00107 ++numbad;
00108 }
00109 if( fabs( pperp - pt ) > eps ) {
00110 std::cout << "different FourVector Pt: " << pperp << " " << pt << std::endl;
00111 std::cout << "difference is : " << ( pperp - pt ) << std::endl;
00112 ++numbad;
00113 }
00114
00115 if( px != x ) {
00116 std::cout << "different X values: " << px << " " << x << std::endl;
00117 ++numbad;
00118 }
00119 if( py != y ) {
00120 std::cout << "different Y values: " << py << " " << y << std::endl;
00121 ++numbad;
00122 }
00123 if( pz != z ) {
00124 std::cout << "different Z values: " << pz << " " << z << std::endl;
00125 ++numbad;
00126 }
00127 if( e != t ) {
00128 std::cout << "different E values: " << e << " " << t << std::endl;
00129 ++numbad;
00130 }
00131 if( fabs( masssq1 - masssq2 ) > eps ) {
00132 std::cout << "different mass sq values: " << masssq1 << " " << masssq2 << std::endl;
00133 std::cout << "difference is : " << ( masssq1 - masssq2 ) << std::endl;
00134 ++numbad;
00135 }
00136 if( fabs( mass1 - mass2 ) > eps ) {
00137 std::cout << "different mass values: " << mass1 << " " << mass2 << std::endl;
00138 std::cout << "difference is : " << ( mass1 - mass2 ) << std::endl;
00139 ++numbad;
00140 }
00141 if( fabs( pr1 - pr2 ) > eps ) {
00142 std::cout << "different pseudorapidity values: " << pr1 << " " << pr2 << std::endl;
00143 std::cout << "difference is : " << ( pr1 - pr2 ) << std::endl;
00144 ++numbad;
00145 }
00146 if( fabs( eta1 - eta2 ) > eps ) {
00147 std::cout << "different eta values: " << eta1 << " " << eta2 << std::endl;
00148 std::cout << "difference is : " << ( eta1 - eta2 ) << std::endl;
00149 ++numbad;
00150 }
00151 if( v4 == vector ) {
00152 } else {
00153 std::cout << "vectors v and vector are different" << std::endl;
00154 ++numbad;
00155 }
00156 if( v4 != vectorcopy ) {
00157 std::cout << "vectors v and vectorcopy are different" << std::endl;
00158 ++numbad;
00159 }
00160
00161 return numbad;
00162 }