VMC Examples
Version 6.8
Toggle main menu visibility
Loading...
Searching...
No Matches
examples
E03
E03d
include
Ex03dMCApplication.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 Ex03dMCApplication.h
14
/// \brief Definition of the Ex03dMCApplication class
15
///
16
/// Geant4 ExampleN03 adapted to Virtual Monte Carlo
17
///
18
/// \author Radoslaw Karabowicz; GSI
19
20
#include <TVirtualMCApplication.h>
21
22
#include "
Ex03DetectorConstruction.h
"
23
#include "
Ex03dCalorimeterSD.h
"
24
#include "TMCRootManager.h"
25
26
#include <TGeoUniformMagField.h>
27
#include <TMCVerbose.h>
28
29
class
Ex03dMCStack
;
30
class
Ex03PrimaryGenerator
;
31
32
/// \ingroup E03
33
/// \brief Implementation of the TVirtualMCApplication
34
///
35
/// A variant of the Ex03MCApplication class
36
/// updated for RNTuple output.
37
///
38
39
/// \date 07/07/2026
40
/// \author Radoslaw Karabowicz, GSI
41
42
class
Ex03dMCApplication
:
public
TVirtualMCApplication
43
{
44
public
:
45
Ex03dMCApplication
(
const
char
* name,
const
char
* title);
46
Ex03dMCApplication
();
47
virtual
~Ex03dMCApplication
();
48
49
// methods
50
void
InitMC
(
const
char
* setup,
51
TMCRootManager::StorageMode storageMode = TMCRootManager::kRNTuple);
52
void
RunMC
(Int_t nofEvents);
53
void
FinishRun
();
54
void
ReadEvent
(Int_t i);
55
56
virtual
TVirtualMCApplication
*
CloneForWorker
()
const
;
57
virtual
void
InitOnWorker
();
58
virtual
void
FinishRunOnWorker
();
59
60
virtual
void
ConstructGeometry
();
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
FinishEvent
();
72
73
// set methods
74
void
SetPrintModulo
(Int_t value);
75
void
SetVerboseLevel
(Int_t verboseLevel);
76
void
SetControls
(Bool_t isConstrols);
77
void
SetField
(Double_t bz);
78
79
// get methods
80
Ex03DetectorConstruction
*
GetDetectorConstruction
()
const
;
81
Ex03dCalorimeterSD
*
GetCalorimeterSD
()
const
;
82
Ex03PrimaryGenerator
*
GetPrimaryGenerator
()
const
;
83
84
// method for tests
85
void
SetOldGeometry
(Bool_t oldGeometry = kTRUE);
86
87
private
:
88
// methods
89
Ex03dMCApplication
(
const
Ex03dMCApplication
& origin);
90
void
RegisterStack
();
91
92
// data members
93
mutable
TMCRootManager*
fRootManager
;
//!< Root manager
94
Int_t
fPrintModulo
;
///< The event modulus number to be printed
95
Int_t
fEventNo
;
///< Event counter
96
TMCVerbose
fVerbose
;
///< VMC verbose helper
97
Ex03dMCStack
*
fStack
;
///< VMC stack
98
Ex03DetectorConstruction
*
fDetConstruction
;
///< Dector construction
99
Ex03dCalorimeterSD
*
fCalorimeterSD
;
///< Calorimeter SD
100
Ex03PrimaryGenerator
*
fPrimaryGenerator
;
///< Primary generator
101
TGeoUniformMagField*
fMagField
;
///< Magnetic field
102
Bool_t
fOldGeometry
;
///< Option for geometry definition
103
Bool_t
fIsControls
;
///< Option to activate special controls
104
Bool_t
fIsMaster
;
///< If is on master thread
105
106
TMCRootManager::StorageMode
fStorageMode
{ TMCRootManager::kTTree };
107
std::shared_ptr<RNTParaWriter>
fParallelRNTupleWriter
;
108
109
ClassDef(
Ex03dMCApplication
, 1)
// Interface to MonteCarlo application
110
};
111
112
// inline functions
113
114
/// Set the event modulus number to be printed
115
/// \param value The new event modulus number value
116
inline
void
Ex03dMCApplication::SetPrintModulo
(Int_t value)
117
{
118
fPrintModulo
= value;
119
}
120
121
/// Set verbosity
122
/// \param verboseLevel The new verbose level value
123
inline
void
Ex03dMCApplication::SetVerboseLevel
(Int_t verboseLevel)
124
{
125
fVerbose
.SetLevel(verboseLevel);
126
}
127
128
// Set magnetic field
129
// \param bz The new field value in z
130
inline
void
Ex03dMCApplication::SetField
(Double_t bz)
131
{
132
fMagField
->SetFieldValue(0., 0., bz);
133
}
134
135
/// \return The detector construction
136
inline
Ex03DetectorConstruction
*
137
Ex03dMCApplication::GetDetectorConstruction
()
const
138
{
139
return
fDetConstruction
;
140
}
141
142
/// \return The calorimeter sensitive detector
143
inline
Ex03dCalorimeterSD
*
Ex03dMCApplication::GetCalorimeterSD
()
const
144
{
145
return
fCalorimeterSD
;
146
}
147
148
/// \return The primary generator
149
inline
Ex03PrimaryGenerator
*
Ex03dMCApplication::GetPrimaryGenerator
()
const
150
{
151
return
fPrimaryGenerator
;
152
}
153
154
/// Switch on/off the old geometry definition (via VMC functions)
155
/// \param oldGeometry If true, geometry definition via VMC functions
156
inline
void
Ex03dMCApplication::SetOldGeometry
(Bool_t oldGeometry)
157
{
158
fOldGeometry
= oldGeometry;
159
}
160
161
/// Switch on/off special process controls
162
/// \param isControls If true, special process controls setting is activated
163
inline
void
Ex03dMCApplication::SetControls
(Bool_t isControls)
164
{
165
fIsControls
= isControls;
166
}
167
168
#endif
// EX03_MC_APPLICATION_H
Ex03DetectorConstruction.h
Definition of the Ex03DetectorConstruction class.
Ex03dCalorimeterSD.h
Definition of the Ex03dCalorimeterSD class.
Ex03DetectorConstruction
The detector construction (via TGeo ).
Definition
Ex03DetectorConstruction.h:35
Ex03PrimaryGenerator
The primary generator.
Definition
Ex03PrimaryGenerator.h:34
Ex03dCalorimeterSD
The calorimeter sensitive detector.
Definition
Ex03dCalorimeterSD.h:40
Ex03dMCApplication::InitOnWorker
virtual void InitOnWorker()
Definition
Ex03dMCApplication.cxx:268
Ex03dMCApplication::BeginEvent
virtual void BeginEvent()
Definition
Ex03dMCApplication.cxx:425
Ex03dMCApplication::fRootManager
TMCRootManager * fRootManager
Root manager.
Definition
Ex03dMCApplication.h:93
Ex03dMCApplication::GeneratePrimaries
virtual void GeneratePrimaries()
Definition
Ex03dMCApplication.cxx:412
Ex03dMCApplication::fDetConstruction
Ex03DetectorConstruction * fDetConstruction
Dector construction.
Definition
Ex03dMCApplication.h:98
Ex03dMCApplication::RunMC
void RunMC(Int_t nofEvents)
Definition
Ex03dMCApplication.cxx:237
Ex03dMCApplication::GetDetectorConstruction
Ex03DetectorConstruction * GetDetectorConstruction() const
Definition
Ex03dMCApplication.h:137
Ex03dMCApplication::CloneForWorker
virtual TVirtualMCApplication * CloneForWorker() const
Definition
Ex03dMCApplication.cxx:262
Ex03dMCApplication::fMagField
TGeoUniformMagField * fMagField
Magnetic field.
Definition
Ex03dMCApplication.h:101
Ex03dMCApplication::fEventNo
Int_t fEventNo
Event counter.
Definition
Ex03dMCApplication.h:95
Ex03dMCApplication::Ex03dMCApplication
Ex03dMCApplication()
Definition
Ex03dMCApplication.cxx:122
Ex03dMCApplication::fParallelRNTupleWriter
std::shared_ptr< RNTParaWriter > fParallelRNTupleWriter
Definition
Ex03dMCApplication.h:107
Ex03dMCApplication::ConstructGeometry
virtual void ConstructGeometry()
Definition
Ex03dMCApplication.cxx:318
Ex03dMCApplication::PostTrack
virtual void PostTrack()
Definition
Ex03dMCApplication.cxx:511
Ex03dMCApplication::ReadEvent
void ReadEvent(Int_t i)
Definition
Ex03dMCApplication.cxx:304
Ex03dMCApplication::Ex03dMCApplication
Ex03dMCApplication(const char *name, const char *title)
Definition
Ex03dMCApplication.cxx:44
Ex03dMCApplication::RegisterStack
void RegisterStack()
Definition
Ex03dMCApplication.cxx:158
Ex03dMCApplication::InitGeometry
virtual void InitGeometry()
Definition
Ex03dMCApplication.cxx:340
Ex03dMCApplication::fCalorimeterSD
Ex03dCalorimeterSD * fCalorimeterSD
Calorimeter SD.
Definition
Ex03dMCApplication.h:99
Ex03dMCApplication::FinishEvent
virtual void FinishEvent()
Definition
Ex03dMCApplication.cxx:531
Ex03dMCApplication::~Ex03dMCApplication
virtual ~Ex03dMCApplication()
Definition
Ex03dMCApplication.cxx:140
Ex03dMCApplication::fIsControls
Bool_t fIsControls
Option to activate special controls.
Definition
Ex03dMCApplication.h:103
Ex03dMCApplication::GetCalorimeterSD
Ex03dCalorimeterSD * GetCalorimeterSD() const
Definition
Ex03dMCApplication.h:143
Ex03dMCApplication::fStorageMode
TMCRootManager::StorageMode fStorageMode
Definition
Ex03dMCApplication.h:106
Ex03dMCApplication::BeginPrimary
virtual void BeginPrimary()
Definition
Ex03dMCApplication.cxx:449
Ex03dMCApplication::fPrimaryGenerator
Ex03PrimaryGenerator * fPrimaryGenerator
Primary generator.
Definition
Ex03dMCApplication.h:100
Ex03dMCApplication::SetOldGeometry
void SetOldGeometry(Bool_t oldGeometry=kTRUE)
Definition
Ex03dMCApplication.h:156
Ex03dMCApplication::SetControls
void SetControls(Bool_t isConstrols)
Definition
Ex03dMCApplication.h:163
Ex03dMCApplication::SetField
void SetField(Double_t bz)
Definition
Ex03dMCApplication.h:130
Ex03dMCApplication::fOldGeometry
Bool_t fOldGeometry
Option for geometry definition.
Definition
Ex03dMCApplication.h:102
Ex03dMCApplication::AddParticles
virtual void AddParticles()
Definition
Ex03dMCApplication.cxx:353
Ex03dMCApplication::fStack
Ex03dMCStack * fStack
VMC stack.
Definition
Ex03dMCApplication.h:97
Ex03dMCApplication::GetPrimaryGenerator
Ex03PrimaryGenerator * GetPrimaryGenerator() const
Definition
Ex03dMCApplication.h:149
Ex03dMCApplication::InitMC
void InitMC(const char *setup, TMCRootManager::StorageMode storageMode=TMCRootManager::kRNTuple)
Definition
Ex03dMCApplication.cxx:173
Ex03dMCApplication::Stepping
virtual void Stepping()
Definition
Ex03dMCApplication.cxx:490
Ex03dMCApplication::FinishPrimary
virtual void FinishPrimary()
Definition
Ex03dMCApplication.cxx:519
Ex03dMCApplication::SetVerboseLevel
void SetVerboseLevel(Int_t verboseLevel)
Definition
Ex03dMCApplication.h:123
Ex03dMCApplication::FinishRun
void FinishRun()
Definition
Ex03dMCApplication.cxx:249
Ex03dMCApplication::fVerbose
TMCVerbose fVerbose
VMC verbose helper.
Definition
Ex03dMCApplication.h:96
Ex03dMCApplication::FinishRunOnWorker
virtual void FinishRunOnWorker()
Definition
Ex03dMCApplication.cxx:294
Ex03dMCApplication::AddIons
virtual void AddIons()
Definition
Ex03dMCApplication.cxx:402
Ex03dMCApplication::fIsMaster
Bool_t fIsMaster
If is on master thread.
Definition
Ex03dMCApplication.h:104
Ex03dMCApplication::PreTrack
virtual void PreTrack()
Definition
Ex03dMCApplication.cxx:463
Ex03dMCApplication::fPrintModulo
Int_t fPrintModulo
The event modulus number to be printed.
Definition
Ex03dMCApplication.h:94
Ex03dMCApplication::SetPrintModulo
void SetPrintModulo(Int_t value)
Definition
Ex03dMCApplication.h:116
Ex03dMCStack
Implementation of the TVirtualMCStack interface.
Definition
Ex03dMCStack.h:38
TVirtualMCApplication
Generated on
for VMC Examples by
1.17.0