GGS(GenericGEANT4Simulation)Software
2.7.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() { return new plClass(); } \
16
extern "C" void PhysicsListDestroyer(plClass *p) { delete p; }
17
18
#include "
montecarlo/scoring/manager/GGSScoringManager.h
"
19
#include "
montecarlo/scoring/manager/GGSScoringManagerMessenger.h
"
20
22
#define RegisterSD(sdClassName) \
23
G4VSensitiveDetector *sdClassName##Builder(G4String name) { return new sdClassName(name); } \
24
void sdClassName##Destroyer(sdClassName *p) { delete p; } \
25
class sdClassName##Proxy { \
26
public: \
27
sdClassName##Proxy() { \
28
GGSScoringManager::GetInstance().GetMessenger()->CreateAddCommand(#sdClassName); \
29
GGSScoringManager::GetInstance().RegisterSDClass(#sdClassName, sdClassName##Builder); \
30
} \
31
}; \
32
sdClassName##Proxy proxyFor##sdClassName
33
35
#include "G4UIcommand.hh"
36
#include "G4UImessenger.hh"
37
#include "
montecarlo/useractions/manager/GGSUserActionsManager.h
"
38
39
#define RegisterUA(uaClassName) \
40
class uaClassName##Builder : public G4UImessenger { \
41
public: \
42
uaClassName##Builder() { \
43
_buildCmd = new G4UIcommand("/GGS/userActions/add" #uaClassName, this); \
44
_buildCmd->SetGuidance("Adds the uaClassName action"); \
45
_buildCmd->AvailableForStates(G4State_PreInit, G4State_Idle); \
46
} \
47
~uaClassName##Builder() { delete _buildCmd; } \
48
void SetNewValue(G4UIcommand *command, G4String) { \
49
if (command == _buildCmd) { \
50
GGSUserActionsManager::GetInstance()->AddAction(new uaClassName()); \
51
} \
52
} \
53
\
54
private: \
55
G4UIcommand *_buildCmd; \
56
}; \
57
uaClassName##Builder proxyFor##uaClassName##Builder
58
60
#include "montecarlo/generators/manager/GGSGeneratorActionsManager.h"
61
#define RegisterGA(gaClassName, gaName) \
62
G4VUserPrimaryGeneratorAction *gaClassName##Builder() { return new gaClassName(); } \
63
class gaClassName##Proxy { \
64
public: \
65
gaClassName##Proxy() { \
66
GGSGeneratorActionsManager::GetInstance().RegisterGABuilder(#gaName, gaClassName##Builder); \
67
} \
68
}; \
69
gaClassName##Proxy proxyFor##gaClassName##Builder
70
71
#endif
/* GGSMCPLUGINMACROS_H_ */
GGSScoringManager.h
GGSUserActionsManager.h
GGSScoringManagerMessenger.h
Generated on Wed Jul 8 2020 07:29:44 for GGS(GenericGEANT4Simulation)Software by
1.8.5