LArSoft  v09_90_00
Liquid Argon Software toolkit - https://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 namespace spacecharge {
16 
17  class SpaceCharge {
18  public:
19  SpaceCharge(const SpaceCharge&) = delete;
20  SpaceCharge(SpaceCharge&&) = delete;
21  SpaceCharge& operator=(const SpaceCharge&) = delete;
22  SpaceCharge& operator=(SpaceCharge&&) = delete;
23  virtual ~SpaceCharge() = default;
24 
25  virtual bool EnableSimSpatialSCE() const = 0;
26  virtual bool EnableSimEfieldSCE() const = 0;
27  virtual bool EnableCorrSCE() const = 0;
28  virtual bool EnableCalSpatialSCE() const = 0;
29  virtual bool EnableCalEfieldSCE() const = 0;
30 
31  virtual geo::Vector_t GetPosOffsets(geo::Point_t const& point) const = 0;
32  virtual geo::Vector_t GetEfieldOffsets(geo::Point_t const& point) const = 0;
33  virtual geo::Vector_t GetCalPosOffsets(geo::Point_t const& point, int const& TPCid) const = 0;
34  virtual geo::Vector_t GetCalEfieldOffsets(geo::Point_t const& point,
35  int const& TPCid) const = 0;
36 
37  protected:
38  SpaceCharge() = default;
39 
40  }; // class SpaceCharge
41 } //namespace spacecharge
42 
43 #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:160
virtual geo::Vector_t GetCalPosOffsets(geo::Point_t const &point, int const &TPCid) const =0
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
Definitions of geometry vector data types.
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:180
virtual geo::Vector_t GetEfieldOffsets(geo::Point_t const &point) const =0
virtual bool EnableCalSpatialSCE() const =0
virtual bool EnableCalEfieldSCE() const =0