31 #include "RunAction.hh"
32 #include "Analysis.hh"
45 :fDetector(det),fPrimary(pri)
61 fXVector = CLHEP::HepVector(32);
62 fYVector = CLHEP::HepVector(32);
63 fThetaVector = CLHEP::HepVector(32);
64 fPhiVector = CLHEP::HepVector(32);
69 G4cout <<
"##### Create analysis manager " <<
" " <<
this <<
G4endl;
73 G4cout <<
"Using " << man->GetType() <<
" analysis manager" <<
G4endl;
77 man->OpenFile(
"nanobeam");
78 man->SetFirstHistoId(1);
79 man->SetFirstNtupleId(1);
83 man->CreateNtuple(
"ntuple0",
"BeamProfile");
84 man->CreateNtupleDColumn(
"xIn");
85 man->CreateNtupleDColumn(
"yIn");
86 man->CreateNtupleDColumn(
"zIn");
92 man->CreateNtuple(
"ntuple1",
"Grid");
93 man->CreateNtupleDColumn(
"xIn");
94 man->CreateNtupleDColumn(
"yIn");
95 man->CreateNtupleDColumn(
"e");
100 man->CreateNtuple(
"ntuple2",
"Coef");
101 man->CreateNtupleDColumn(
"xIn");
102 man->CreateNtupleDColumn(
"yIn");
103 man->CreateNtupleDColumn(
"thetaIn");
104 man->CreateNtupleDColumn(
"phiIn");
132 m = CLHEP::HepMatrix(32,32);
136 G4cout <<
"===> NANOBEAM LINE INTRINSIC ABERRATION COEFFICIENTS (units of micrometer and mrad) :" <<
G4endl;
142 CLHEP::HepVector tmp(32,0);
146 b=tmp.sub(8,8);
G4cout <<
"<x|theta*delta>=" << b <<
G4endl;
147 b=tmp.sub(10,10);
G4cout <<
"<x|theta^3>=" << b <<
G4endl;
148 b=tmp.sub(12,12);
G4cout <<
"<x|theta*phi^2>=" << b <<
G4endl;
152 tmp = m*fThetaVector;
159 b=tmp.sub(9,9);
G4cout <<
"<y|phi*delta>=" << b <<
G4endl;
160 b=tmp.sub(11,11);
G4cout <<
"<y|theta^2*phi>=" << b <<
G4endl;
161 b=tmp.sub(13,13);
G4cout <<
"<y|phi^3>=" << b <<
G4endl;
179 delete G4AnalysisManager::Instance();
The primary generator action class with particle gun.
void BeginOfRunAction(const G4Run *)
#define G4MUTEX_INITIALIZER
G4GLOB_DLL std::ostream G4cout
static constexpr double m
void EndOfRunAction(const G4Run *)
Detector construction class to define materials and geometry.
CLHEP::HepMatrix GetMatrix()
G4CsvAnalysisManager G4AnalysisManager