MagField

Как заставить G4 делать в случае наличия поля то, что надо, а не то, что ему захочется

Здесь (http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/Detector/electroMagneticField.html) вообще ничего не понятно! Можете попробовать разобраться сами, но я предупредил.

Иерархия объектов, отвечающих за транспорт в поле, такая: G4TransportationManager (http://pcitapiww.cern.ch/asdcgi/geant4/SRM/G4GenDoc.exe.pl?flag=2&FileName=G4TransportationManager.hh&FileDir=geometry/navigation/include) содержит в себе G4FieldManager (http://pcitapiww.cern.ch/asdcgi/geant4/SRM/G4GenDoc.exe.pl?flag=2&FileName=G4FieldManager.hh&FileDir=geometry/magneticfield/include), который отвечает за поле для всех объемов. Кроме того каждый G4LogicalVolume (http://pcitapiww.cern.ch/asdcgi/geant4/SRM/G4GenDoc.exe.pl?flag=2&FileName=G4LogicalVolume.hh&FileDir=geometry/management/include) может иметь свой собственный G4FieldManager. А может и не иметь. Если все же имеет, то все дочерние объемы наследуют это поле, если не оговорено обратное (посредством собственного G4FieldManager).

Каждый G4FieldManager содержит в себе G4Field (http://pcitapiww.cern.ch/asdcgi/geant4/SRM/G4GenDoc.exe.pl?flag=2&FileName=G4Field.hh&FileDir=geometry/magneticfield/include), который имеет виртуальный метод GetFieldValue(const double Point[4], double *fieldVal). Point -- это 4-вектор (x, y, z, t), таким образом поле может зависеть от времени. fieldVal это массив из шести компонент. Первые три это Bx, By, Bz -- напряженности магнитного поля, дальше Ex, Ey, Ez -- электрическое поле. Все в глобальных координатах и внутренних единицах G4. То есть, например, можно написать Bx == 100*gauss.

Кроме того G4FieldManager имеет объект G4ChordFinder (http://pcitapiww.cern.ch/asdcgi/geant4/SRM/G4GenDoc.exe.pl?flag=2&FileName=G4ChordFinder.hh&FileDir=geometry/magneticfield/include), который занимается рассчетом траектории. Всю работу за G4ChordFinder на самом деле выполняет его член G4MagInt_Driver (IntegrationDriver), вызывает свои члены G4MagIntegratorStepper (http://pcitapiww.cern.ch/asdcgi/geant4/SRM/G4GenDoc.exe.pl?flag=2&FileName=G4MagIntegratorStepper.hh&FileDir=geometry/magneticfield/include) и G4EquationOfMotion (http://pcitapiww.cern.ch/asdcgi/geant4/SRM/G4GenDoc.exe.pl?flag=2&FileName=G4EquationOfMotion.hh&FileDir=geometry/magneticfield/include). Первый является решалкой ОДУ, второй необходимо менять крайне редко.

Параметры, которые влияют на трекинг в поле:

DeltaChord
DeltaIntersection
EpsMaxStep
EpsMinStep
MinimalStep
LargestAcceptableStep
Edit page