Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
SAXSEventAction Class Reference

Event action. More...

#include <Doxymodules_exoticphysics.h>

Inheritance diagram for SAXSEventAction:
G4UserEventAction

Public Member Functions

 SAXSEventAction ()
 
virtual ~SAXSEventAction ()
 
virtual void BeginOfEventAction (const G4Event *)
 
virtual void EndOfEventAction (const G4Event *)
 
void SetVerbose (G4int val)
 
G4int GetVerbose () const
 
void AddNRi ()
 
void AddNCi ()
 
void AddNDi ()
 
void UpdateEventWeight (G4double ew)
 

Private Attributes

G4int fSensitiveDetector_ID
 
G4int fVerboseLevel
 
G4int fNRi
 
G4int fNCi
 
G4int fNDi
 
G4double fEventWeight
 

Detailed Description

Event action.

Definition at line 66 of file Doxymodules_exoticphysics.h.

Constructor & Destructor Documentation

◆ SAXSEventAction()

SAXSEventAction::SAXSEventAction ( )

Definition at line 55 of file SAXSEventAction.cc.

◆ ~SAXSEventAction()

SAXSEventAction::~SAXSEventAction ( )
virtual

Definition at line 67 of file SAXSEventAction.cc.

67{}

Member Function Documentation

◆ BeginOfEventAction()

void SAXSEventAction::BeginOfEventAction ( const G4Event )
virtual

Definition at line 71 of file SAXSEventAction.cc.

72{
73 fNRi = 0;
74 fNCi = 0;
75 fNDi = 0;
76 fEventWeight = 1.;
77}

◆ EndOfEventAction()

void SAXSEventAction::EndOfEventAction ( const G4Event aEvent)
virtual

Definition at line 81 of file SAXSEventAction.cc.

82{
83 //instantiating The Sensitive Detector Manager
84 G4SDManager* SDman = G4SDManager::GetSDMpointer();
85
86 //Hit Detection System
87 if (fSensitiveDetector_ID==-1) {
88 G4String SensitiveDetectorName;
89 if (SDman->FindSensitiveDetector(SensitiveDetectorName="det",0)) {
91 SDman->GetCollectionID(SensitiveDetectorName="det/collection");
92 }
93 }
94
95 SensitiveDetectorHitsCollection* fSensitiveDetectorHC = 0;
96 G4HCofThisEvent* HCE = aEvent->GetHCofThisEvent();
97
98 if (HCE) {
99 if (fSensitiveDetector_ID != -1) {
100 G4VHitsCollection* aHC = HCE->GetHC(fSensitiveDetector_ID);
101 fSensitiveDetectorHC = (SensitiveDetectorHitsCollection*)(aHC);
102 }
103 }
104
105 //instantiating The Analysis Manager
106 G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
107
108 //get the Event Number
109 G4int eventNumber =
110 G4RunManager::GetRunManager()->GetCurrentEvent()->GetEventID();
111
112 //filling the SD scoring ntuple
113 if (fSensitiveDetectorHC) {
114 size_t vNumberOfHit = fSensitiveDetectorHC->entries();
115 for (size_t i=0; i<vNumberOfHit; i++) {
116 SAXSSensitiveDetectorHit* aHit = (*fSensitiveDetectorHC)[i];
117 analysisManager->FillNtupleDColumn(0,0,aHit->GetEnergy()/CLHEP::keV);
118 analysisManager->FillNtupleDColumn(0,1,aHit->GetPos().x()/CLHEP::mm);
119 analysisManager->FillNtupleDColumn(0,2,aHit->GetPos().y()/CLHEP::mm);
120 analysisManager->FillNtupleDColumn(0,3,aHit->GetPos().z()/CLHEP::mm);
121 analysisManager->FillNtupleDColumn(0,4,aHit->GetMom().x());
122 analysisManager->FillNtupleDColumn(0,5,aHit->GetMom().y());
123 analysisManager->FillNtupleDColumn(0,6,aHit->GetMom().z());
124 analysisManager->FillNtupleDColumn(0,7,aHit->GetTime()/CLHEP::ns);
125 analysisManager->FillNtupleIColumn(0,8,aHit->GetType());
126 analysisManager->FillNtupleIColumn(0,9,aHit->GetTrackID());
127 analysisManager->FillNtupleIColumn(0,10,fNRi);
128 analysisManager->FillNtupleIColumn(0,11,fNCi);
129 analysisManager->FillNtupleIColumn(0,12,fNDi);
130 analysisManager->FillNtupleIColumn(0,13,eventNumber);
131 analysisManager->FillNtupleDColumn(0,14,aHit->GetWeight());
132 analysisManager->AddNtupleRow(0);
133 }
134 }
135
136}
G4THitsCollection< SAXSSensitiveDetectorHit > SensitiveDetectorHitsCollection

◆ SetVerbose()

void SAXSEventAction::SetVerbose ( G4int  val)
inline

Definition at line 63 of file SAXSEventAction.hh.

63{fVerboseLevel = val;}

◆ GetVerbose()

G4int SAXSEventAction::GetVerbose ( ) const
inline

Definition at line 64 of file SAXSEventAction.hh.

64{return fVerboseLevel;}

◆ AddNRi()

void SAXSEventAction::AddNRi ( )
inline

Definition at line 66 of file SAXSEventAction.hh.

66{fNRi++;}

◆ AddNCi()

void SAXSEventAction::AddNCi ( )
inline

Definition at line 67 of file SAXSEventAction.hh.

67{fNCi++;}

◆ AddNDi()

void SAXSEventAction::AddNDi ( )
inline

Definition at line 68 of file SAXSEventAction.hh.

68{fNDi++;}

◆ UpdateEventWeight()

void SAXSEventAction::UpdateEventWeight ( G4double  ew)
inline

Definition at line 69 of file SAXSEventAction.hh.

69{fEventWeight = ew;}

Member Data Documentation

◆ fSensitiveDetector_ID

G4int SAXSEventAction::fSensitiveDetector_ID
private

Definition at line 54 of file SAXSEventAction.hh.

◆ fVerboseLevel

G4int SAXSEventAction::fVerboseLevel
private

Definition at line 55 of file SAXSEventAction.hh.

◆ fNRi

G4int SAXSEventAction::fNRi
private

Definition at line 57 of file SAXSEventAction.hh.

◆ fNCi

G4int SAXSEventAction::fNCi
private

Definition at line 58 of file SAXSEventAction.hh.

◆ fNDi

G4int SAXSEventAction::fNDi
private

Definition at line 59 of file SAXSEventAction.hh.

◆ fEventWeight

G4double SAXSEventAction::fEventWeight
private

Definition at line 60 of file SAXSEventAction.hh.


The documentation for this class was generated from the following files:

Applications | User Support | Publications | Collaboration