SpaceCharge.h
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 // \file SpaceCharge.h
3 //
4 // \brief pure virtual base interface for space charge distortions
5 //
6 // \author mrmooney@bnl.gov
7 //
8 ////////////////////////////////////////////////////////////////////////
9 #ifndef SPACECHARGE_SPACECHARGE_H
10 #define SPACECHARGE_SPACECHARGE_H
11 
12 // C/C++ standard libraries
14 
15 
16 namespace spacecharge{
17 
18  class SpaceCharge {
19  public:
20 
21  SpaceCharge(const SpaceCharge &) = delete;
22  SpaceCharge(SpaceCharge &&) = delete;
23  SpaceCharge& operator = (const SpaceCharge &) = delete;
24  SpaceCharge& operator = (SpaceCharge &&) = delete;
25  virtual ~SpaceCharge() = default;
26 
27  virtual bool EnableSimSpatialSCE() const = 0;
28  virtual bool EnableSimEfieldSCE() const = 0;
29  virtual bool EnableCorrSCE() const = 0;
30  virtual bool EnableCalSpatialSCE() const = 0;
31  virtual bool EnableCalEfieldSCE() const = 0;
32 
33  virtual geo::Vector_t GetPosOffsets(geo::Point_t const& point) const = 0;
34  virtual geo::Vector_t GetEfieldOffsets(geo::Point_t const& point) const = 0;
35  virtual geo::Vector_t GetCalPosOffsets(geo::Point_t const& point, int const& TPCid) const = 0;
36  virtual geo::Vector_t GetCalEfieldOffsets(geo::Point_t const& point, int const& TPCid) const = 0;
37 
38  protected:
39 
40  SpaceCharge() = default;
41 
42  }; // class SpaceCharge
43 } //namespace spacecharge
44 
45 #endif // SPACECHARGE_SPACECHARGE_H
virtual ~SpaceCharge()=default
virtual bool EnableSimEfieldSCE() const =0
virtual geo::Vector_t GetCalPosOffsets(geo::Point_t const &point, int const &TPCid) const =0
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
Definition: geo_vectors.h:164
SpaceCharge & operator=(const SpaceCharge &)=delete
virtual geo::Vector_t GetCalEfieldOffsets(geo::Point_t const &point, int const &TPCid) const =0
virtual bool EnableCorrSCE() const =0
virtual geo::Vector_t GetPosOffsets(geo::Point_t const &point) const =0
virtual bool EnableSimSpatialSCE() const =0
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Definition: geo_vectors.h:184
virtual geo::Vector_t GetEfieldOffsets(geo::Point_t const &point) const =0
virtual bool EnableCalSpatialSCE() const =0
virtual bool EnableCalEfieldSCE() const =0
Definitions of geometry vector data types.