hepmc - Blame information for rev 209
Subversion Repositories:
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 55 | garren | 1 | // |
| 2 | // First pass - simply exercise all the vector methods | ||
| 3 | // | ||
| 4 | #include <iostream> | ||
| 5 | |||
| 6 | #include "HepMC/SimpleVector.h" | ||
| 7 | |||
| 209 | garren | 8 | int threeVectorMath(); |
| 9 | int fourVectorMath(); | ||
| 10 | |||
| 55 | garren | 11 | int main() |
| 12 | { | ||
| 13 | // ThreeVector | ||
| 14 | HepMC::ThreeVector vector3; | ||
| 15 | HepMC::ThreeVector v3(1.1,2.2,3.3); | ||
| 16 | HepMC::ThreeVector vx(1.34); | ||
| 17 | |||
| 18 | HepMC::ThreeVector v3copy( v3 ); | ||
| 89 | garren | 19 | |
| 20 | int numbad = 0; | ||
| 21 | |||
| 55 | garren | 22 | double x = v3.x(); |
| 23 | double y = v3.y(); | ||
| 24 | double z = v3.z(); | ||
| 25 | double p2 = v3.perp2(); | ||
| 26 | double pt = v3.perp(); | ||
| 27 | double l = v3.mag(); | ||
| 28 | double r = v3.r(); | ||
| 29 | double th = v3.theta(); | ||
| 30 | double ph = v3.phi(); | ||
| 31 | |||
| 32 | vx.set(1., 2., 3.); | ||
| 33 | vx.setX(1.1); | ||
| 34 | vx.setY(2.3); | ||
| 35 | vx.setZ(4.4); | ||
| 36 | vx.setPhi(0.12); | ||
| 37 | vx.setTheta(0.54); | ||
| 38 | |||
| 39 | vector3 = v3; | ||
| 40 | |||
| 41 | if( v3 == vector3 ) { | ||
| 42 | } else { | ||
| 56 | garren | 43 | std::cout << "vectors v3 and vector3 are different" << std::endl; |
| 55 | garren | 44 | } |
| 45 | if( v3 != v3copy ) { | ||
| 56 | garren | 46 | std::cout << "vectors v3 and v3copy are different" << std::endl; |
| 55 | garren | 47 | } |
| 209 | garren | 48 | |
| 49 | numbad += threeVectorMath(); | ||
| 55 | garren | 50 | |
| 51 | // FourVector | ||
| 209 | garren | 52 | HepMC::FourVector vector, v4scale1; |
| 53 | HepMC::FourVector v4(1.1,2.2,3.3,4.4); | ||
| 55 | garren | 54 | HepMC::FourVector vt(1.34); |
| 55 | |||
| 209 | garren | 56 | HepMC::FourVector vectorcopy( v4 ); |
| 57 | vector = v4; | ||
| 55 | garren | 58 | |
| 209 | garren | 59 | double px = v4.px(); |
| 60 | double py = v4.py(); | ||
| 61 | double pz = v4.pz(); | ||
| 62 | double e = v4.e(); | ||
| 55 | garren | 63 | x = vectorcopy.x(); |
| 64 | y = vectorcopy.y(); | ||
| 65 | z = vectorcopy.z(); | ||
| 66 | double t = vectorcopy.t(); | ||
| 67 | |||
| 209 | garren | 68 | p2 = v4.perp2(); |
| 69 | pt = v4.perp(); | ||
| 70 | l = v4.mag(); | ||
| 71 | th = v4.theta(); | ||
| 72 | ph = v4.phi(); | ||
| 73 | r = v4.rho(); | ||
| 74 | double masssq1 = v4.m2(); | ||
| 75 | double mass1 = v4.m(); | ||
| 76 | double pr1 = v4.pseudoRapidity(); | ||
| 77 | double eta1 = v4.eta(); | ||
| 89 | garren | 78 | double masssq2 = vector.m2(); |
| 79 | double mass2 = vector.m(); | ||
| 80 | double pr2 = vector.pseudoRapidity(); | ||
| 81 | double eta2 = vector.eta(); | ||
| 55 | garren | 82 | |
| 83 | vt.set(1., 2., 3., 5.5); | ||
| 84 | vt.setX(1.1); | ||
| 85 | vt.setY(2.3); | ||
| 86 | vt.setZ(4.4); | ||
| 87 | vt.setT(6.5); | ||
| 88 | vt.setPx(3.1); | ||
| 89 | vt.setPy(2.2); | ||
| 90 | vt.setPz(-1.1); | ||
| 91 | vt.setE(5.4); | ||
| 92 | |||
| 93 | if( px != x ) { | ||
| 94 | std::cout << "different X values: " << px << " " << x << std::endl; | ||
| 89 | garren | 95 | ++numbad; |
| 55 | garren | 96 | } |
| 97 | if( py != y ) { | ||
| 98 | std::cout << "different Y values: " << py << " " << y << std::endl; | ||
| 89 | garren | 99 | ++numbad; |
| 55 | garren | 100 | } |
| 101 | if( pz != z ) { | ||
| 102 | std::cout << "different Z values: " << pz << " " << z << std::endl; | ||
| 89 | garren | 103 | ++numbad; |
| 55 | garren | 104 | } |
| 105 | if( e != t ) { | ||
| 106 | std::cout << "different E values: " << e << " " << t << std::endl; | ||
| 89 | garren | 107 | ++numbad; |
| 55 | garren | 108 | } |
| 89 | garren | 109 | if( masssq1 != masssq2 ) { |
| 110 | std::cout << "different mass sq values: " << masssq1 << " " << masssq2 << std::endl; | ||
| 111 | ++numbad; | ||
| 112 | } | ||
| 113 | if( mass1 != mass2 ) { | ||
| 114 | std::cout << "different mass values: " << mass1 << " " << mass2 << std::endl; | ||
| 115 | ++numbad; | ||
| 116 | } | ||
| 117 | if( pr1 != pr2 ) { | ||
| 118 | std::cout << "different pr values: " << pr1 << " " << pr2 << std::endl; | ||
| 119 | ++numbad; | ||
| 120 | } | ||
| 121 | if( eta1 != eta2 ) { | ||
| 122 | std::cout << "different eta values: " << eta1 << " " << eta2 << std::endl; | ||
| 123 | ++numbad; | ||
| 124 | } | ||
| 209 | garren | 125 | if( v4 == vector ) { |
| 55 | garren | 126 | } else { |
| 56 | garren | 127 | std::cout << "vectors v and vector are different" << std::endl; |
| 89 | garren | 128 | ++numbad; |
| 55 | garren | 129 | } |
| 209 | garren | 130 | if( v4 != vectorcopy ) { |
| 56 | garren | 131 | std::cout << "vectors v and vectorcopy are different" << std::endl; |
| 89 | garren | 132 | ++numbad; |
| 55 | garren | 133 | } |
| 209 | garren | 134 | |
| 135 | numbad += fourVectorMath(); | ||
| 136 | |||
| 89 | garren | 137 | return numbad; |
| 55 | garren | 138 | } |
| 209 | garren | 139 | |
| 140 | int threeVectorMath() | ||
| 141 | { | ||
| 142 | HepMC::ThreeVector v3(1.1,2.2,3.3); | ||
| 143 | |||
| 144 | double wt = 1.2528; | ||
| 145 | int n3bad = 0; | ||
| 146 | |||
| 147 | // scale | ||
| 148 | HepMC::ThreeVector v3scale1 = v3; | ||
| 149 | v3scale1 *= wt; | ||
| 150 | HepMC::ThreeVector v3scale2(wt*v3.x(),wt*v3.y(),wt*v3.z()); | ||
| 151 | if( v3scale1 != v3scale2 ) { | ||
| 152 | std::cout << "vectors v3scale1 and v3scale2 are different" << std::endl; | ||
| 153 | ++n3bad; | ||
| 154 | } | ||
| 155 | |||
| 156 | // add | ||
| 157 | HepMC::ThreeVector v3add1 = v3; | ||
| 158 | v3add1 += v3scale1; | ||
| 159 | HepMC::ThreeVector v3add2 = v3 + v3scale1; | ||
| 160 | HepMC::ThreeVector v3add3(v3scale1.x()+v3.x(), | ||
| 161 | v3scale1.y()+v3.y(), | ||
| 162 | v3scale1.z()+v3.z()); | ||
| 163 | if( v3add1 != v3add2 ) { | ||
| 164 | std::cout << "vectors v3add1 and v3add2 are different" << std::endl; | ||
| 165 | ++n3bad; | ||
| 166 | } | ||
| 167 | if( v3add3 != v3add2 ) { | ||
| 168 | std::cout << "vectors v3add3 and v3add2 are different" << std::endl; | ||
| 169 | ++n3bad; | ||
| 170 | } | ||
| 171 | |||
| 172 | // subtract | ||
| 173 | HepMC::ThreeVector v3sub1 = v3; | ||
| 174 | v3sub1 -= v3scale1; | ||
| 175 | HepMC::ThreeVector v3sub2 = v3 - v3scale1; | ||
| 176 | HepMC::ThreeVector v3sub3(v3.x()-v3scale1.x(), | ||
| 177 | v3.y()-v3scale1.y(), | ||
| 178 | v3.z()-v3scale1.z()); | ||
| 179 | if( v3sub1 != v3sub2 ) { | ||
| 180 | std::cout << "vectors v3sub1 and v3sub2 are different" << std::endl; | ||
| 181 | ++n3bad; | ||
| 182 | } | ||
| 183 | if( v3sub3 != v3sub2 ) { | ||
| 184 | std::cout << "vectors v3sub3 and v3sub2 are different" << std::endl; | ||
| 185 | ++n3bad; | ||
| 186 | } | ||
| 187 | |||
| 188 | // minus | ||
| 189 | HepMC::ThreeVector v3minus1 = -v3; | ||
| 190 | HepMC::ThreeVector v3minus2(-v3.x(),-v3.y(),-v3.z()); | ||
| 191 | if( v3minus1 != v3minus2 ) { | ||
| 192 | std::cout << "vectors v3minus1 and v3minus2 are different" << std::endl; | ||
| 193 | ++n3bad; | ||
| 194 | } | ||
| 195 | |||
| 196 | return n3bad; | ||
| 197 | } | ||
| 198 | |||
| 199 | int fourVectorMath() | ||
| 200 | { | ||
| 201 | HepMC::FourVector v4(1.1,2.2,3.3,4.4); | ||
| 202 | |||
| 203 | double wt = 1.2528; | ||
| 204 | int n4bad = 0; | ||
| 205 | |||
| 206 | // scale | ||
| 207 | HepMC::FourVector v4scale1 = v4; | ||
| 208 | v4scale1 *= wt; | ||
| 209 | HepMC::FourVector v4scale2(wt*v4.x(),wt*v4.y(),wt*v4.z(),wt*v4.t()); | ||
| 210 | if( v4scale1 != v4scale2 ) { | ||
| 211 | std::cout << "vectors v4scale1 and v4scale2 are different" << std::endl; | ||
| 212 | ++n4bad; | ||
| 213 | } | ||
| 214 | |||
| 215 | // add | ||
| 216 | HepMC::FourVector v4add1 = v4; | ||
| 217 | v4add1 += v4scale1; | ||
| 218 | HepMC::FourVector v4add2 = v4 + v4scale1; | ||
| 219 | HepMC::FourVector v4add3(v4scale1.x()+v4.x(), | ||
| 220 | v4scale1.y()+v4.y(), | ||
| 221 | v4scale1.z()+v4.z(), | ||
| 222 | v4scale1.t()+v4.t()); | ||
| 223 | if( v4add1 != v4add2 ) { | ||
| 224 | std::cout << "vectors v4add1 and v4add2 are different" << std::endl; | ||
| 225 | ++n4bad; | ||
| 226 | } | ||
| 227 | if( v4add3 != v4add2 ) { | ||
| 228 | std::cout << "vectors v4add3 and v4add2 are different" << std::endl; | ||
| 229 | ++n4bad; | ||
| 230 | } | ||
| 231 | |||
| 232 | // subtract | ||
| 233 | HepMC::FourVector v4sub1 = v4; | ||
| 234 | v4sub1 -= v4scale1; | ||
| 235 | HepMC::FourVector v4sub2 = v4 - v4scale1; | ||
| 236 | HepMC::FourVector v4sub3(v4.x()-v4scale1.x(), | ||
| 237 | v4.y()-v4scale1.y(), | ||
| 238 | v4.z()-v4scale1.z(), | ||
| 239 | v4.t()-v4scale1.t()); | ||
| 240 | if( v4sub1 != v4sub2 ) { | ||
| 241 | std::cout << "vectors v4sub1 and v4sub2 are different" << std::endl; | ||
| 242 | ++n4bad; | ||
| 243 | } | ||
| 244 | if( v4sub3 != v4sub2 ) { | ||
| 245 | std::cout << "vectors v4sub3 and v4sub2 are different" << std::endl; | ||
| 246 | ++n4bad; | ||
| 247 | } | ||
| 248 | |||
| 249 | // minus | ||
| 250 | HepMC::FourVector v4minus1 = -v4; | ||
| 251 | HepMC::FourVector v4minus2(-v4.x(),-v4.y(),-v4.z(),-v4.t()); | ||
| 252 | if( v4minus1 != v4minus2 ) { | ||
| 253 | std::cout << "vectors v4minus1 and v4minus2 are different" << std::endl; | ||
| 254 | ++n4bad; | ||
| 255 | } | ||
| 256 | |||
| 257 | return n4bad; | ||
| 258 | } |
