Geant4
11.2.2
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 implementation
27
//
28
// Author: Youhei Morita, 12.09.2001
29
// --------------------------------------------------------------------
30
31
#include "
G4ios.hh
"
32
#include "
G4MCTEvent.hh
"
33
#include "
G4MCTGenEvent.hh
"
34
#include "
G4MCTSimEvent.hh
"
35
#include "
G4MCTSimParticle.hh
"
36
37
// --------------------------------------------------------------------
38
G4MCTEvent::G4MCTEvent
()
39
{
40
genEvent
=
new
G4MCTGenEvent
();
// will be reused.
41
simEvent
=
new
G4MCTSimEvent
();
42
}
43
44
// --------------------------------------------------------------------
45
G4MCTEvent::~G4MCTEvent
()
46
{
47
delete
genEvent
;
48
delete
simEvent
;
49
}
50
51
// --------------------------------------------------------------------
52
G4MCTSimParticle
*
G4MCTEvent::GetSimParticle
(
53
const
G4MCTGenParticle
& genpart)
const
54
{
55
auto
pos =
gen2simParticleMap
.find(genpart);
56
if
(pos !=
gen2simParticleMap
.cend())
57
{
58
return
pos->second;
59
}
60
else
61
{
62
return
nullptr
;
63
}
64
}
65
66
// --------------------------------------------------------------------
67
G4MCTGenParticle
G4MCTEvent::GetGenParticle
(
68
const
G4MCTSimParticle
* simpart)
const
69
{
70
auto
pos =
sim2genParticleMap
.find(
const_cast<
G4MCTSimParticle
*
>
(simpart));
71
if
(pos !=
sim2genParticleMap
.cend())
72
{
73
return
pos->second;
74
}
75
else
76
{
77
return
G4MCTGenParticle
((
void
*) 0, (
void
*) 0);
78
}
79
}
80
81
// --------------------------------------------------------------------
82
G4int
G4MCTEvent::AddPrimaryPair
(
const
G4MCTGenParticle
& genp,
83
const
G4MCTSimParticle
* simp)
84
{
85
gen2simParticleMap
.insert(std::make_pair(
86
const_cast<
G4MCTGenParticle
&
>
(genp),
const_cast<
G4MCTSimParticle
*
>
(simp)));
87
sim2genParticleMap
.insert(std::make_pair(
88
const_cast<
G4MCTSimParticle
*
>
(simp),
const_cast<
G4MCTGenParticle
&
>
(genp)));
89
90
return
(
G4int
)
gen2simParticleMap
.size();
91
}
92
93
// --------------------------------------------------------------------
94
void
G4MCTEvent::ClearEvent
()
95
{
96
gen2simParticleMap
.clear();
97
sim2genParticleMap
.clear();
98
99
genEvent
->
ClearEvent
();
100
simEvent
->
ClearEvent
();
101
}
102
103
// --------------------------------------------------------------------
104
void
G4MCTEvent::Print
(std::ostream& ostr)
const
105
{
106
ostr <<
"Event#:"
<<
eventNumber
<<
G4endl
;
107
simEvent
->
Print
(ostr);
108
}
G4MCTEvent.hh
G4MCTGenEvent.hh
G4MCTGenParticle
std::pair< void *, void * > G4MCTGenParticle
Definition
G4MCTGenParticle.hh:35
G4MCTSimEvent.hh
G4MCTSimParticle.hh
G4int
int G4int
Definition
G4Types.hh:85
G4ios.hh
G4endl
#define G4endl
Definition
G4ios.hh:67
G4MCTEvent::genEvent
G4MCTGenEvent * genEvent
Definition
G4MCTEvent.hh:85
G4MCTEvent::AddPrimaryPair
G4int AddPrimaryPair(const G4MCTGenParticle &genp, const G4MCTSimParticle *simp)
Definition
G4MCTEvent.cc:82
G4MCTEvent::GetGenParticle
G4MCTGenParticle GetGenParticle(const G4MCTSimParticle *simpart) const
Definition
G4MCTEvent.cc:67
G4MCTEvent::Print
void Print(std::ostream &ostr=std::cout) const
Definition
G4MCTEvent.cc:104
G4MCTEvent::~G4MCTEvent
virtual ~G4MCTEvent()
Definition
G4MCTEvent.cc:45
G4MCTEvent::GetSimParticle
G4MCTSimParticle * GetSimParticle(const G4MCTGenParticle &genpart) const
Definition
G4MCTEvent.cc:52
G4MCTEvent::sim2genParticleMap
MCTSim2GenParticleMap sim2genParticleMap
Definition
G4MCTEvent.hh:90
G4MCTEvent::gen2simParticleMap
MCTGen2SimParticleMap gen2simParticleMap
Definition
G4MCTEvent.hh:89
G4MCTEvent::simEvent
G4MCTSimEvent * simEvent
Definition
G4MCTEvent.hh:86
G4MCTEvent::G4MCTEvent
G4MCTEvent()
Definition
G4MCTEvent.cc:38
G4MCTEvent::eventNumber
G4int eventNumber
Definition
G4MCTEvent.hh:84
G4MCTEvent::ClearEvent
void ClearEvent()
Definition
G4MCTEvent.cc:94
G4MCTGenEvent
Definition
G4MCTGenEvent.hh:39
G4MCTGenEvent::ClearEvent
void ClearEvent()
Definition
G4MCTGenEvent.cc:68
G4MCTSimEvent
Definition
G4MCTSimEvent.hh:46
G4MCTSimEvent::ClearEvent
void ClearEvent()
Definition
G4MCTSimEvent.cc:115
G4MCTSimEvent::Print
void Print(std::ostream &ostr=std::cout) const
Definition
G4MCTSimEvent.cc:159
G4MCTSimParticle
Definition
G4MCTSimParticle.hh:47
geant4-v11.2.2
source
persistency
mctruth
src
G4MCTEvent.cc
Generated by
1.12.0