G4VHit

Revision as of 21:25, 28 Mar 2007
Orloffm (Talk | contribs)

← Go to previous diff
Revision as of 21:38, 28 Mar 2007
Orloffm (Talk | contribs)

Go to next diff →
Line 1: Line 1:
-Абстрактный класс. Идея состоит в том, чтобы создать его конкретную реализацию (например, MyHit) и использовать её для сохранения нужной информации о каждом [[Step]]'е. Предлагается создать свою реализацию [[G4VSensitiveDetector]] (например, MySensitiveDetector) и прикрепить её объект к логическому объёму детектора. Тогда при каждом степе будет вызываться функция ProcessHits, реализованная в MySensitiveDetector. В ней можно создавать новые объекты MyHit и копировать в них нужную информацию из объекта [[G4Step]], являющегося аргументом этой функции.+Абстрактный класс. Идея состоит в том, чтобы создать его конкретную реализацию (например, 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 имеет пустое тело.
== Смотри также == == Смотри также ==

Revision as of 21:38, 28 Mar 2007

Абстрактный класс. Идея состоит в том, чтобы создать его конкретную реализацию (например, 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 имеет пустое тело.

Смотри также

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

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

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

Edit page