6 #ifndef LBNFMagneticFieldPolyconeHorn_H 7 #define LBNFMagneticFieldPolyconeHorn_H 1 13 #include "G4MagneticField.hh" 14 #include "G4RotationMatrix.hh" 87 size_t kHigh = fZDCBegin.size() - 1;
88 for (
size_t k=0;
k != fZDCBegin.size() - 1;
k++) {
89 if ((z >= fZDCBegin[
k]) && (z < fZDCBegin[k+1])) {
92 const double dzFrac = (z - fZDCBegin[kLow])/(fZDCBegin[kHigh] - fZDCBegin[kLow]);
93 *rIn = fRadsInnerC[kLow] + dzFrac*(fRadsInnerC[kHigh] - fRadsInnerC[kLow]);
94 *rOut = fRadsOuterC[kLow] + dzFrac*(fRadsOuterC[kHigh] - fRadsOuterC[kLow]);
112 if (deltaR < 0.)
return 0.;
113 const double xby2 = fSkinDepthIIRInv*deltaR/2.;
114 const double xby2Out = fSkinDepthIIRInv*rOut/2.;
118 const double beNSq = ber*ber + bei*bei;
119 const double berOut = 1.0 -
std::pow(xby2Out, 4.)/4. +
std::pow(xby2Out, 8.)/576.;
121 const double beNSqOut = berOut*berOut + beiOut*beiOut;
122 return std::sqrt(beNSq/beNSqOut);
G4double fZShiftDrawingCoordinate
std::vector< double > fField3DMapCurrentEqualizerRadSqRStepAtZ
void SetCurrentEqualizerLongAbsLength(double v)
void SetDeltaEccentricityIO(G4double f)
void fillTrajectories(const double Point[3], double bx, double by) const
double fField3DMapCurrentEqualizerZStep
~LBNFMagneticFieldPolyconeHorn()
void SetEffectiveLength(double z)
double fCurrentEqualizerLongAbsLength
void writeFieldMapCurrentEqualizer() const
void SetSkinDepthInnerRad(G4double f)
void getFieldFrom3DMapCurrentEqualizer(const double Point[3], double *Bfield) const
std::vector< double > fRadsOuterC
unsigned int fNumRPtsForCE
double GetEffectiveSkinDepthFact() const
G4RotationMatrix fRotMatrixHornContainer
virtual void GetFieldValue(const double Point[3], double *Bfield) const
double fEffectiveSkinDepthFact
void SetFileNameFieldMapForCE(std::string s)
void SetHornCurrent(G4double ihorn)
double GetEffectiveOuterRad() const
unsigned int fNumPhiPtsForCE
double fCurrentEqualizerQuadAmpl
double GetCurrentEqualizerQuadAmpl() const
std::vector< double > fShiftSlope
void SetCurrentEqualizerQuadAmpl(double v)
std::string fFileNameFieldMapForCE
G4double fSkinDepthInnerRad
void TestDivergence(int opt) const
std::vector< double > fShift
void readFieldMapCurrentEqualizer() const
double GetEffectiveInnerRad() const
double getNormCurrDensityInnerC(double deltaR, double rOut) const
G4double GetHornCurrent() const
void TestEccentricityBerkeley() const
void SetCurrentEqualizerOctAmpl(double v)
std::vector< double > fZDCBegin
std::vector< double > fRadsInnerC
void fillHornPolygonRadii(double z, double *rIn, double *rOut) const
void SetZShiftDrawingCoordinate(double z)
G4double fSkinDepthIIRInv
double fEffectiveInnerRad
LBNFMagneticFieldPolyconeHorn(size_t iH)
std::vector< double > fField3DMapCurrentEqualizerRadSqAtZ
double fCurrentEqualizerOctAmpl
void SetDeltaEllipticityI(G4double f)
unsigned int fNumZPtsForCE
std::map< unsigned int, std::pair< float, float > > fField3DMapCurrentEqualizer
double fDeltaEllipticityI
double fField3DMapCurrentEqualizerZMin
std::string GetFileNameFieldMapForCE() const
double fEffectiveOuterRad
double fField3DMapCurrentEqualizerPhiStep
void fill3DMapCurrentEqualizer() const
double fDeltaEccentricityIO