File indexing completed on 2025-08-03 08:18:41
0001
0002
0003 #ifndef G4MAIN_PHG4PARTICLE_H
0004 #define G4MAIN_PHG4PARTICLE_H
0005
0006 #include <phool/PHObject.h>
0007
0008 #include <iostream>
0009 #include <limits>
0010 #include <string>
0011
0012 class PHG4Particle : public PHObject
0013 {
0014 public:
0015 PHG4Particle() = default;
0016 ~PHG4Particle() override = default;
0017
0018 void identify(std::ostream &os = std::cout) const override;
0019
0020 virtual bool isIon() const { return false; }
0021 virtual int get_pid() const { return 0; }
0022 virtual std::string get_name() const { return "NONE"; }
0023 virtual double get_px() const { return std::numeric_limits<double>::quiet_NaN(); }
0024 virtual double get_py() const { return std::numeric_limits<double>::quiet_NaN(); }
0025 virtual double get_pz() const { return std::numeric_limits<double>::quiet_NaN(); }
0026 virtual double get_e() const { return std::numeric_limits<double>::quiet_NaN(); }
0027
0028 virtual int get_track_id() const { return -9999; }
0029 virtual int get_vtx_id() const { return -9999; }
0030 virtual int get_parent_id() const { return -9999; }
0031 virtual int get_primary_id() const { return std::numeric_limits<int>::min(); }
0032
0033 virtual int get_barcode() const { return std::numeric_limits<int>::min(); }
0034
0035 virtual int get_A() const { return std::numeric_limits<int>::min(); }
0036 virtual int get_Z() const { return std::numeric_limits<int>::min(); }
0037 virtual double get_IonCharge() const { return std::numeric_limits<double>::quiet_NaN(); }
0038 virtual double get_ExcitEnergy() const { return std::numeric_limits<double>::quiet_NaN(); }
0039
0040 virtual void set_track_id(const int) { return; }
0041 virtual void set_vtx_id(const int) { return; }
0042 virtual void set_parent_id(const int) { return; }
0043 virtual void set_primary_id(const int) { return; }
0044 virtual void set_name(const std::string &) { return; }
0045 virtual void set_pid(const int) { return; }
0046 virtual void set_px(const double) { return; }
0047 virtual void set_py(const double) { return; }
0048 virtual void set_pz(const double) { return; }
0049 virtual void set_e(const double) { return; }
0050
0051 virtual void set_barcode(const int) { return; }
0052
0053 virtual void set_A(const int) { return; }
0054 virtual void set_Z(const int) { return; }
0055 virtual void set_NumCharge(const int) { return; }
0056 virtual void set_IonCharge(const double) { return; }
0057 virtual void set_ExcitEnergy(const double) { return; }
0058
0059 bool operator==(const PHG4Particle &p) const;
0060
0061 protected:
0062 ClassDefOverride(PHG4Particle, 1)
0063 };
0064
0065 #endif