GGS(GenericGEANT4Simulation)Software
2.6.0
Main Page
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Macros
include
montecarlo
pluginmanagers
GGSMCPluginMacros.h
Go to the documentation of this file.
1
/*
2
* GGSMCPluginMacros.h
3
*
4
* Created on: 07 Aug 2013
5
* Author: Nicola Mori
6
*/
7
10
#ifndef GGSMCPLUGINMACROS_H_
11
#define GGSMCPLUGINMACROS_H_
12
14
#define PhysicsListPlugin(plClass) \
15
extern "C" G4VUserPhysicsList* PhysicsListBuilder() { \
16
return new plClass(); \
17
} \
18
extern "C" void PhysicsListDestroyer(plClass* p) { \
19
delete p; \
20
}
21
22
#include "
montecarlo/scoring/manager/GGSScoringManager.h
"
23
#include "
montecarlo/scoring/manager/GGSScoringManagerMessenger.h
"
24
26
#define RegisterSD(sdClassName) \
27
G4VSensitiveDetector* sdClassName##Builder(G4String name){ \
28
return new sdClassName(name); \
29
}\
30
void sdClassName##Destroyer(sdClassName *p){ \
31
delete p; \
32
}\
33
class sdClassName##Proxy { \
34
public: \
35
sdClassName##Proxy(){ \
36
GGSScoringManager::GetInstance().GetMessenger()->CreateAddCommand(#sdClassName); \
37
GGSScoringManager::GetInstance().RegisterSDClass(#sdClassName, sdClassName##Builder); \
38
} \
39
};\
40
sdClassName##Proxy proxyFor##sdClassName
41
43
#include "G4UImessenger.hh"
44
#include "G4UIcommand.hh"
45
#include "
montecarlo/useractions/manager/GGSUserActionsManager.h
"
46
47
#define RegisterUA(uaClassName) \
48
class uaClassName##Builder: public G4UImessenger { \
49
public: \
50
uaClassName##Builder(){ \
51
_buildCmd = new G4UIcommand("/GGS/userActions/add" #uaClassName, this); \
52
_buildCmd->SetGuidance("Adds the uaClassName action"); \
53
_buildCmd->AvailableForStates(G4State_PreInit, G4State_Idle); \
54
} \
55
~uaClassName##Builder(){ \
56
delete _buildCmd; \
57
} \
58
void SetNewValue(G4UIcommand* command, G4String){ \
59
if (command == _buildCmd) { \
60
GGSUserActionsManager::GetInstance()->AddAction(new uaClassName()); \
61
} \
62
} \
63
private: \
64
G4UIcommand* _buildCmd; \
65
}; \
66
uaClassName##Builder proxyFor##uaClassName##Builder
67
68
70
#include "montecarlo/generators/manager/GGSGeneratorActionsManager.h"
71
#define RegisterGA(gaClassName, gaName) \
72
G4VUserPrimaryGeneratorAction* gaClassName##Builder(){ \
73
return new gaClassName(); \
74
}\
75
class gaClassName##Proxy { \
76
public: \
77
gaClassName##Proxy(){ \
78
GGSGeneratorActionsManager::GetInstance().RegisterGABuilder(#gaName, gaClassName##Builder); \
79
} \
80
}; \
81
gaClassName##Proxy proxyFor##gaClassName##Builder
82
83
#endif
/* GGSMCPLUGINMACROS_H_ */
GGSScoringManager.h
GGSUserActionsManager.h
GGSScoringManagerMessenger.h
Generated on Thu May 30 2019 11:52:22 for GGS(GenericGEANT4Simulation)Software by
1.8.5