Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:17:58

0001 // $Id: $
0002 
0003 /*!
0004  * \file PHFieldConfigv2.h
0005  * \brief
0006  * \author Jin Huang <jhuang@bnl.gov>
0007  * \version $Revision:   $
0008  * \date $Date: $
0009  */
0010 
0011 #ifndef PHFIELD_PHFIELDCONFIGV2_H
0012 #define PHFIELD_PHFIELDCONFIGV2_H
0013 
0014 #include "PHFieldConfig.h"
0015 
0016 #include <iostream>
0017 
0018 class PHObject;
0019 
0020 /*!
0021  * \brief PHFieldConfigv2 implements field configuration information for uniform field model*/
0022 class PHFieldConfigv2 : public PHFieldConfig
0023 {
0024  public:
0025   //! construct field configuration in units of Tesla
0026   PHFieldConfigv2(
0027       double field_mag_x,
0028       double field_mag_y,
0029       double field_mag_z);
0030 
0031   //! default constructor for ROOT file IO
0032   PHFieldConfigv2()
0033     : PHFieldConfigv2(0, 0, 0)
0034   {
0035   }
0036 
0037   ~PHFieldConfigv2() override {}
0038 
0039   /// Virtual copy constructor.
0040   PHObject* CloneMe() const override { return new PHFieldConfigv2(*this); }
0041 
0042   /** identify Function from PHObject
0043    @param os Output Stream
0044    */
0045   void
0046   identify(std::ostream& os = std::cout) const override;
0047 
0048   /// Clear Content
0049   void Reset() override {}
0050 
0051   /// isValid returns non zero if object contains vailid data
0052   int isValid() const override { return 3; }
0053 
0054   FieldConfigTypes get_field_config() const override
0055   {
0056     return kFieldUniform;
0057   }
0058 
0059   //! field value in Tesla for uniform field model ONLY for PHFieldConfigv2
0060   double get_field_mag_x() const override
0061   {
0062     return field_mag_x_;
0063   }
0064 
0065   //! field value in Tesla for uniform field model ONLY for PHFieldConfigv2
0066   void set_field_mag_x(double fieldMagX) override
0067   {
0068     field_mag_x_ = fieldMagX;
0069   }
0070 
0071   //! field value in Tesla for uniform field model ONLY for PHFieldConfigv2
0072   double get_field_mag_y() const override
0073   {
0074     return field_mag_y_;
0075   }
0076 
0077   //! field value in Tesla for uniform field model ONLY for PHFieldConfigv2
0078   void set_field_mag_y(double fieldMagY) override
0079   {
0080     field_mag_y_ = fieldMagY;
0081   }
0082 
0083   //! field value in Tesla for uniform field model ONLY for PHFieldConfigv2
0084   double get_field_mag_z() const override
0085   {
0086     return field_mag_z_;
0087   }
0088 
0089   //! field value in Tesla for uniform field model ONLY for PHFieldConfigv2
0090   void set_field_mag_z(double fieldMagZ) override
0091   {
0092     field_mag_z_ = fieldMagZ;
0093   }
0094 
0095   //! equal to operator, to base class
0096   bool operator == (const PHFieldConfig& ) const override;
0097 
0098  protected:
0099   double field_mag_x_;
0100   double field_mag_y_;
0101   double field_mag_z_;
0102 
0103   ClassDefOverride(PHFieldConfigv2, 1)
0104 };
0105 
0106 #endif