6 #ifndef LBNEMagneticField_H 7 #define LBNEMagneticField_H 1 12 #include "G4MagneticField.hh" 14 #include "G4RotationMatrix.hh" 79 size_t kHigh = fZDCBegin.size() - 1;
80 for (
size_t k=0;
k != fZDCBegin.size() - 1;
k++) {
81 if ((z >= fZDCBegin[
k]) && (z < fZDCBegin[k+1])) {
84 const double dzFrac = (z - fZDCBegin[kLow])/(fZDCBegin[kHigh] - fZDCBegin[kLow]);
85 *rIn = fRadsInnerC[kLow] + dzFrac*(fRadsInnerC[kHigh] - fRadsInnerC[kLow]);
86 *rOut = fRadsOuterC[kLow] + dzFrac*(fRadsOuterC[kHigh] - fRadsOuterC[kLow]);
105 if (deltaR < 0.)
return 0.;
106 const double xby2 = fSkinDepthIIRInv*deltaR/2.;
107 const double xby2Out = fSkinDepthIIRInv*rOut/2.;
111 const double beNSq = ber*ber + bei*bei;
112 const double berOut = 1.0 -
std::pow(xby2Out, 4.)/4. +
std::pow(xby2Out, 8.)/576.;
114 const double beNSqOut = berOut*berOut + beiOut*beiOut;
115 return std::sqrt(beNSq/beNSqOut);
G4double GetHornCurrent() const
void SetSkinDepthInnerRad(G4double f)
double getNormCurrDensityInnerC(double deltaR, double rOut) const
void SetWireCurrent(G4double iC)
G4double fZShiftDrawingCoordinate
G4double fEffectiveLength
virtual void GetFieldValue(const double Point[3], double *Bfield) const
std::vector< size_t > fEqnIndicesInner
std::vector< double > fRadsInnerC
G4double fHornNeckOuterRadius
std::vector< double > fZDCBegin
double GetEffectiveInnerRad() const
std::vector< double > fShift
G4double fSkinDepthInnerRad
double fEffectiveInnerRad
double fEffectiveOuterRad
std::vector< double > fZDCEnd
G4double fHornNeckInnerRadius
std::vector< double > fShiftSlope
void SetHornCurrent(G4double ihorn)
G4RotationMatrix fRotMatrixHornContainer
void fillHorn1PolygonRadii(double z, double *rIn, double *rOut) const
double GetEffectiveOuterRad() const
std::vector< double > fRadsOuterC
LBNEMagneticFieldHorn(bool isHorn1)
void SetWireRadius(G4double r)
G4double GetWireCurrent() const
std::vector< size_t > fEqnIndicesOuter
double GetEffectiveSkinDepthFact() const
void fillTrajectories(const double Point[3], double bx, double by) const
G4double fZShiftUpstrWorldToLocal
double fEffectiveSkinDepthFact
G4double GetWireRadius() const
G4double fSkinDepthIIRInv