Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4MCTEvent.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// G4MCTEvent.cc
27//
28// ====================================================================
29
30#include "G4ios.hh"
31#include "G4MCTEvent.hh"
32#include "G4MCTGenEvent.hh"
33#include "G4MCTSimEvent.hh"
34#include "G4MCTSimParticle.hh"
35
36// ====================================================================
37//
38// class description
39//
40// ====================================================================
41
42////////////////////
44 : eventNumber(0)
45////////////////////
46{
47 genEvent= new G4MCTGenEvent(); // will be reused.
49}
50
51/////////////////////
53/////////////////////
54{
55 delete genEvent;
56 delete simEvent;
57}
58
59/////////////////////////////////////////////////////
61 (const G4MCTGenParticle& genpart) const
62/////////////////////////////////////////////////////
63{
64 MCTGen2SimParticleMap::const_iterator pos= gen2simParticleMap.find(genpart);
65 if(pos != gen2simParticleMap.end()) {
66 return pos-> second;
67 } else {
68 return 0;
69 }
70}
71
72////////////////////////////////////////////////////
74 (const G4MCTSimParticle* simpart) const
75////////////////////////////////////////////////////
76{
77 MCTSim2GenParticleMap::const_iterator
78 pos= sim2genParticleMap.find(const_cast<G4MCTSimParticle*>(simpart));
79 if(pos != sim2genParticleMap.end()) {
80 return pos-> second;
81 } else {
82 return G4MCTGenParticle((void*)0,(void*)0);
83 }
84}
85
86////////////////////////////////////////////////////////
88 const G4MCTSimParticle* simp)
89////////////////////////////////////////////////////////
90{
91 gen2simParticleMap.insert(std::make_pair(const_cast<G4MCTGenParticle&>(genp),
92 const_cast<G4MCTSimParticle*>(simp)));
93 sim2genParticleMap.insert(std::make_pair(const_cast<G4MCTSimParticle*>(simp),
94 const_cast<G4MCTGenParticle&>(genp)));
95
96 return gen2simParticleMap.size();
97}
98
99///////////////////////////
101///////////////////////////
102{
103 gen2simParticleMap.clear();
104 sim2genParticleMap.clear();
105
108}
109
110//////////////////////////////////////////////
111void G4MCTEvent::Print(std::ostream& ostr) const
112//////////////////////////////////////////////
113{
114 ostr << "Event#:" << eventNumber << G4endl;
115 simEvent-> Print(ostr);
116}
std::pair< void *, void * > G4MCTGenParticle
#define G4endl
Definition: G4ios.hh:52
G4MCTGenEvent * genEvent
Definition: G4MCTEvent.hh:52
G4MCTGenParticle GetGenParticle(const G4MCTSimParticle *simpart) const
Definition: G4MCTEvent.cc:74
void Print(std::ostream &ostr=std::cout) const
Definition: G4MCTEvent.cc:111
int AddPrimaryPair(const G4MCTGenParticle &genp, const G4MCTSimParticle *simp)
Definition: G4MCTEvent.cc:87
virtual ~G4MCTEvent()
Definition: G4MCTEvent.cc:52
G4MCTSimParticle * GetSimParticle(const G4MCTGenParticle &genpart) const
Definition: G4MCTEvent.cc:61
MCTSim2GenParticleMap sim2genParticleMap
Definition: G4MCTEvent.hh:57
MCTGen2SimParticleMap gen2simParticleMap
Definition: G4MCTEvent.hh:56
G4MCTSimEvent * simEvent
Definition: G4MCTEvent.hh:53
void ClearEvent()
Definition: G4MCTEvent.cc:100