Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:16:00

0001 #ifndef PHHEPMC_PHHEPMCEVENTv1_H
0002 #define PHHEPMC_PHHEPMCEVENTv1_H
0003 
0004 #include "PHHepMCGenEvent.h"
0005 
0006 class PHHepMCGenEventv1 : public PHHepMCGenEvent
0007 {
0008  public:
0009   PHHepMCGenEventv1();
0010 
0011   PHHepMCGenEventv1(const PHHepMCGenEventv1& event);
0012   PHHepMCGenEventv1& operator=(const PHHepMCGenEventv1& event);
0013   ~PHHepMCGenEventv1() override;
0014 
0015   void identify(std::ostream& os = std::cout) const override;
0016   void Reset() override;
0017   int isValid() const override
0018   {
0019     PHOOL_VIRTUAL_WARNING;
0020     return 0;
0021   }
0022   PHObject* CloneMe() const override { return new PHHepMCGenEventv1(*this); }
0023 
0024   //! boost beta vector for Lorentz Transform, part of composition of a LorentzRotation to translate from hepmc event frame to lab frame
0025   const HepMC::ThreeVector& get_boost_beta_vector() const final { return m_boost_beta_vector; }
0026 
0027   //! boost beta vector for Lorentz Transform, part of composition of a LorentzRotation to translate from hepmc event frame to lab frame
0028   void set_boost_beta_vector(const HepMC::ThreeVector& v) final { m_boost_beta_vector = v; }
0029 
0030   //! rotation axis vector, part of composition of a LorentzRotation to translate from hepmc event frame to lab frame
0031   const HepMC::ThreeVector& get_rotation_vector() const final { return m_rotation_vector; }
0032 
0033   //! rotation axis vector, part of composition of a LorentzRotation to translate from hepmc event frame to lab frame
0034   void set_rotation_vector(const HepMC::ThreeVector& v) final { m_rotation_vector = v; }
0035 
0036   //! rotation angle, part of composition of a LorentzRotation to translate from hepmc event frame to lab frame
0037   double get_rotation_angle() const final { return m_rotation_angle; }
0038 
0039   //! rotation angle, part of composition of a LorentzRotation to translate from hepmc event frame to lab frame
0040   void set_rotation_angle(const double a) final { m_rotation_angle = a; }
0041 
0042   //!LorentzRotation to translate from hepmc event frame to lab frame
0043   CLHEP::HepLorentzRotation get_LorentzRotation_EvtGen2Lab() const final;
0044 
0045   //!LorentzRotation to translate from lab frame to hepmc event frame
0046   CLHEP::HepLorentzRotation get_LorentzRotation_Lab2EvtGen() const final;
0047 
0048  protected:
0049   //! boost beta vector for Lorentz Transform, part of composition of a LorentzRotation to translate from hepmc event frame to lab frame
0050   HepMC::ThreeVector m_boost_beta_vector;
0051 
0052   //! rotation axis vector, part of composition of a LorentzRotation to translate from hepmc event frame to lab frame
0053   HepMC::ThreeVector m_rotation_vector;
0054 
0055   //! rotation angle, part of composition of a LorentzRotation to translate from hepmc event frame to lab frame
0056   double m_rotation_angle;
0057 
0058   ClassDefOverride(PHHepMCGenEventv1, 1)
0059 };
0060 
0061 #endif  // PHHEPMC_PHHEPMCEVENTv1_H