LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
SpaceCharge.h
Go to the documentation of this file.
1 // \file SpaceCharge.h
3 //
4 // \brief pure virtual base interface for space charge distortions
5 //
6 // \author mrmooney@bnl.gov
7 //
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 geo::Vector_t GetPosOffsets(geo::Point_t const& point) const = 0;
31  virtual geo::Vector_t GetEfieldOffsets(geo::Point_t const& point) const = 0;
32 
33  protected:
34 
35  SpaceCharge() = default;
36 
37  }; // class SpaceCharge
38 } //namespace spacecharge
39 
40 #endif // SPACECHARGE_SPACECHARGE_H
virtual ~SpaceCharge()=default
virtual bool EnableSimEfieldSCE() 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:167
SpaceCharge & operator=(const SpaceCharge &)=delete
virtual bool EnableCorrSCE() const =0
virtual geo::Vector_t GetPosOffsets(geo::Point_t const &point) const =0
virtual bool EnableSimSpatialSCE() const =0
Definitions of geometry vector data types.
virtual geo::Vector_t GetEfieldOffsets(geo::Point_t const &point) 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:187