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

#include <Doxymodules_runAndEvent.h>

Inheritance diagram for RE01EventAction:
G4UserEventAction

Public Member Functions

 RE01EventAction ()
 
virtual ~RE01EventAction ()
 
virtual void BeginOfEventAction (const G4Event *)
 
virtual void EndOfEventAction (const G4Event *)
 

Private Member Functions

void PrintPrimary (G4PrimaryParticle *pp, G4int ind)
 

Private Attributes

G4int fTrackerCollID
 
G4int fCalorimeterCollID
 

Detailed Description

Definition at line 25 of file Doxymodules_runAndEvent.h.

Constructor & Destructor Documentation

◆ RE01EventAction()

RE01EventAction::RE01EventAction ( )

◆ ~RE01EventAction()

RE01EventAction::~RE01EventAction ( )
virtual

Definition at line 56 of file RE01EventAction.cc.

57{;}

Member Function Documentation

◆ BeginOfEventAction()

void RE01EventAction::BeginOfEventAction ( const G4Event )
virtual

Definition at line 60 of file RE01EventAction.cc.

61{
62 G4SDManager * SDman = G4SDManager::GetSDMpointer();
64 {
65 G4String colNam;
66 fTrackerCollID = SDman->GetCollectionID(colNam="trackerCollection");
67 fCalorimeterCollID = SDman->GetCollectionID(colNam="calCollection");
68 }
69}

◆ EndOfEventAction()

void RE01EventAction::EndOfEventAction ( const G4Event evt)
virtual

Definition at line 72 of file RE01EventAction.cc.

73{
74 G4cout << ">>> Summary of Event " << evt->GetEventID() << G4endl;
75 if(evt->GetNumberOfPrimaryVertex()==0)
76 {
77 G4cout << "Event is empty." << G4endl;
78 return;
79 }
80
81 if(fTrackerCollID<0||fCalorimeterCollID<0) return;
82
83 G4HCofThisEvent * HCE = evt->GetHCofThisEvent();
86 if(HCE)
87 {
88 THC = (RE01TrackerHitsCollection*)(HCE->GetHC(fTrackerCollID));
90 }
91
92 if(THC)
93 {
94 int n_hit = THC->entries();
95 G4cout << G4endl;
96 G4cout << "Tracker hits " <<
97 "--------------------------------------------------------------"
98 << G4endl;
99 G4cout << n_hit << " hits are stored in RE01TrackerHitsCollection."
100 << G4endl;
101 if(fpEventManager->GetVerboseLevel()>0)
102 {
103 G4cout << "List of hits in tracker" << G4endl;
104 for(int i=0;i<n_hit;i++)
105 { (*THC)[i]->Print(); }
106 }
107 }
108 if(CHC)
109 {
110 int n_hit = CHC->entries();
111 G4cout << G4endl;
112 G4cout << "Calorimeter hits "<<
113 "--------------------------------------------------------------"
114 << G4endl;
115 G4cout << n_hit << " hits are stored in RE01CalorimeterHitsCollection."
116 << G4endl;
117 G4double totE = 0;
118 for(int i=0;i<n_hit;i++)
119 { totE += (*CHC)[i]->GetEdep(); }
120 G4cout << " Total energy deposition in calorimeter : "
121 << totE / GeV << " (GeV)" << G4endl;
122 }
123
124 // get number of stored trajectories
125 G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer();
126 G4int n_trajectories = 0;
127 if (trajectoryContainer) n_trajectories = trajectoryContainer->entries();
128 // extract the trajectories and print them out
129 G4cout << G4endl;
130 G4cout << "Trajectories in tracker "<<
131 "--------------------------------------------------------------"
132 << G4endl;
133 if(fpEventManager->GetVerboseLevel()>0)
134 {
135 for(G4int i=0; i<n_trajectories; i++)
136 {
137 RE01Trajectory* trj =
138 (RE01Trajectory*)((*(evt->GetTrajectoryContainer()))[i]);
139 trj->ShowTrajectory();
140 }
141 }
142
143 G4cout << G4endl;
144 G4cout << "Primary particles "<<
145 "--------------------------------------------------------------"
146 << G4endl;
147 G4int n_vertex = evt->GetNumberOfPrimaryVertex();
148 for(G4int iv=0;iv<n_vertex;iv++)
149 {
150 G4PrimaryVertex* pv = evt->GetPrimaryVertex(iv);
151 G4cout << G4endl;
152 G4cout << "Primary vertex "
153 << G4ThreeVector(pv->GetX0(),pv->GetY0(),pv->GetZ0())
154 << " at t = " << (pv->GetT0())/ns << " [ns]" << G4endl;
155 if(fpEventManager->GetVerboseLevel()>0)
156 {
157 G4PrimaryParticle* pp = pv->GetPrimary();
158 while(pp)
159 {
160 PrintPrimary(pp,0);
161 pp = pp->GetNext();
162 }
163 }
164 }
165}
G4THitsCollection< RE01CalorimeterHit > RE01CalorimeterHitsCollection
G4THitsCollection< RE01TrackerHit > RE01TrackerHitsCollection
void PrintPrimary(G4PrimaryParticle *pp, G4int ind)
virtual void ShowTrajectory(std::ostream &os=G4cout) const

◆ PrintPrimary()

void RE01EventAction::PrintPrimary ( G4PrimaryParticle pp,
G4int  ind 
)
private

Definition at line 168 of file RE01EventAction.cc.

169{
170 for(G4int ii=0;ii<=ind;ii++)
171 { G4cout << " "; }
172 G4cout << "==PDGcode " << pp->GetPDGcode() << " ";
173 if(pp->GetG4code()!=0)
174 { G4cout << "(" << pp->GetG4code()->GetParticleName() << ")"; }
175 else
176 { G4cout << "is not defined in G4"; }
177 G4cout << " " << pp->GetMomentum()/GeV << " [GeV] ";
178 if(pp->GetTrackID()<0)
179 { G4cout << G4endl; }
180 else
181 { G4cout << ">>> G4Track ID " << pp->GetTrackID() << G4endl; }
182
183 G4PrimaryParticle* daughter = pp->GetDaughter();
184 while(daughter)
185 {
186 PrintPrimary(daughter,ind+1);
187 daughter = daughter->GetNext();
188 }
189}

Member Data Documentation

◆ fTrackerCollID

G4int RE01EventAction::fTrackerCollID
private

Definition at line 50 of file RE01EventAction.hh.

◆ fCalorimeterCollID

G4int RE01EventAction::fCalorimeterCollID
private

Definition at line 51 of file RE01EventAction.hh.


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

Applications | User Support | Publications | Collaboration