Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
RE01EventAction Class Reference

#include <RE01EventAction.hh>

Inheritance diagram for RE01EventAction:
G4UserEventAction

Public Member Functions

 RE01EventAction ()
 
virtual ~RE01EventAction ()
 
virtual void BeginOfEventAction (const G4Event *)
 
virtual void EndOfEventAction (const G4Event *)
 
- Public Member Functions inherited from G4UserEventAction
 G4UserEventAction ()
 
virtual ~G4UserEventAction ()
 
void SetEventManager (G4EventManager *value)
 

Additional Inherited Members

- Protected Attributes inherited from G4UserEventAction
G4EventManagerfpEventManager
 

Detailed Description

Definition at line 40 of file RE01EventAction.hh.

Constructor & Destructor Documentation

RE01EventAction::RE01EventAction ( )

Definition at line 51 of file RE01EventAction.cc.

53  fTrackerCollID(-1),fCalorimeterCollID(-1),fMuonCollID(-1)
54 {;}
RE01EventAction::~RE01EventAction ( )
virtual

Definition at line 57 of file RE01EventAction.cc.

58 {;}

Member Function Documentation

void RE01EventAction::BeginOfEventAction ( const G4Event )
virtual

Reimplemented from G4UserEventAction.

Definition at line 61 of file RE01EventAction.cc.

References G4SDManager::GetCollectionID(), and G4SDManager::GetSDMpointer().

62 {
64  if(fTrackerCollID<0||fCalorimeterCollID<0||fMuonCollID<0)
65  {
66  G4String colNam;
67  fTrackerCollID = SDman->GetCollectionID(colNam="trackerCollection");
68  fCalorimeterCollID = SDman->GetCollectionID(colNam="calCollection");
69  }
70 }
G4int GetCollectionID(G4String colName)
Definition: G4SDManager.cc:131
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:40
void RE01EventAction::EndOfEventAction ( const G4Event evt)
virtual

Reimplemented from G4UserEventAction.

Definition at line 73 of file RE01EventAction.cc.

References G4TrajectoryContainer::entries(), G4THitsCollection< T >::entries(), G4cout, G4endl, G4Event::GetEventID(), G4HCofThisEvent::GetHC(), G4Event::GetHCofThisEvent(), G4Event::GetNumberOfPrimaryVertex(), G4PrimaryVertex::GetPrimary(), G4Event::GetPrimaryVertex(), G4PrimaryVertex::GetT0(), G4Event::GetTrajectoryContainer(), G4PrimaryVertex::GetX0(), G4PrimaryVertex::GetY0(), G4PrimaryVertex::GetZ0(), python.hepunit::GeV, ns, G4InuclParticleNames::pp, and RE01Trajectory::ShowTrajectory().

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

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