VMC Examples
Version 6.8
Toggle main menu visibility
Loading...
Searching...
No Matches
examples
TR
include
MCApplication.h
Go to the documentation of this file.
1
#ifndef MC_APPLICATION_H
2
#define MC_APPLICATION_H
3
4
//------------------------------------------------
5
// The Virtual Monte Carlo examples
6
// Copyright (C) 2007 - 2015 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 TR/include/MCApplication.h
14
/// \brief Definition of the MCApplication class
15
///
16
/// Geant4 TestEm10 adapted to Virtual Monte Carlo.
17
///
18
/// \author I. Hrivnacova; IPN, Orsay
19
20
#include <TVirtualMCApplication.h>
21
22
#include <TGeoUniformMagField.h>
23
#include <TMCVerbose.h>
24
25
class
Ex03MCStack
;
26
27
class
TMCRootManager;
28
29
namespace
VMC
30
{
31
namespace
TR
32
{
33
34
class
DetectorConstruction
;
35
class
SensitiveDetector
;
36
class
PrimaryGenerator
;
37
38
/// \ingroup TR
39
/// \brief Implementation of the TVirtualMCApplication
40
///
41
/// \date 18/12/2015
42
/// \author I. Hrivnacova; IPN, Orsay
43
44
class
MCApplication
:
public
TVirtualMCApplication
45
{
46
public
:
47
MCApplication
(
const
char
* name,
const
char
* title);
48
MCApplication
();
49
virtual
~MCApplication
();
50
51
// methods
52
void
InitMC
(
const
char
* setup);
53
void
RunMC
(Int_t nofEvents);
54
void
FinishRun
();
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
GeneratePrimaries
();
63
virtual
void
BeginEvent
();
64
virtual
void
BeginPrimary
();
65
virtual
void
PreTrack
();
66
virtual
void
Stepping
();
67
virtual
void
PostTrack
();
68
virtual
void
FinishPrimary
();
69
virtual
void
FinishEvent
();
70
71
// set methods
72
void
SetPrintModulo
(Int_t value);
73
void
SetVerboseLevel
(Int_t verboseLevel);
74
void
SetControls
(Bool_t isConstrols);
75
void
SetField
(Double_t bz);
76
77
// get methods
78
DetectorConstruction
*
GetDetectorConstruction
()
const
;
79
SensitiveDetector
*
GetSensitiveDetector
()
const
;
80
PrimaryGenerator
*
GetPrimaryGenerator
()
const
;
81
82
// method for tests
83
void
SetOldGeometry
(Bool_t oldGeometry = kTRUE);
84
85
private
:
86
// methods
87
MCApplication
(
const
MCApplication
& origin);
88
void
RegisterStack
()
const
;
89
void
BookHisto
()
const
;
90
91
// data members
92
mutable
TMCRootManager*
fRootManager
;
//!< Root manager
93
Int_t
fPrintModulo
;
///< The event modulus number to be printed
94
Int_t
fEventNo
;
///< Event counter
95
TMCVerbose
fVerbose
;
///< VMC verbose helper
96
Ex03MCStack
*
fStack
;
///< VMC stack
97
DetectorConstruction
*
fDetConstruction
;
///< Dector construction
98
SensitiveDetector
*
fSensitiveDetector
;
///< Absorber SD
99
PrimaryGenerator
*
fPrimaryGenerator
;
///< Primary generator
100
TGeoUniformMagField*
fMagField
;
///< Magnetic field
101
Bool_t
fOldGeometry
;
///< Option for geometry definition
102
Bool_t
fIsControls
;
///< Option to activate special controls
103
Bool_t
fIsMaster
;
///< If is on master thread
104
105
ClassDef(
MCApplication
, 1)
// Interface to MonteCarlo application
106
};
107
108
// inline functions
109
110
/// Set the event modulus number to be printed
111
/// \param value The new event modulus number value
112
inline
void
MCApplication::SetPrintModulo
(Int_t value) {
fPrintModulo
= value; }
113
114
/// Set verbosity
115
/// \param verboseLevel The new verbose level value
116
inline
void
MCApplication::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
MCApplication::SetField
(Double_t bz)
124
{
125
fMagField
->SetFieldValue(0., 0., bz);
126
}
127
128
/// \return The detector construction
129
inline
DetectorConstruction
*
MCApplication::GetDetectorConstruction
()
const
130
{
131
return
fDetConstruction
;
132
}
133
134
/// \return The calorimeter sensitive detector
135
inline
SensitiveDetector
*
MCApplication::GetSensitiveDetector
()
const
136
{
137
return
fSensitiveDetector
;
138
}
139
140
/// \return The primary generator
141
inline
PrimaryGenerator
*
MCApplication::GetPrimaryGenerator
()
const
142
{
143
return
fPrimaryGenerator
;
144
}
145
146
/// Switch on/off the old geometry definition (via VMC functions)
147
/// \param oldGeometry If true, geometry definition via VMC functions
148
inline
void
MCApplication::SetOldGeometry
(Bool_t oldGeometry)
149
{
150
fOldGeometry
= oldGeometry;
151
}
152
153
/// Switch on/off special process controls
154
/// \param isControls If true, special process controls setting is activated
155
inline
void
MCApplication::SetControls
(Bool_t isControls)
156
{
157
fIsControls
= isControls;
158
}
159
160
}
// namespace TR
161
}
// namespace VMC
162
163
#endif
// MC_APPLICATION_H
Ex03MCStack
Implementation of the TVirtualMCStack interface.
Definition
Ex03MCStack.h:36
TVirtualMCApplication
VMC::TR::DetectorConstruction
The detector construction (via TGeo ).
Definition
DetectorConstruction.h:37
VMC::TR::MCApplication::BookHisto
void BookHisto() const
Definition
MCApplication.cxx:172
VMC::TR::MCApplication::InitGeometry
virtual void InitGeometry()
Definition
MCApplication.cxx:314
VMC::TR::MCApplication::GetPrimaryGenerator
PrimaryGenerator * GetPrimaryGenerator() const
Definition
MCApplication.h:141
VMC::TR::MCApplication::FinishPrimary
virtual void FinishPrimary()
Definition
MCApplication.cxx:429
VMC::TR::MCApplication::SetControls
void SetControls(Bool_t isConstrols)
Definition
MCApplication.h:155
VMC::TR::MCApplication::GeneratePrimaries
virtual void GeneratePrimaries()
Definition
MCApplication.cxx:324
VMC::TR::MCApplication::SetOldGeometry
void SetOldGeometry(Bool_t oldGeometry=kTRUE)
Definition
MCApplication.h:148
VMC::TR::MCApplication::fStack
Ex03MCStack * fStack
VMC stack.
Definition
MCApplication.h:96
VMC::TR::MCApplication::ConstructGeometry
virtual void ConstructGeometry()
Definition
MCApplication.cxx:302
VMC::TR::MCApplication::SetPrintModulo
void SetPrintModulo(Int_t value)
Definition
MCApplication.h:112
VMC::TR::MCApplication::~MCApplication
virtual ~MCApplication()
Definition
MCApplication.cxx:139
VMC::TR::MCApplication::MCApplication
MCApplication(const char *name, const char *title)
Definition
MCApplication.cxx:51
VMC::TR::MCApplication::PostTrack
virtual void PostTrack()
Definition
MCApplication.cxx:421
VMC::TR::MCApplication::fOldGeometry
Bool_t fOldGeometry
Option for geometry definition.
Definition
MCApplication.h:101
VMC::TR::MCApplication::fPrintModulo
Int_t fPrintModulo
The event modulus number to be printed.
Definition
MCApplication.h:93
VMC::TR::MCApplication::FinishEvent
virtual void FinishEvent()
Definition
MCApplication.cxx:437
VMC::TR::MCApplication::GetSensitiveDetector
SensitiveDetector * GetSensitiveDetector() const
Definition
MCApplication.h:135
VMC::TR::MCApplication::fIsControls
Bool_t fIsControls
Option to activate special controls.
Definition
MCApplication.h:102
VMC::TR::MCApplication::fIsMaster
Bool_t fIsMaster
If is on master thread.
Definition
MCApplication.h:103
VMC::TR::MCApplication::fSensitiveDetector
SensitiveDetector * fSensitiveDetector
Absorber SD.
Definition
MCApplication.h:98
VMC::TR::MCApplication::fPrimaryGenerator
PrimaryGenerator * fPrimaryGenerator
Primary generator.
Definition
MCApplication.h:99
VMC::TR::MCApplication::fVerbose
TMCVerbose fVerbose
VMC verbose helper.
Definition
MCApplication.h:95
VMC::TR::MCApplication::CloneForWorker
virtual TVirtualMCApplication * CloneForWorker() const
Definition
MCApplication.cxx:268
VMC::TR::MCApplication::FinishRunOnWorker
virtual void FinishRunOnWorker()
Definition
MCApplication.cxx:292
VMC::TR::MCApplication::SetField
void SetField(Double_t bz)
Definition
MCApplication.h:123
VMC::TR::MCApplication::BeginPrimary
virtual void BeginPrimary()
Definition
MCApplication.cxx:357
VMC::TR::MCApplication::RunMC
void RunMC(Int_t nofEvents)
Definition
MCApplication.cxx:229
VMC::TR::MCApplication::Stepping
virtual void Stepping()
Definition
MCApplication.cxx:400
VMC::TR::MCApplication::SetVerboseLevel
void SetVerboseLevel(Int_t verboseLevel)
Definition
MCApplication.h:116
VMC::TR::MCApplication::BeginEvent
virtual void BeginEvent()
Definition
MCApplication.cxx:335
VMC::TR::MCApplication::fMagField
TGeoUniformMagField * fMagField
Magnetic field.
Definition
MCApplication.h:100
VMC::TR::MCApplication::RegisterStack
void RegisterStack() const
Definition
MCApplication.cxx:161
VMC::TR::MCApplication::fRootManager
TMCRootManager * fRootManager
Root manager.
Definition
MCApplication.h:92
VMC::TR::MCApplication::fEventNo
Int_t fEventNo
Event counter.
Definition
MCApplication.h:94
VMC::TR::MCApplication::PreTrack
virtual void PreTrack()
Definition
MCApplication.cxx:365
VMC::TR::MCApplication::FinishRun
void FinishRun()
Definition
MCApplication.cxx:241
VMC::TR::MCApplication::InitOnWorker
virtual void InitOnWorker()
Definition
MCApplication.cxx:274
VMC::TR::MCApplication::GetDetectorConstruction
DetectorConstruction * GetDetectorConstruction() const
Definition
MCApplication.h:129
VMC::TR::MCApplication::InitMC
void InitMC(const char *setup)
Definition
MCApplication.cxx:188
VMC::TR::MCApplication::MCApplication
MCApplication()
Definition
MCApplication.cxx:121
VMC::TR::MCApplication::fDetConstruction
DetectorConstruction * fDetConstruction
Dector construction.
Definition
MCApplication.h:97
VMC::TR::PrimaryGenerator
The primary generator.
Definition
PrimaryGenerator.h:36
VMC::TR::SensitiveDetector
The absorber sensitive detector.
Definition
SensitiveDetector.h:35
VMC::TR
Definition
DetectorConstruction.h:26
VMC
Definition
FastSimulation.h:26
Generated on
for VMC Examples by
1.17.0