|
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