00001
00002
00003
00004
00005
00007
00008
00009
00010
00011 #include <iostream>
00012
00013 #include "VectorConversion.h"
00014 #include "HepMC/GenEvent.h"
00015 #include "CLHEP/Vector/LorentzVector.h"
00016
00017
00018
00019
00020
00021
00022 using namespace HepMC;
00023 using namespace CLHEP;
00024
00025 int main() {
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 GenEvent* evt = new GenEvent( 20, 1 );
00056
00057 evt->use_units(HepMC::Units::GEV, HepMC::Units::MM);
00058
00059
00060 GenVertex* v1 = new GenVertex();
00061 evt->add_vertex( v1 );
00062 v1->add_particle_in( new GenParticle( HepLorentzVector(0,0,7000,7000),
00063 2212, 3 ) );
00064 GenVertex* v2 = new GenVertex();
00065 evt->add_vertex( v2 );
00066 v2->add_particle_in( new GenParticle( HepLorentzVector(0,0,-7000,7000),
00067 2212, 3 ) );
00068
00069
00070 GenParticle* p3 =
00071 new GenParticle( HepLorentzVector(.750,-1.569,32.191,32.238), 1, 3 );
00072 v1->add_particle_out( p3 );
00073 GenParticle* p4 =
00074 new GenParticle( HepLorentzVector(-3.047,-19.,-54.629,57.920), -2, 3 );
00075 v2->add_particle_out( p4 );
00076
00077
00078 GenVertex* v3 = new GenVertex();
00079 evt->add_vertex( v3 );
00080 v3->add_particle_in( p3 );
00081 v3->add_particle_in( p4 );
00082 v3->add_particle_out(
00083 new GenParticle( HepLorentzVector(-3.813,0.113,-1.833,4.233 ), 22, 1 )
00084 );
00085 GenParticle* p5 =
00086 new GenParticle( HepLorentzVector(1.517,-20.68,-20.605,85.925), -24,3);
00087 v3->add_particle_out( p5 );
00088
00089
00090 GenVertex* v4 = new GenVertex(HepLorentzVector(0.12,-0.3,0.05,0.004));
00091 evt->add_vertex( v4 );
00092 v4->add_particle_in( p5 );
00093 v4->add_particle_out(
00094 new GenParticle( HepLorentzVector(-2.445,28.816,6.082,29.552), 1,1 )
00095 );
00096 v4->add_particle_out(
00097 new GenParticle( HepLorentzVector(3.962,-49.498,-26.687,56.373), -2,1 )
00098 );
00099
00100
00101 evt->set_signal_process_vertex( v3 );
00102
00103 evt->print();
00104
00105
00106
00107 std::cout << std::endl;
00108 std::cout << " Add output momenta " << std::endl;
00109 HepLorentzVector sum;
00110 for ( GenEvent::particle_const_iterator p = evt->particles_begin();
00111 p != evt->particles_end(); ++p ){
00112 if( (*p)->status() == 1 ) {
00113 sum += convertTo( (*p)->momentum() );
00114 (*p)->print();
00115 }
00116 }
00117 std::cout << "Vector Sum: " << sum << std::endl;
00118
00119
00120
00121
00122
00123 delete evt;
00124
00125 return 0;
00126 }