|
3 #ifndef PYTHIAJETGUN_HH_
4 #define PYTHIAJETGUN_HH_
9 #include "geners/ClassId.hh"
11 namespace PythiaJetGun
19 inline Particle() : p4_(), code_(0) {}
21 inline Particle( int code, const rk::P4& p4) : p4_(p4), code_(code) {}
23 inline const rk::P4& p4() const { return p4_;}
24 inline int code() const { return code_;}
25 double charge() const;
27 inline void setCode( int code) { code_ = code; }
28 inline void setP4( const rk::P4& p4) { p4_ = p4; }
35 double gyrationRadius( double B) const;
37 bool operator==( const Particle& r) const;
38 inline bool operator!=( const Particle& r) const
39 { return !(* this == r);}
41 inline gs::ClassId classId() const { return gs::ClassId(* this);}
42 bool write(std::ostream& of) const;
44 static inline const char* classname()
45 { return "PythiaJetGun::Particle";}
46 static inline unsigned version() { return 1;}
47 static void restore( const gs::ClassId& id, std::istream& in,
58 void shoot1( int partonCode, double pt, double eta, double phi,
59 Particle* parton, std::vector<Particle>* jetParticles);
64 void shoot2( int partonCode, double pt, double eta, double phi,
65 Particle* parton, std::vector<Particle>* jetParticles,
66 bool runPyexec = true);
70 double gaussRandom( double mean, double sigma);
73 void pythiacmd( const char* cmd);
76 #endif // PYTHIAJETGUN_HH_
|