Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:18:41

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
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  // G4MAIN_PHG4PARTICLE_H