VMC Examples
Version 6.8
Toggle main menu visibility
Loading...
Searching...
No Matches
examples
A01
include
A01MCApplication.h
Go to the documentation of this file.
1
#ifndef A01_MC_APPLICATION_H
2
#define A01_MC_APPLICATION_H
3
4
//------------------------------------------------
5
// The Virtual Monte Carlo examples
6
// Copyright (C) 2007 - 2014 Ivana Hrivnacova
7
// All rights reserved.
8
//
9
// For the licensing terms see geant4_vmc/LICENSE.
10
// Contact: root-vmc@cern.ch
11
//-------------------------------------------------
12
13
/// \file A01MCApplication.h
14
/// \brief Definition of the A01MCApplication class
15
///
16
/// Geant4 example A01 adapted to Virtual Monte Carlo
17
///
18
/// \author I. Hrivnacova; IPN, Orsay
19
20
#include "TMCVerbose.h"
21
#include <TGeoUniformMagField.h>
22
#include <TVirtualMCApplication.h>
23
24
#include "
A01RootDetectorConstruction.h
"
25
26
class
Ex03MCStack
;
27
class
A01MagField
;
28
class
A01PrimaryGenerator
;
29
class
A01DriftChamberSD
;
30
class
A01EmCalorimeterSD
;
31
class
A01HadCalorimeterSD
;
32
class
A01HodoscopeSD
;
33
34
class
TMCRootManager;
35
36
/// \ingroup A01
37
/// \brief Implementation of the TVirtualMCApplication
38
///
39
/// \date 12/05/2012
40
/// \author I. Hrivnacova; IPN, Orsay
41
42
class
A01MCApplication
:
public
TVirtualMCApplication
43
{
44
public
:
45
A01MCApplication
(
const
char
* name,
const
char
* title);
46
A01MCApplication
();
47
virtual
~A01MCApplication
();
48
49
// methods
50
void
InitMC
(
const
char
* setup);
51
void
RunMC
(Int_t nofEvents);
52
void
FinishRun
();
53
void
ReadEvent
(Int_t i);
54
55
virtual
TVirtualMCApplication
*
CloneForWorker
()
const
;
56
virtual
void
InitOnWorker
();
57
virtual
void
FinishRunOnWorker
();
58
59
virtual
void
ConstructGeometry
();
60
virtual
void
InitGeometry
();
61
virtual
void
AddParticles
();
62
virtual
void
AddIons
();
63
virtual
void
GeneratePrimaries
();
64
virtual
void
BeginEvent
();
65
virtual
void
BeginPrimary
();
66
virtual
void
PreTrack
();
67
virtual
void
Stepping
();
68
virtual
void
PostTrack
();
69
virtual
void
FinishPrimary
();
70
virtual
void
FinishEvent
();
71
72
// set methods
73
void
SetCuts
();
74
void
SetWriteStack
(Bool_t writeStack);
75
void
SetWriteHits
(Bool_t writeHits);
76
void
SetUseLocalMagField
(Bool_t localMagField);
77
void
SetVerboseLevel
(Int_t verboseLevel);
78
79
// get methods
80
A01RootDetectorConstruction
*
GetDetectorConstruction
()
const
;
81
A01PrimaryGenerator
*
GetPrimaryGenerator
()
const
;
82
A01DriftChamberSD
*
GetDriftChamberSD1
()
const
;
83
A01DriftChamberSD
*
GetDriftChamberSD2
()
const
;
84
A01EmCalorimeterSD
*
GetEmCalorimeterSD
()
const
;
85
A01HadCalorimeterSD
*
GetHadCalorimeterSD
()
const
;
86
A01HodoscopeSD
*
GetHodoscopeSD1
()
const
;
87
A01HodoscopeSD
*
GetHodoscopeSD2
()
const
;
88
Bool_t
GetUseLocalMagField
()
const
;
89
90
private
:
91
// methods
92
A01MCApplication
(
const
A01MCApplication
& origin);
93
void
RegisterStack
()
const
;
94
95
// data members
96
mutable
TMCRootManager*
fRootManager
;
//!< Root manager
97
Bool_t
fWriteStack
;
///< Option to write stack
98
Bool_t
fWriteHits
;
///< Option to write hits
99
/// Option to use local magnetic field (working only with Geant4 !)
100
Bool_t
fUseLocalMagField
;
101
TMCVerbose
fVerbose
;
///< VMC verbose helper
102
Ex03MCStack
*
fStack
;
///< VMC stack
103
A01RootDetectorConstruction
*
fDetConstruction
;
///< Detector construction
104
A01DriftChamberSD
*
fDriftChamberSD1
;
///< Drift Chamber 1 SD
105
A01DriftChamberSD
*
fDriftChamberSD2
;
///< Drift Chamber 2 SD
106
A01EmCalorimeterSD
*
fEmCalorimeterSD
;
///< Em Calorimeter SD
107
A01HadCalorimeterSD
*
fHadCalorimeterSD
;
///< Had Calorimeter SD
108
A01HodoscopeSD
*
fHodoscopeSD1
;
///< Hodoscope 1 SD
109
A01HodoscopeSD
*
fHodoscopeSD2
;
///< Hodoscope 2 SD
110
A01PrimaryGenerator
*
fPrimaryGenerator
;
///< Primary generator
111
A01MagField
*
fMagField
;
///< Magnetic field
112
Bool_t
fIsMaster
;
///< If is on master thread
113
114
ClassDef(
A01MCApplication
, 1)
// Interface to MonteCarlo application
115
};
116
117
// inline functions
118
119
/// (In)Activate writing stack on file
120
/// \param writeStack The new value of the option
121
inline
void
A01MCApplication::SetWriteStack
(Bool_t writeStack)
122
{
123
fWriteStack
= writeStack;
124
}
125
126
/// Set verbosity
127
/// \param verboseLevel The new verbose level value
128
inline
void
A01MCApplication::SetVerboseLevel
(Int_t verboseLevel)
129
{
130
fVerbose
.SetLevel(verboseLevel);
131
}
132
133
// Set magnetic field
134
// \param bz The new field value in z
135
// inline void A01MCApplication::SetField(Double_t bz)
136
//{ fMagField->SetFieldValue(0., 0., bz); }
137
138
/// \return The detector construction
139
inline
A01RootDetectorConstruction
*
140
A01MCApplication::GetDetectorConstruction
()
const
141
{
142
return
fDetConstruction
;
143
}
144
145
/// \return The primary generator
146
inline
A01PrimaryGenerator
*
A01MCApplication::GetPrimaryGenerator
()
const
147
{
148
return
fPrimaryGenerator
;
149
}
150
151
/// \return The Drift Chamber 1 SD
152
inline
A01DriftChamberSD
*
A01MCApplication::GetDriftChamberSD1
()
const
153
{
154
return
fDriftChamberSD1
;
155
}
156
157
/// \return The Drift Chamber 2 SD
158
inline
A01DriftChamberSD
*
A01MCApplication::GetDriftChamberSD2
()
const
159
{
160
return
fDriftChamberSD2
;
161
}
162
163
/// \return The Em Calorimeter SD
164
inline
A01EmCalorimeterSD
*
A01MCApplication::GetEmCalorimeterSD
()
const
165
{
166
return
fEmCalorimeterSD
;
167
}
168
169
/// \return The Had Calorimeter SD
170
inline
A01HadCalorimeterSD
*
A01MCApplication::GetHadCalorimeterSD
()
const
171
{
172
return
fHadCalorimeterSD
;
173
}
174
175
/// \return The Hodoscope 1 SD
176
inline
A01HodoscopeSD
*
A01MCApplication::GetHodoscopeSD1
()
const
177
{
178
return
fHodoscopeSD1
;
179
}
180
181
/// \return The Hodoscope 2 SD
182
inline
A01HodoscopeSD
*
A01MCApplication::GetHodoscopeSD2
()
const
183
{
184
return
fHodoscopeSD2
;
185
}
186
187
/// \return The option to use local magnetic field (working only with Geant4 !)
188
inline
Bool_t
A01MCApplication::GetUseLocalMagField
()
const
189
{
190
return
fUseLocalMagField
;
191
}
192
193
#endif
// A01_MC_APPLICATION_H
A01RootDetectorConstruction.h
Definition of the A01RootDetectorConstruction class.
A01DriftChamberSD
The calorimeter sensitive detector.
Definition
A01DriftChamberSD.h:31
A01EmCalorimeterSD
The EM calorimeter sensitive detector.
Definition
A01EmCalorimeterSD.h:31
A01HadCalorimeterSD
The hadron calorimeter sensitive detector.
Definition
A01HadCalorimeterSD.h:31
A01HodoscopeSD
The calorimeter sensitive detector.
Definition
A01HodoscopeSD.h:31
A01MCApplication::SetVerboseLevel
void SetVerboseLevel(Int_t verboseLevel)
Definition
A01MCApplication.h:128
A01MCApplication::ReadEvent
void ReadEvent(Int_t i)
Definition
A01MCApplication.cxx:309
A01MCApplication::SetWriteHits
void SetWriteHits(Bool_t writeHits)
Definition
A01MCApplication.cxx:493
A01MCApplication::RunMC
void RunMC(Int_t nofEvents)
Definition
A01MCApplication.cxx:249
A01MCApplication::fHodoscopeSD2
A01HodoscopeSD * fHodoscopeSD2
Hodoscope 2 SD.
Definition
A01MCApplication.h:109
A01MCApplication::fMagField
A01MagField * fMagField
Magnetic field.
Definition
A01MCApplication.h:111
A01MCApplication::SetWriteStack
void SetWriteStack(Bool_t writeStack)
Definition
A01MCApplication.h:121
A01MCApplication::GeneratePrimaries
virtual void GeneratePrimaries()
Definition
A01MCApplication.cxx:372
A01MCApplication::fDriftChamberSD1
A01DriftChamberSD * fDriftChamberSD1
Drift Chamber 1 SD.
Definition
A01MCApplication.h:104
A01MCApplication::Stepping
virtual void Stepping()
Definition
A01MCApplication.cxx:414
A01MCApplication::fWriteHits
Bool_t fWriteHits
Definition
A01MCApplication.h:98
A01MCApplication::GetPrimaryGenerator
A01PrimaryGenerator * GetPrimaryGenerator() const
Definition
A01MCApplication.h:146
A01MCApplication::BeginPrimary
virtual void BeginPrimary()
Definition
A01MCApplication.cxx:398
A01MCApplication::fIsMaster
Bool_t fIsMaster
If is on master thread.
Definition
A01MCApplication.h:112
A01MCApplication::A01MCApplication
A01MCApplication()
Definition
A01MCApplication.cxx:143
A01MCApplication::fDetConstruction
A01RootDetectorConstruction * fDetConstruction
Detector construction.
Definition
A01MCApplication.h:103
A01MCApplication::PreTrack
virtual void PreTrack()
Definition
A01MCApplication.cxx:406
A01MCApplication::GetHodoscopeSD2
A01HodoscopeSD * GetHodoscopeSD2() const
Definition
A01MCApplication.h:182
A01MCApplication::SetCuts
void SetCuts()
Definition
A01MCApplication.cxx:523
A01MCApplication::AddParticles
virtual void AddParticles()
Definition
A01MCApplication.cxx:356
A01MCApplication::~A01MCApplication
virtual ~A01MCApplication()
Definition
A01MCApplication.cxx:165
A01MCApplication::FinishRunOnWorker
virtual void FinishRunOnWorker()
Definition
A01MCApplication.cxx:299
A01MCApplication::ConstructGeometry
virtual void ConstructGeometry()
Definition
A01MCApplication.cxx:329
A01MCApplication::FinishEvent
virtual void FinishEvent()
Definition
A01MCApplication.cxx:444
A01MCApplication::FinishPrimary
virtual void FinishPrimary()
Definition
A01MCApplication.cxx:436
A01MCApplication::GetDriftChamberSD2
A01DriftChamberSD * GetDriftChamberSD2() const
Definition
A01MCApplication.h:158
A01MCApplication::fDriftChamberSD2
A01DriftChamberSD * fDriftChamberSD2
Drift Chamber 2 SD.
Definition
A01MCApplication.h:105
A01MCApplication::InitMC
void InitMC(const char *setup)
Definition
A01MCApplication.cxx:207
A01MCApplication::GetDetectorConstruction
A01RootDetectorConstruction * GetDetectorConstruction() const
Definition
A01MCApplication.h:140
A01MCApplication::GetHodoscopeSD1
A01HodoscopeSD * GetHodoscopeSD1() const
Definition
A01MCApplication.h:176
A01MCApplication::InitGeometry
virtual void InitGeometry()
Definition
A01MCApplication.cxx:338
A01MCApplication::fVerbose
TMCVerbose fVerbose
VMC verbose helper.
Definition
A01MCApplication.h:101
A01MCApplication::fHadCalorimeterSD
A01HadCalorimeterSD * fHadCalorimeterSD
Had Calorimeter SD.
Definition
A01MCApplication.h:107
A01MCApplication::GetEmCalorimeterSD
A01EmCalorimeterSD * GetEmCalorimeterSD() const
Definition
A01MCApplication.h:164
A01MCApplication::fWriteStack
Bool_t fWriteStack
Option to write stack.
Definition
A01MCApplication.h:97
A01MCApplication::FinishRun
void FinishRun()
Definition
A01MCApplication.cxx:261
A01MCApplication::fUseLocalMagField
Bool_t fUseLocalMagField
Option to use local magnetic field (working only with Geant4 !).
Definition
A01MCApplication.h:100
A01MCApplication::fStack
Ex03MCStack * fStack
VMC stack.
Definition
A01MCApplication.h:102
A01MCApplication::BeginEvent
virtual void BeginEvent()
Definition
A01MCApplication.cxx:381
A01MCApplication::GetUseLocalMagField
Bool_t GetUseLocalMagField() const
Definition
A01MCApplication.h:188
A01MCApplication::fPrimaryGenerator
A01PrimaryGenerator * fPrimaryGenerator
Primary generator.
Definition
A01MCApplication.h:110
A01MCApplication::A01MCApplication
A01MCApplication(const char *name, const char *title)
Definition
A01MCApplication.cxx:50
A01MCApplication::GetDriftChamberSD1
A01DriftChamberSD * GetDriftChamberSD1() const
Definition
A01MCApplication.h:152
A01MCApplication::SetUseLocalMagField
void SetUseLocalMagField(Bool_t localMagField)
Definition
A01MCApplication.cxx:509
A01MCApplication::GetHadCalorimeterSD
A01HadCalorimeterSD * GetHadCalorimeterSD() const
Definition
A01MCApplication.h:170
A01MCApplication::InitOnWorker
virtual void InitOnWorker()
Definition
A01MCApplication.cxx:281
A01MCApplication::AddIons
virtual void AddIons()
Definition
A01MCApplication.cxx:364
A01MCApplication::CloneForWorker
virtual TVirtualMCApplication * CloneForWorker() const
Definition
A01MCApplication.cxx:274
A01MCApplication::PostTrack
virtual void PostTrack()
Definition
A01MCApplication.cxx:428
A01MCApplication::fRootManager
TMCRootManager * fRootManager
Root manager.
Definition
A01MCApplication.h:96
A01MCApplication::RegisterStack
void RegisterStack() const
Definition
A01MCApplication.cxx:192
A01MCApplication::fEmCalorimeterSD
A01EmCalorimeterSD * fEmCalorimeterSD
Em Calorimeter SD.
Definition
A01MCApplication.h:106
A01MCApplication::fHodoscopeSD1
A01HodoscopeSD * fHodoscopeSD1
Hodoscope 1 SD.
Definition
A01MCApplication.h:108
A01MagField
Definition of a uniform magnetic field within a given region.
Definition
A01MagField.h:30
A01PrimaryGenerator
The primary generator.
Definition
A01PrimaryGenerator.h:34
A01RootDetectorConstruction
The detector construction (via TGeo ).
Definition
A01RootDetectorConstruction.h:30
Ex03MCStack
Implementation of the TVirtualMCStack interface.
Definition
Ex03MCStack.h:36
TVirtualMCApplication
Generated on
for VMC Examples by
1.17.0