SLIC
6.1.1
Simulation for the Linear Collider (SLIC) - Geant4 simulation application
src
MCParticleGenerator.cc
Go to the documentation of this file.
1
#include "
MCParticleGenerator.hh
"
2
3
// SLIC
4
#include "
MCParticleManager.hh
"
5
6
// LCIO
7
#include "IOIMPL/LCFactory.h"
8
#include "IMPL/MCParticleImpl.h"
9
#include "EVENT/LCEvent.h"
10
#include "EVENT/LCIO.h"
11
12
// Geant4
13
#include "G4SystemOfUnits.hh"
14
15
using
EVENT::MCParticle;
16
using
EVENT::LCCollection;
17
using
EVENT::LCEvent;
18
using
IMPL::MCParticleImpl;
19
using
IOIMPL::LCFactory;
20
21
namespace
slic
{
22
23
MCParticleGenerator::MCParticleGenerator
(G4String eventFile) :
24
_lcevent(0) {
25
26
_particleManager
=
MCParticleManager::instance
();
27
31
LCFactory* factory = LCFactory::getInstance();
32
_reader
= factory->createLCReader();
33
_reader
->open(eventFile);
34
}
35
36
MCParticleGenerator::~MCParticleGenerator
() {
37
_reader
->close();
38
}
39
40
void
MCParticleGenerator::readNextEvent
() {
41
_lcevent
=
_reader
->readNextEvent(EVENT::LCIO::UPDATE);
42
}
43
44
LCEvent*
MCParticleGenerator::getCurrentEvent
() {
45
return
_lcevent
;
46
}
47
48
void
MCParticleGenerator::generateEvent
(G4Event* event) {
49
50
/* Get collection of MCParticles. */
51
LCCollectionVec* particles = (LCCollectionVec*)
_lcevent
->takeCollection(
"MCParticle"
);
52
53
/* Generate the Geant4 event using the MCParticleManager. */
54
_particleManager
->
generateEvent
(particles, event);
55
}
56
57
}
/* namespace slic */
MCParticleGenerator.hh
MCParticleManager.hh
Singleton< MCParticleManager >::instance
static MCParticleManager * instance()
slic::MCParticleGenerator::_lcevent
LCEvent * _lcevent
Definition:
MCParticleGenerator.hh:64
slic::MCParticleGenerator::~MCParticleGenerator
virtual ~MCParticleGenerator()
Definition:
MCParticleGenerator.cc:36
slic::MCParticleGenerator::MCParticleGenerator
MCParticleGenerator(G4String eventFile)
Definition:
MCParticleGenerator.cc:23
slic::MCParticleGenerator::_particleManager
MCParticleManager * _particleManager
Definition:
MCParticleGenerator.hh:66
slic::MCParticleGenerator::_reader
LCReader * _reader
Definition:
MCParticleGenerator.hh:65
slic::MCParticleGenerator::readNextEvent
void readNextEvent()
Definition:
MCParticleGenerator.cc:40
slic::MCParticleGenerator::getCurrentEvent
LCEvent * getCurrentEvent()
Definition:
MCParticleGenerator.cc:44
slic::MCParticleGenerator::generateEvent
void generateEvent(G4Event *event)
Definition:
MCParticleGenerator.cc:48
slic::MCParticleManager::generateEvent
void generateEvent(LCCollectionVec *mcparticles, G4Event *event)
Definition:
MCParticleManager.cc:13
slic
Definition:
CommandLineOption.hh:9
Generated by
1.9.1