VMC Examples
Version 6.8
Toggle main menu visibility
Loading...
Searching...
No Matches
examples
E06
include
Ex06MCApplication.h
Go to the documentation of this file.
1
#ifndef EX06_MC_APPLICATION_H
2
#define EX06_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 Ex06MCApplication.h
14
/// \brief Definition of the Ex06MCApplication class
15
///
16
/// Geant4 ExampleN06 adapted to Virtual Monte Carlo \n
17
///
18
/// \author I. Hrivnacova; IPN, Orsay
19
20
#include <TLorentzVector.h>
21
#include <TMCVerbose.h>
22
#include <TVirtualMCApplication.h>
23
24
class
TCanvas;
25
class
TVirtualMagField
;
26
27
class
Ex03MCStack
;
28
class
Ex06DetectorConstruction
;
29
class
Ex06PrimaryGenerator
;
30
31
/// \ingroup E06
32
/// \brief Implementation of the TVirtualMCApplication
33
///
34
/// \date 16/05/2005
35
/// \author I. Hrivnacova; IPN, Orsay
36
37
class
Ex06MCApplication
:
public
TVirtualMCApplication
38
{
39
public
:
40
Ex06MCApplication
(
const
char
* name,
const
char
* title);
41
Ex06MCApplication
();
42
virtual
~Ex06MCApplication
();
43
44
// static access method
45
static
Ex06MCApplication
*
Instance
();
46
47
// methods
48
void
InitMC
(
const
char
* setup);
49
void
RunMC
(Int_t nofEvents);
50
51
virtual
TVirtualMCApplication
*
CloneForWorker
()
const
;
52
virtual
void
InitOnWorker
();
53
virtual
void
Merge
(
TVirtualMCApplication
* localMCApplication);
54
55
virtual
void
ConstructGeometry
();
56
virtual
void
ConstructOpGeometry
();
57
virtual
void
InitGeometry
();
58
virtual
void
GeneratePrimaries
();
59
virtual
void
BeginEvent
();
60
virtual
void
BeginPrimary
();
61
virtual
void
PreTrack
();
62
virtual
void
Stepping
();
63
virtual
void
PostTrack
();
64
virtual
void
FinishPrimary
();
65
virtual
void
FinishEvent
();
66
void
FinishRun
();
67
68
// set methods
69
void
SetVerboseLevel
(Int_t verboseLevel);
70
71
// get methods
72
Ex06PrimaryGenerator
*
GetPrimaryGenerator
()
const
;
73
74
// method for tests
75
void
SetOldGeometry
(Bool_t oldGeometry = kTRUE);
76
void
SetTestStackPopper
(Bool_t option = kFALSE);
77
78
private
:
79
// methods
80
Ex06MCApplication
(
const
Ex06MCApplication
& origin);
81
82
// stack popper test
83
void
GenerateFeedback
(Int_t nofPhotons, TLorentzVector momentum);
84
85
// data members
86
Int_t
fGammaCounter
;
///< Optical photons counter
87
Int_t
fFeedbackCounter
;
///< Feedback photons counter
88
Int_t
fRunGammaCounter
;
///< Optical photons counter2
89
Int_t
fRunFeedbackCounter
;
///< Feedback photons counter2
90
TMCVerbose
fVerbose
;
///< VMC verbose helper
91
Ex03MCStack
*
fStack
;
///< VMC stack
92
TVirtualMagField
*
fMagField
;
///< The magnetic field
93
Ex06DetectorConstruction
*
fDetConstruction
;
///< Dector construction
94
Ex06PrimaryGenerator
*
fPrimaryGenerator
;
///< Primary generator
95
Bool_t
fOldGeometry
;
///< Option for geometry definition
96
Bool_t
fTestStackPopper
;
///< Option for stack popper test
97
Bool_t
fIsMaster
;
///< If is on master thread
98
99
ClassDef(
Ex06MCApplication
, 1)
// Interface to MonteCarlo application
100
};
101
102
// inline functions
103
104
/// \return The singleton instance
105
inline
Ex06MCApplication
*
Ex06MCApplication::Instance
()
106
{
107
return
(
Ex06MCApplication
*)(TVirtualMCApplication::Instance());
108
}
109
110
/// Set verbosity
111
/// \param verboseLevel The new verbose level value
112
inline
void
Ex06MCApplication::SetVerboseLevel
(Int_t verboseLevel)
113
{
114
fVerbose
.SetLevel(verboseLevel);
115
}
116
117
/// \return The primary generator
118
inline
Ex06PrimaryGenerator
*
Ex06MCApplication::GetPrimaryGenerator
()
const
119
{
120
return
fPrimaryGenerator
;
121
}
122
123
/// Switch on/off the old geometry definition (via VMC functions)
124
/// \param oldGeometry If true, geometry definition via VMC functions
125
inline
void
Ex06MCApplication::SetOldGeometry
(Bool_t oldGeometry)
126
{
127
fOldGeometry
= oldGeometry;
128
}
129
130
/// Switch on/off the stack popper test
131
/// \param option stack popper test activation option
132
inline
void
Ex06MCApplication::SetTestStackPopper
(Bool_t option)
133
{
134
fTestStackPopper
= option;
135
}
136
137
#endif
// EX06_MC_APPLICATION_H
Ex03MCStack
Implementation of the TVirtualMCStack interface.
Definition
Ex03MCStack.h:36
Ex06DetectorConstruction
The detector construction (via TGeo ).
Definition
Ex06DetectorConstruction.h:35
Ex06MCApplication::fTestStackPopper
Bool_t fTestStackPopper
Option for stack popper test.
Definition
Ex06MCApplication.h:96
Ex06MCApplication::Instance
static Ex06MCApplication * Instance()
Definition
Ex06MCApplication.h:105
Ex06MCApplication::RunMC
void RunMC(Int_t nofEvents)
Definition
Ex06MCApplication.cxx:167
Ex06MCApplication::GeneratePrimaries
virtual void GeneratePrimaries()
Definition
Ex06MCApplication.cxx:256
Ex06MCApplication::Ex06MCApplication
Ex06MCApplication(const char *name, const char *title)
Definition
Ex06MCApplication.cxx:40
Ex06MCApplication::PreTrack
virtual void PreTrack()
Definition
Ex06MCApplication.cxx:285
Ex06MCApplication::fFeedbackCounter
Int_t fFeedbackCounter
Feedback photons counter.
Definition
Ex06MCApplication.h:87
Ex06MCApplication::fMagField
TVirtualMagField * fMagField
The magnetic field.
Definition
Ex06MCApplication.h:92
Ex06MCApplication::GenerateFeedback
void GenerateFeedback(Int_t nofPhotons, TLorentzVector momentum)
Definition
Ex06MCApplication.cxx:352
Ex06MCApplication::fRunGammaCounter
Int_t fRunGammaCounter
Optical photons counter2.
Definition
Ex06MCApplication.h:88
Ex06MCApplication::fRunFeedbackCounter
Int_t fRunFeedbackCounter
Feedback photons counter2.
Definition
Ex06MCApplication.h:89
Ex06MCApplication::BeginPrimary
virtual void BeginPrimary()
Definition
Ex06MCApplication.cxx:277
Ex06MCApplication::Stepping
virtual void Stepping()
Definition
Ex06MCApplication.cxx:302
Ex06MCApplication::fIsMaster
Bool_t fIsMaster
If is on master thread.
Definition
Ex06MCApplication.h:97
Ex06MCApplication::~Ex06MCApplication
virtual ~Ex06MCApplication()
Definition
Ex06MCApplication.cxx:123
Ex06MCApplication::InitMC
void InitMC(const char *setup)
Definition
Ex06MCApplication.cxx:143
Ex06MCApplication::fGammaCounter
Int_t fGammaCounter
Optical photons counter.
Definition
Ex06MCApplication.h:86
Ex06MCApplication::fDetConstruction
Ex06DetectorConstruction * fDetConstruction
Dector construction.
Definition
Ex06MCApplication.h:93
Ex06MCApplication::PostTrack
virtual void PostTrack()
Definition
Ex06MCApplication.cxx:378
Ex06MCApplication::InitGeometry
virtual void InitGeometry()
Definition
Ex06MCApplication.cxx:248
Ex06MCApplication::fOldGeometry
Bool_t fOldGeometry
Option for geometry definition.
Definition
Ex06MCApplication.h:95
Ex06MCApplication::Ex06MCApplication
Ex06MCApplication()
Definition
Ex06MCApplication.cxx:104
Ex06MCApplication::BeginEvent
virtual void BeginEvent()
Definition
Ex06MCApplication.cxx:266
Ex06MCApplication::SetOldGeometry
void SetOldGeometry(Bool_t oldGeometry=kTRUE)
Definition
Ex06MCApplication.h:125
Ex06MCApplication::ConstructGeometry
virtual void ConstructGeometry()
Definition
Ex06MCApplication.cxx:208
Ex06MCApplication::CloneForWorker
virtual TVirtualMCApplication * CloneForWorker() const
Definition
Ex06MCApplication.cxx:180
Ex06MCApplication::fStack
Ex03MCStack * fStack
VMC stack.
Definition
Ex06MCApplication.h:91
Ex06MCApplication::InitOnWorker
virtual void InitOnWorker()
Definition
Ex06MCApplication.cxx:186
Ex06MCApplication::FinishRun
void FinishRun()
Definition
Ex06MCApplication.cxx:430
Ex06MCApplication::SetVerboseLevel
void SetVerboseLevel(Int_t verboseLevel)
Definition
Ex06MCApplication.h:112
Ex06MCApplication::fPrimaryGenerator
Ex06PrimaryGenerator * fPrimaryGenerator
Primary generator.
Definition
Ex06MCApplication.h:94
Ex06MCApplication::fVerbose
TMCVerbose fVerbose
VMC verbose helper.
Definition
Ex06MCApplication.h:90
Ex06MCApplication::SetTestStackPopper
void SetTestStackPopper(Bool_t option=kFALSE)
Definition
Ex06MCApplication.h:132
Ex06MCApplication::FinishEvent
virtual void FinishEvent()
Definition
Ex06MCApplication.cxx:394
Ex06MCApplication::FinishPrimary
virtual void FinishPrimary()
Definition
Ex06MCApplication.cxx:386
Ex06MCApplication::Merge
virtual void Merge(TVirtualMCApplication *localMCApplication)
Definition
Ex06MCApplication.cxx:196
Ex06MCApplication::GetPrimaryGenerator
Ex06PrimaryGenerator * GetPrimaryGenerator() const
Definition
Ex06MCApplication.h:118
Ex06MCApplication::ConstructOpGeometry
virtual void ConstructOpGeometry()
Definition
Ex06MCApplication.cxx:238
Ex06PrimaryGenerator
The primary generator.
Definition
Ex06PrimaryGenerator.h:34
TVirtualMCApplication
TVirtualMagField
Generated on
for VMC Examples by
1.17.0