-
Notifications
You must be signed in to change notification settings - Fork 0
/
muon.cc
141 lines (109 loc) · 3.67 KB
/
muon.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include "MUON_DetectorConstruction.h"
#include "MUON_ActionInitialization.h"
/*
#ifdef G4MULTITHREADED
#include "G4MTRunManager.hh"
#else
#include "G4RunManager.hh"
#endif
*/
#include "G4RunManager.hh"
#include "G4UImanager.hh"
//#include "FTFP_BERT.hh"
//#include "G4StepLimiterPhysics.hh"
#include "Randomize.hh"
#include "G4VisExecutive.hh"
#include "G4UIExecutive.hh"
#include "MUON_PhysicsList.h"
#include "MUON_Verbosity.h"
#include "MUON_OutputNtuples.h"
#include "MUON_GlobalNtuplesPtr.h"
#include "TROOT.h"
using namespace std ;
MUON_OutputNtuples * global_ntuples_ptr ;
MUON_OutputNtuplesLight * global_ntuples_light_ptr ;
int main (int argc, char ** argv)
{
// Detect interactive mode (if no arguments) and define UI session
//
MUON_Verbosity::level = 1 ;
global_ntuples_ptr = 0 ;
global_ntuples_light_ptr = 0 ;
G4UIExecutive * ui = 0 ;
if (argc == 1) {
ui = new G4UIExecutive (argc, argv) ;
}
// Choose the Random engine
G4Random::setTheEngine (new CLHEP::RanecuEngine) ;
// Construct the default run manager
//
/*
#ifdef G4MULTITHREADED
G4MTRunManager* runManager = new G4MTRunManager ;
cout << "Multithread running enabled" << endl ;
#else
G4RunManager* runManager = new G4RunManager ;
cout << "Multithread running NOT enabled" << endl ;
#endif
*/
G4RunManager* runManager = new G4RunManager ;
MUON_DetectorConstruction * det = new MUON_DetectorConstruction () ;
// Set mandatory initialization classes
//
runManager->SetUserInitialization (det) ;
//G4VModularPhysicsList* physicsList = new FTFP_BERT;
//physicsList->RegisterPhysics(new G4StepLimiterPhysics());
MUON_PhysicsList *physicsList = new MUON_PhysicsList ;
runManager->SetUserInitialization (physicsList) ;
// Set user action classes
runManager->SetUserInitialization (new MUON_ActionInitialization (det)) ;
// >>> MY DEBUG <<<<
//G4cout << "runManager->InitializeGeometry()" << G4endl;
//runManager->InitializeGeometry();
//G4cout << "runManager->InitializePhysics()" << G4endl;
//runManager->InitializePhysics();
//G4cout << "runManager->Initialize()" << G4endl;
//runManager->Initialize();
//G4cout << G4endl << G4endl;
// https://root-forum.cern.ch/t/error-llvm-symbols-exposed-to-cling/23597
gROOT->GetInterpreter () ;
// Initialize visualization
//
G4VisManager * visManager = new G4VisExecutive () ;
if(MUON_Verbosity::level == 2)
visManager->SetVerboseLevel ("Quiet") ;
// G4VisExecutive can take a verbosity argument - see /vis/verbose guidance.
// G4VisManager* visManager = new G4VisExecutive("Quiet");
G4cout << "Initialize visual manager" << G4endl ;
visManager->Initialize () ;
// Get the pointer to the User Interface manager
G4UImanager * UImanager = G4UImanager::GetUIpointer () ;
// Process macro or start UI session
//
if ( ! ui ) {
// barch mode
G4cout << "Exectute " << argv[1] << G4endl ;
G4String command = "/control/execute " ;
G4String fileName = argv[1] ;
UImanager->ApplyCommand (command+fileName) ;
G4cout << argv[1] << " Execution : Done" << G4endl;
}
else {
// interactive mode
UImanager->ApplyCommand ("/control/execute init_vis.mac") ;
if (ui->IsGUI ()) {
cout << "setting up GUI" << endl ;
UImanager->ApplyCommand ("/control/execute gui.mac") ;
}
ui->SessionStart () ;
delete ui ;
}
// Job termination
// Free the store: user actions, physics_list and detector_description are
// owned and deleted by the run manager, so they should not be deleted
// in the main() program !
// delete visManager;
// delete runManager;
delete global_ntuples_ptr ;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....