19#ifndef BDSBENDBUILDER_H
20#define BDSBENDBUILDER_H
24#include "BDSFieldType.hh"
25#include "BDSIntegratorSetType.hh"
26#include "BDSIntegratorType.hh"
54 G4double incomingFaceAngle,
55 G4double outgoingFaceAngle,
56 G4bool buildFringeFields,
70 G4double incomingFaceAngle,
71 G4double outgoingFaceAngle,
72 G4bool buildFringeFields);
78 G4double incomingFaceAngle = 0,
79 G4double outgoingFaceAngle = 0,
80 G4double aperturePrecision = 1.0);
106 void UpdateSegmentAngles(G4int index,
109 G4double incomingFaceAngle,
110 G4double outgoingFaceAngle,
111 G4double& segmentAngleIn,
112 G4double& segmentAngleOut);
116 G4double fringeAngle,
120 G4bool entranceOrExit);
Abstract class that represents a component of an accelerator.
All info required to build complete field of any type.
Which integrator to use for each type of magnet / field object.
A class that hold multiple accelerator components.
Efficient storage of magnet strengths.
Abstract base class that implements features common to all magnets.
Return either G4Tubs or G4CutTubs depending on flat face.
G4bool ZeroStrengthDipole(const BDSMagnetStrength *st)
Return whether finite angle or field for a dipole.
G4int CalculateNSBendSegments(G4double length, G4double angle, G4double incomingFaceAngle=0, G4double outgoingFaceAngle=0, G4double aperturePrecision=1.0)
BDSMagnet * BuildDipoleFringe(const GMAD::Element *element, G4double angleIn, G4double angleOut, const G4String &name, BDSMagnetStrength *st, G4double brho, const BDSIntegratorSet *integratorSet, BDSFieldType dipoleFieldType)
BDSLine * BuildRBendLine(const G4String &elementName, const GMAD::Element *element, const GMAD::Element *prevElement, const GMAD::Element *nextElement, G4double brho, BDSMagnetStrength *st, const BDSIntegratorSet *integratorSet, G4double incomingFaceAngle, G4double outgoingFaceAngle, G4bool buildFringeFields)
BDSAcceleratorComponent * BuildSBendLine(const G4String &elementName, const GMAD::Element *element, BDSMagnetStrength *st, G4double brho, const BDSIntegratorSet *integratorSet, G4double incomingFaceAngle, G4double outgoingFaceAngle, G4bool buildFringeFields, const GMAD::Element *prevElement, const GMAD::Element *nextElement)
BDSIntegratorType GetDipoleIntegratorType(const BDSIntegratorSet *integratorSet, const GMAD::Element *element)
BDSMagnet * BuildSingleSBend(const GMAD::Element *element, const G4String &name, G4double arcLength, G4double angle, G4double angleIn, G4double angleOut, const BDSMagnetStrength *strength, G4double brho, const BDSIntegratorSet *integratorSet, G4bool yokeOnLeft, const BDSFieldInfo *outerFieldIn)
Function to return a single sector bend section.
Parser namespace for GMAD language. Combination of Geant4 and MAD.