VMC Examples
Version 6.8
Toggle main menu visibility
Loading...
Searching...
No Matches
examples
E03
E03a
include
Ex03MCApplication.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 Ex03MCApplication.h
14
/// \brief Definition of the Ex03MCApplication 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 "
Ex03CalorimeterSD.h
"
23
#include "
Ex03DetectorConstruction.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
/// \date 06/03/2003
37
/// \author I. Hrivnacova; IPN, Orsay
38
39
class
Ex03MCApplication
:
public
TVirtualMCApplication
40
{
41
public
:
42
Ex03MCApplication
(
const
char
* name,
const
char
* title);
43
Ex03MCApplication
();
44
virtual
~Ex03MCApplication
();
45
46
// methods
47
void
InitMC
(
const
char
* setup);
48
void
RunMC
(Int_t nofEvents);
49
void
FinishRun
();
50
void
ReadEvent
(Int_t i);
51
52
virtual
TVirtualMCApplication
*
CloneForWorker
()
const
;
53
virtual
void
InitOnWorker
();
54
virtual
void
FinishRunOnWorker
();
55
56
virtual
void
ConstructGeometry
();
57
virtual
void
InitGeometry
();
58
virtual
void
AddParticles
();
59
virtual
void
AddIons
();
60
virtual
void
GeneratePrimaries
();
61
virtual
void
BeginEvent
();
62
virtual
void
BeginPrimary
();
63
virtual
void
PreTrack
();
64
virtual
void
Stepping
();
65
virtual
void
PostTrack
();
66
virtual
void
FinishPrimary
();
67
virtual
void
FinishEvent
();
68
69
// set methods
70
void
SetPrintModulo
(Int_t value);
71
void
SetVerboseLevel
(Int_t verboseLevel);
72
void
SetControls
(Bool_t isConstrols);
73
void
SetField
(Double_t bz);
74
75
// get methods
76
Ex03DetectorConstruction
*
GetDetectorConstruction
()
const
;
77
Ex03CalorimeterSD
*
GetCalorimeterSD
()
const
;
78
Ex03PrimaryGenerator
*
GetPrimaryGenerator
()
const
;
79
80
// method for tests
81
void
SetOldGeometry
(Bool_t oldGeometry = kTRUE);
82
83
private
:
84
// methods
85
Ex03MCApplication
(
const
Ex03MCApplication
& origin);
86
void
RegisterStack
()
const
;
87
88
// data members
89
mutable
TMCRootManager*
fRootManager
;
//!< Root manager
90
Int_t
fPrintModulo
;
///< The event modulus number to be printed
91
Int_t
fEventNo
;
///< Event counter
92
TMCVerbose
fVerbose
;
///< VMC verbose helper
93
Ex03MCStack
*
fStack
;
///< VMC stack
94
Ex03DetectorConstruction
*
fDetConstruction
;
///< Dector construction
95
Ex03CalorimeterSD
*
fCalorimeterSD
;
///< Calorimeter SD
96
Ex03PrimaryGenerator
*
fPrimaryGenerator
;
///< Primary generator
97
TGeoUniformMagField*
fMagField
;
///< Magnetic field
98
Bool_t
fOldGeometry
;
///< Option for geometry definition
99
Bool_t
fIsControls
;
///< Option to activate special controls
100
Bool_t
fIsMaster
;
///< If is on master thread
101
102
ClassDef(
Ex03MCApplication
, 1)
// Interface to MonteCarlo application
103
};
104
105
// inline functions
106
107
/// Set the event modulus number to be printed
108
/// \param value The new event modulus number value
109
inline
void
Ex03MCApplication::SetPrintModulo
(Int_t value)
110
{
111
fPrintModulo
= value;
112
}
113
114
/// Set verbosity
115
/// \param verboseLevel The new verbose level value
116
inline
void
Ex03MCApplication::SetVerboseLevel
(Int_t verboseLevel)
117
{
118
fVerbose
.SetLevel(verboseLevel);
119
}
120
121
// Set magnetic field
122
// \param bz The new field value in z
123
inline
void
Ex03MCApplication::SetField
(Double_t bz)
124
{
125
fMagField
->SetFieldValue(0., 0., bz);
126
}
127
128
/// \return The detector construction
129
inline
Ex03DetectorConstruction
*
130
Ex03MCApplication::GetDetectorConstruction
()
const
131
{
132
return
fDetConstruction
;
133
}
134
135
/// \return The calorimeter sensitive detector
136
inline
Ex03CalorimeterSD
*
Ex03MCApplication::GetCalorimeterSD
()
const
137
{
138
return
fCalorimeterSD
;
139
}
140
141
/// \return The primary generator
142
inline
Ex03PrimaryGenerator
*
Ex03MCApplication::GetPrimaryGenerator
()
const
143
{
144
return
fPrimaryGenerator
;
145
}
146
147
/// Switch on/off the old geometry definition (via VMC functions)
148
/// \param oldGeometry If true, geometry definition via VMC functions
149
inline
void
Ex03MCApplication::SetOldGeometry
(Bool_t oldGeometry)
150
{
151
fOldGeometry
= oldGeometry;
152
}
153
154
/// Switch on/off special process controls
155
/// \param isControls If true, special process controls setting is activated
156
inline
void
Ex03MCApplication::SetControls
(Bool_t isControls)
157
{
158
fIsControls
= isControls;
159
}
160
161
#endif
// EX03_MC_APPLICATION_H
Ex03DetectorConstruction.h
Definition of the Ex03DetectorConstruction class.
Ex03CalorimeterSD.h
Definition of the Ex03CalorimeterSD class.
Ex03CalorimeterSD
The calorimeter sensitive detector.
Definition
Ex03CalorimeterSD.h:36
Ex03DetectorConstruction
The detector construction (via TGeo ).
Definition
Ex03DetectorConstruction.h:35
Ex03MCApplication::fPrintModulo
Int_t fPrintModulo
The event modulus number to be printed.
Definition
Ex03MCApplication.h:90
Ex03MCApplication::~Ex03MCApplication
virtual ~Ex03MCApplication()
Definition
Ex03MCApplication.cxx:138
Ex03MCApplication::SetVerboseLevel
void SetVerboseLevel(Int_t verboseLevel)
Definition
Ex03MCApplication.h:116
Ex03MCApplication::fMagField
TGeoUniformMagField * fMagField
Magnetic field.
Definition
Ex03MCApplication.h:97
Ex03MCApplication::fIsControls
Bool_t fIsControls
Option to activate special controls.
Definition
Ex03MCApplication.h:99
Ex03MCApplication::BeginPrimary
virtual void BeginPrimary()
Definition
Ex03MCApplication.cxx:420
Ex03MCApplication::fVerbose
TMCVerbose fVerbose
VMC verbose helper.
Definition
Ex03MCApplication.h:92
Ex03MCApplication::InitMC
void InitMC(const char *setup)
Definition
Ex03MCApplication.cxx:175
Ex03MCApplication::RunMC
void RunMC(Int_t nofEvents)
Definition
Ex03MCApplication.cxx:214
Ex03MCApplication::SetControls
void SetControls(Bool_t isConstrols)
Definition
Ex03MCApplication.h:156
Ex03MCApplication::fIsMaster
Bool_t fIsMaster
If is on master thread.
Definition
Ex03MCApplication.h:100
Ex03MCApplication::FinishEvent
virtual void FinishEvent()
Definition
Ex03MCApplication.cxx:502
Ex03MCApplication::CloneForWorker
virtual TVirtualMCApplication * CloneForWorker() const
Definition
Ex03MCApplication.cxx:239
Ex03MCApplication::InitOnWorker
virtual void InitOnWorker()
Definition
Ex03MCApplication.cxx:245
Ex03MCApplication::fPrimaryGenerator
Ex03PrimaryGenerator * fPrimaryGenerator
Primary generator.
Definition
Ex03MCApplication.h:96
Ex03MCApplication::GetCalorimeterSD
Ex03CalorimeterSD * GetCalorimeterSD() const
Definition
Ex03MCApplication.h:136
Ex03MCApplication::SetOldGeometry
void SetOldGeometry(Bool_t oldGeometry=kTRUE)
Definition
Ex03MCApplication.h:149
Ex03MCApplication::Ex03MCApplication
Ex03MCApplication()
Definition
Ex03MCApplication.cxx:120
Ex03MCApplication::FinishRun
void FinishRun()
Definition
Ex03MCApplication.cxx:226
Ex03MCApplication::GetDetectorConstruction
Ex03DetectorConstruction * GetDetectorConstruction() const
Definition
Ex03MCApplication.h:130
Ex03MCApplication::PreTrack
virtual void PreTrack()
Definition
Ex03MCApplication.cxx:434
Ex03MCApplication::InitGeometry
virtual void InitGeometry()
Definition
Ex03MCApplication.cxx:310
Ex03MCApplication::Stepping
virtual void Stepping()
Definition
Ex03MCApplication.cxx:461
Ex03MCApplication::SetField
void SetField(Double_t bz)
Definition
Ex03MCApplication.h:123
Ex03MCApplication::RegisterStack
void RegisterStack() const
Definition
Ex03MCApplication.cxx:160
Ex03MCApplication::FinishPrimary
virtual void FinishPrimary()
Definition
Ex03MCApplication.cxx:490
Ex03MCApplication::fStack
Ex03MCStack * fStack
VMC stack.
Definition
Ex03MCApplication.h:93
Ex03MCApplication::fCalorimeterSD
Ex03CalorimeterSD * fCalorimeterSD
Calorimeter SD.
Definition
Ex03MCApplication.h:95
Ex03MCApplication::AddParticles
virtual void AddParticles()
Definition
Ex03MCApplication.cxx:324
Ex03MCApplication::Ex03MCApplication
Ex03MCApplication(const char *name, const char *title)
Definition
Ex03MCApplication.cxx:44
Ex03MCApplication::FinishRunOnWorker
virtual void FinishRunOnWorker()
Definition
Ex03MCApplication.cxx:263
Ex03MCApplication::fDetConstruction
Ex03DetectorConstruction * fDetConstruction
Dector construction.
Definition
Ex03MCApplication.h:94
Ex03MCApplication::AddIons
virtual void AddIons()
Definition
Ex03MCApplication.cxx:373
Ex03MCApplication::fOldGeometry
Bool_t fOldGeometry
Option for geometry definition.
Definition
Ex03MCApplication.h:98
Ex03MCApplication::fEventNo
Int_t fEventNo
Event counter.
Definition
Ex03MCApplication.h:91
Ex03MCApplication::ReadEvent
void ReadEvent(Int_t i)
Definition
Ex03MCApplication.cxx:273
Ex03MCApplication::SetPrintModulo
void SetPrintModulo(Int_t value)
Definition
Ex03MCApplication.h:109
Ex03MCApplication::GeneratePrimaries
virtual void GeneratePrimaries()
Definition
Ex03MCApplication.cxx:383
Ex03MCApplication::BeginEvent
virtual void BeginEvent()
Definition
Ex03MCApplication.cxx:396
Ex03MCApplication::PostTrack
virtual void PostTrack()
Definition
Ex03MCApplication.cxx:482
Ex03MCApplication::GetPrimaryGenerator
Ex03PrimaryGenerator * GetPrimaryGenerator() const
Definition
Ex03MCApplication.h:142
Ex03MCApplication::ConstructGeometry
virtual void ConstructGeometry()
Definition
Ex03MCApplication.cxx:288
Ex03MCApplication::fRootManager
TMCRootManager * fRootManager
Root manager.
Definition
Ex03MCApplication.h:89
Ex03MCStack
Implementation of the TVirtualMCStack interface.
Definition
Ex03MCStack.h:36
Ex03PrimaryGenerator
The primary generator.
Definition
Ex03PrimaryGenerator.h:34
Ex03bMCApplication::GetDetectorConstruction
Ex03DetectorConstruction * GetDetectorConstruction() const
Definition
Ex03bMCApplication.h:138
Ex03bMCApplication::SetField
void SetField(Double_t bz)
Definition
Ex03bMCApplication.h:131
Ex03bMCApplication::SetVerboseLevel
void SetVerboseLevel(Int_t verboseLevel)
Definition
Ex03bMCApplication.h:124
Ex03bMCApplication::SetPrintModulo
void SetPrintModulo(Int_t value)
Definition
Ex03bMCApplication.h:117
Ex03bMCApplication::SetControls
void SetControls(Bool_t isConstrols)
Definition
Ex03bMCApplication.h:164
Ex03bMCApplication::SetOldGeometry
void SetOldGeometry(Bool_t oldGeometry=kTRUE)
Definition
Ex03bMCApplication.h:157
Ex03bMCApplication::GetCalorimeterSD
Ex03bCalorimeterSD * GetCalorimeterSD() const
Definition
Ex03bMCApplication.h:144
Ex03bMCApplication::GetPrimaryGenerator
Ex03PrimaryGenerator * GetPrimaryGenerator() const
Definition
Ex03bMCApplication.h:150
TVirtualMCApplication
Generated on
for VMC Examples by
1.17.0