|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
    9 #ifndef FORWARDREGIONMGFIELD_FORWARDREGIONFIELDFIELDSVC_H 
   10 #define FORWARDREGIONMGFIELD_FORWARDREGIONFIELDFIELDSVC_H 1 
   13 #include "CLHEP/Geometry/Point3D.h" 
   16 #include "G4ThreeVector.hh" 
   20 #include "GaudiKernel/ToolHandle.h" 
   21 #include "GaudiKernel/IIncidentListener.h" 
   41     void handle(
const Incident& runIncident) 
override final;
 
   47     virtual void getField(
const double *
xyz, 
double *bxyz, 
double *deriv = 
nullptr) 
const override final;
 
   53     virtual void getFieldZR(
const double *
xyz, 
double *bxyz, 
double *deriv = 
nullptr) 
const override final;
 
  136     void writeOutTwiss(
const std::vector<std::vector<std::string>>& loadedTwissFile, 
int beam, 
const std::string& 
header);
 
  137     void getMagnetTransformParams(
int beam, 
int magnet, G4ThreeVector 
Point, HepGeom::Point3D<double> &pointMagStart,HepGeom::Point3D<double> &pointMagEnd, 
double &rotZ) 
const;
 
  143 #endif // FORWARDREGIONMGFIELD_FORWARDREGIONFIELDFIELDSVC_H 
  
void handle(const Incident &runIncident) override final
IIncidentListener interface methods.
static const int s_Q5HKick
static const int s_Q2HKick
void getMagnetTransformParams(int beam, int magnet, G4ThreeVector Point, HepGeom::Point3D< double > &pointMagStart, HepGeom::Point3D< double > &pointMagEnd, double &rotZ) const
std::vector< std::vector< std::string > > loadDataFile(const char *fileName, int cols)
double m_magIndMQXA[s_rowsMQXA][s_colsMQXA][2]
static const int s_rowsMQXA
ToolHandle< IForwardRegionProperties > m_properties
static const int s_Q4VKickB
double getMag(int magnet, int beam) const
static const int s_Q1VKick
static const int s_Q2VKick
ForwardRegionFieldSvc(const std::string &name, ISvcLocator *svc)
Constructor with parameters.
G4ThreeVector getMagInd(G4ThreeVector Point, int q, int beam) const
Non-inherited public methods FIXME - add new interface?
double kLToB(double kL, double lenght, double momentum)
double m_magIndMQXB[s_rowsMQXB][s_colsMQXB][2]
virtual void getFieldZR(const double *xyz, double *bxyz, double *deriv=nullptr) const override final
get B field value on the z-r plane at given position
static const int s_colsMQXA
static const int s_colsMQXB
std::string m_MQXA_DataFile
virtual void getField(const double *xyz, double *bxyz, double *deriv=nullptr) const override final
IMagFieldSvc interface methods.
std::vector< std::vector< std::string > > loadDataFileNLines(const char *fileName, int cols, int N, std::string &header)
int getMagNumFromName(const std::string &name) const
std::string m_MQXB_DataFile
static const int s_Q6VKick
::StatusCode StatusCode
StatusCode definition for legacy code.
G4ThreeVector getKick(int beam) const
static const int s_Q1HKick
FWDMg_CONFIGURATION m_Config
static const int s_Q4VKickA
AthROOTErrorHandlerSvc * svc
std::vector< std::vector< std::string > > m_magnets
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
static const int s_Q4HKick
static const int s_Q3HKick
Linear spline representation of a function used to calculate weights.
double getMagXOff(int magnet) const
double getMagYOff(int magnet) const
void writeOutTwiss(const std::vector< std::vector< std::string >> &loadedTwissFile, int beam, const std::string &header)
void InitMagDataFromTwiss(const std::vector< std::vector< std::string > > &loadedTwissFile, int beam, double momentum)
StatusCode initialize() override final
AthService interface methods.
static const int s_rowsMQXB
static const int s_Q3VKick
G4ThreeVector FieldValue(G4ThreeVector Point) const