G4VHit

Абстрактный класс. Идея состоит в том, чтобы создать его конкретную реализацию (например, MyHit) и использовать её для сохранения нужной информации о каждом Step'е.

Предлагается создать свою реализацию G4VSensitiveDetector (например, MySensitiveDetector) и прикрепить её объект к логическому объёму детектора. Тогда при каждом степе будет вызываться функция ProcessHits, реализованная в MySensitiveDetector. В ней можно создавать новые объекты MyHit и копировать в них нужную информацию из объекта G4Step, являющегося аргументом этой функции.

В примерах также любят делать вот такую штуку для хранения хитов:

typedef G4THitsCollection<MyHit> MyHitsCollection;

В MySensitiveDetector помимо ProcessHits нужно также реализовать функции Initialize(G4HCofThisEvent*) и EndOfEvent(G4HCofThisEvent*). G4HCofThisEvent --- класс, хранящий указатели на объекты G4THitsCollection. В примере из последней ссылки в Initialize создаётся объект MyHitsCollection и сохраняется в переданном функции объекте G4HCofThisEvent. В ProcessHits создаются хиты и добавляются в эту MyHitsCollection. EndOfEvent имеет пустое тело.

Смотри также

Software reference manual (http://geant4.cern.ch/bin/SRM/G4GenDoc.exe.pl?flag=2&FileName=G4VHit.hh&FileDir=digits_hits/hits/include) - общие слова

Application Developer (http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/Detector/hit.html) - пример реализации

Short Course 2006 (http://www.ge.infn.it/geant4/training/siena_oct2006/readout.ppt) - пример взаимодействия с Sensitive Detector

Edit page