VMC Examples
Version 6.8
Toggle main menu visibility
Loading...
Searching...
No Matches
examples
E03
E03b
include
Ex03bMCApplication.h
Go to the documentation of this file.
1
#ifndef EX03_MC_APPLICATION_H
2
#define EX03_MC_APPLICATION_H
3
4
//------------------------------------------------
5
// The Virtual Monte Carlo examples
6
// Copyright (C) 2014 - 2018 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 Ex03bMCApplication.h
14
/// \brief Definition of the Ex03bMCApplication class
15
///
16
/// Geant4 ExampleN03 adapted to Virtual Monte Carlo
17
///
18
/// \author I. Hrivnacova; IPN, Orsay
19
20
#include <TVirtualMCApplication.h>
21
22
#include "
Ex03DetectorConstruction.h
"
23
#include "
Ex03bCalorimeterSD.h
"
24
25
#include <TGeoUniformMagField.h>
26
#include <TMCVerbose.h>
27
28
class
Ex03MCStack
;
29
class
Ex03PrimaryGenerator
;
30
31
class
TMCRootManager;
32
33
/// \ingroup E03
34
/// \brief Implementation of the TVirtualMCApplication
35
///
36
/// A variant of the Ex03MCApplication class:
37
/// the MC application using a sensitive detcetor
38
/// derived from the new TVirtualMCSensitiveDetector interface.
39
///
40
/// \author I. Hrivnacova; IPN, Orsay
41
42
class
Ex03bMCApplication
:
public
TVirtualMCApplication
43
{
44
public
:
45
Ex03bMCApplication
(
const
char
* name,
const
char
* title);
46
Ex03bMCApplication
();
47
virtual
~Ex03bMCApplication
();
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
ConstructSensitiveDetectors
();
61
virtual
void
InitGeometry
();
62
virtual
void
AddParticles
();
63
virtual
void
AddIons
();
64
virtual
void
GeneratePrimaries
();
65
virtual
void
BeginEvent
();
66
virtual
void
BeginPrimary
();
67
virtual
void
PreTrack
();
68
virtual
void
Stepping
();
69
virtual
void
PostTrack
();
70
virtual
void
FinishPrimary
();
71
virtual
void
EndOfEvent
();
72
virtual
void
FinishEvent
();
73
74
// set methods
75
void
SetPrintModulo
(Int_t value);
76
void
SetVerboseLevel
(Int_t verboseLevel);
77
void
SetControls
(Bool_t isConstrols);
78
void
SetField
(Double_t bz);
79
80
// get methods
81
Ex03DetectorConstruction
*
GetDetectorConstruction
()
const
;
82
Ex03bCalorimeterSD
*
GetCalorimeterSD
()
const
;
83
Ex03PrimaryGenerator
*
GetPrimaryGenerator
()
const
;
84
85
// method for tests
86
void
SetOldGeometry
(Bool_t oldGeometry = kTRUE);
87
88
private
:
89
// methods
90
Ex03bMCApplication
(
const
Ex03bMCApplication
& origin);
91
void
RegisterStack
()
const
;
92
93
// data members
94
mutable
TMCRootManager*
fRootManager
;
//!< Root manager
95
Int_t
fPrintModulo
;
///< The event modulus number to be printed
96
Int_t
fEventNo
;
///< Event counter
97
TMCVerbose
fVerbose
;
///< VMC verbose helper
98
Ex03MCStack
*
fStack
;
///< VMC stack
99
Ex03DetectorConstruction
*
fDetConstruction
;
///< Dector construction
100
Ex03bCalorimeterSD
*
fCalorimeterSD
;
///< Calorimeter SD
101
Ex03PrimaryGenerator
*
fPrimaryGenerator
;
///< Primary generator
102
TGeoUniformMagField*
fMagField
;
///< Magnetic field
103
Bool_t
fOldGeometry
;
///< Option for geometry definition
104
Bool_t
fIsControls
;
///< Option to activate special controls
105
Bool_t
fIsMaster
;
///< If is on master thread
106
107
ClassDef(
Ex03bMCApplication
, 1)
// Interface to MonteCarlo application
108
};
109
110
// Define typedef so that we can use the E03 macros for all examples variants
111
typedef
Ex03bMCApplication
Ex03MCApplication
;
112
113
// inline functions
114
115
/// Set the event modulus number to be printed
116
/// \param value The new event modulus number value
117
inline
void
Ex03bMCApplication::SetPrintModulo
(Int_t value)
118
{
119
fPrintModulo
= value;
120
}
121
122
/// Set verbosity
123
/// \param verboseLevel The new verbose level value
124
inline
void
Ex03bMCApplication::SetVerboseLevel
(Int_t verboseLevel)
125
{
126
fVerbose
.SetLevel(verboseLevel);
127
}
128
129
// Set magnetic field
130
// \param bz The new field value in z
131
inline
void
Ex03bMCApplication::SetField
(Double_t bz)
132
{
133
fMagField
->SetFieldValue(0., 0., bz);
134
}
135
136
/// \return The detector construction
137
inline
Ex03DetectorConstruction
*
138
Ex03bMCApplication::GetDetectorConstruction
()
const
139
{
140
return
fDetConstruction
;
141
}
142
143
/// \return The calorimeter sensitive detector
144
inline
Ex03bCalorimeterSD
*
Ex03bMCApplication::GetCalorimeterSD
()
const
145
{
146
return
fCalorimeterSD
;
147
}
148
149
/// \return The primary generator
150
inline
Ex03PrimaryGenerator
*
Ex03bMCApplication::GetPrimaryGenerator
()
const
151
{
152
return
fPrimaryGenerator
;
153
}
154
155
/// Switch on/off the old geometry definition (via VMC functions)
156
/// \param oldGeometry If true, geometry definition via VMC functions
157
inline
void
Ex03bMCApplication::SetOldGeometry
(Bool_t oldGeometry)
158
{
159
fOldGeometry
= oldGeometry;
160
}
161
162
/// Switch on/off special process controls
163
/// \param isControls If true, special process controls setting is activated
164
inline
void
Ex03bMCApplication::SetControls
(Bool_t isControls)
165
{
166
fIsControls
= isControls;
167
}
168
169
#endif
// EX03_MC_APPLICATION_H
Ex03DetectorConstruction.h
Definition of the Ex03DetectorConstruction class.
Ex03bCalorimeterSD.h
Definition of the Ex03bCalorimeterSD class.
Ex03DetectorConstruction
The detector construction (via TGeo ).
Definition
Ex03DetectorConstruction.h:35
Ex03MCApplication
Implementation of the TVirtualMCApplication.
Definition
Ex03MCApplication.h:40
Ex03MCStack
Implementation of the TVirtualMCStack interface.
Definition
Ex03MCStack.h:36
Ex03PrimaryGenerator
The primary generator.
Definition
Ex03PrimaryGenerator.h:34
Ex03bCalorimeterSD
The calorimeter sensitive detector.
Definition
Ex03bCalorimeterSD.h:39
Ex03bMCApplication
Implementation of the TVirtualMCApplication.
Definition
Ex03bMCApplication.h:43
Ex03bMCApplication::BeginPrimary
virtual void BeginPrimary()
Definition
Ex03bMCApplication.cxx:439
Ex03bMCApplication::GetDetectorConstruction
Ex03DetectorConstruction * GetDetectorConstruction() const
Definition
Ex03bMCApplication.h:138
Ex03bMCApplication::GeneratePrimaries
virtual void GeneratePrimaries()
Definition
Ex03bMCApplication.cxx:402
Ex03bMCApplication::SetField
void SetField(Double_t bz)
Definition
Ex03bMCApplication.h:131
Ex03bMCApplication::CloneForWorker
virtual TVirtualMCApplication * CloneForWorker() const
Definition
Ex03bMCApplication.cxx:239
Ex03bMCApplication::PostTrack
virtual void PostTrack()
Definition
Ex03bMCApplication.cxx:501
Ex03bMCApplication::fPrimaryGenerator
Ex03PrimaryGenerator * fPrimaryGenerator
Primary generator.
Definition
Ex03bMCApplication.h:101
Ex03bMCApplication::InitMC
void InitMC(const char *setup)
Definition
Ex03bMCApplication.cxx:175
Ex03bMCApplication::fIsControls
Bool_t fIsControls
Option to activate special controls.
Definition
Ex03bMCApplication.h:104
Ex03bMCApplication::SetVerboseLevel
void SetVerboseLevel(Int_t verboseLevel)
Definition
Ex03bMCApplication.h:124
Ex03bMCApplication::fCalorimeterSD
Ex03bCalorimeterSD * fCalorimeterSD
Calorimeter SD.
Definition
Ex03bMCApplication.h:100
Ex03bMCApplication::Ex03bMCApplication
Ex03bMCApplication()
Definition
Ex03bMCApplication.cxx:120
Ex03bMCApplication::BeginEvent
virtual void BeginEvent()
Definition
Ex03bMCApplication.cxx:415
Ex03bMCApplication::~Ex03bMCApplication
virtual ~Ex03bMCApplication()
Definition
Ex03bMCApplication.cxx:138
Ex03bMCApplication::SetPrintModulo
void SetPrintModulo(Int_t value)
Definition
Ex03bMCApplication.h:117
Ex03bMCApplication::fMagField
TGeoUniformMagField * fMagField
Magnetic field.
Definition
Ex03bMCApplication.h:102
Ex03bMCApplication::InitGeometry
virtual void InitGeometry()
Definition
Ex03bMCApplication.cxx:329
Ex03bMCApplication::fPrintModulo
Int_t fPrintModulo
The event modulus number to be printed.
Definition
Ex03bMCApplication.h:95
Ex03bMCApplication::Ex03bMCApplication
Ex03bMCApplication(const char *name, const char *title)
Definition
Ex03bMCApplication.cxx:44
Ex03bMCApplication::Stepping
virtual void Stepping()
Definition
Ex03bMCApplication.cxx:480
Ex03bMCApplication::fEventNo
Int_t fEventNo
Event counter.
Definition
Ex03bMCApplication.h:96
Ex03bMCApplication::RunMC
void RunMC(Int_t nofEvents)
Definition
Ex03bMCApplication.cxx:214
Ex03bMCApplication::SetControls
void SetControls(Bool_t isConstrols)
Definition
Ex03bMCApplication.h:164
Ex03bMCApplication::AddParticles
virtual void AddParticles()
Definition
Ex03bMCApplication.cxx:343
Ex03bMCApplication::FinishRunOnWorker
virtual void FinishRunOnWorker()
Definition
Ex03bMCApplication.cxx:263
Ex03bMCApplication::FinishPrimary
virtual void FinishPrimary()
Definition
Ex03bMCApplication.cxx:509
Ex03bMCApplication::fIsMaster
Bool_t fIsMaster
If is on master thread.
Definition
Ex03bMCApplication.h:105
Ex03bMCApplication::ConstructGeometry
virtual void ConstructGeometry()
Definition
Ex03bMCApplication.cxx:288
Ex03bMCApplication::fRootManager
TMCRootManager * fRootManager
Root manager.
Definition
Ex03bMCApplication.h:94
Ex03bMCApplication::SetOldGeometry
void SetOldGeometry(Bool_t oldGeometry=kTRUE)
Definition
Ex03bMCApplication.h:157
Ex03bMCApplication::ConstructSensitiveDetectors
virtual void ConstructSensitiveDetectors()
Definition
Ex03bMCApplication.cxx:310
Ex03bMCApplication::AddIons
virtual void AddIons()
Definition
Ex03bMCApplication.cxx:392
Ex03bMCApplication::fDetConstruction
Ex03DetectorConstruction * fDetConstruction
Dector construction.
Definition
Ex03bMCApplication.h:99
Ex03bMCApplication::FinishEvent
virtual void FinishEvent()
Definition
Ex03bMCApplication.cxx:531
Ex03bMCApplication::fOldGeometry
Bool_t fOldGeometry
Option for geometry definition.
Definition
Ex03bMCApplication.h:103
Ex03bMCApplication::FinishRun
void FinishRun()
Definition
Ex03bMCApplication.cxx:226
Ex03bMCApplication::GetCalorimeterSD
Ex03bCalorimeterSD * GetCalorimeterSD() const
Definition
Ex03bMCApplication.h:144
Ex03bMCApplication::GetPrimaryGenerator
Ex03PrimaryGenerator * GetPrimaryGenerator() const
Definition
Ex03bMCApplication.h:150
Ex03bMCApplication::ReadEvent
void ReadEvent(Int_t i)
Definition
Ex03bMCApplication.cxx:273
Ex03bMCApplication::RegisterStack
void RegisterStack() const
Definition
Ex03bMCApplication.cxx:160
Ex03bMCApplication::EndOfEvent
virtual void EndOfEvent()
Definition
Ex03bMCApplication.cxx:521
Ex03bMCApplication::PreTrack
virtual void PreTrack()
Definition
Ex03bMCApplication.cxx:453
Ex03bMCApplication::fVerbose
TMCVerbose fVerbose
VMC verbose helper.
Definition
Ex03bMCApplication.h:97
Ex03bMCApplication::fStack
Ex03MCStack * fStack
VMC stack.
Definition
Ex03bMCApplication.h:98
Ex03bMCApplication::InitOnWorker
virtual void InitOnWorker()
Definition
Ex03bMCApplication.cxx:245
TVirtualMCApplication
Generated on
for VMC Examples by
1.17.0