Geant4
v4-10.4-release
메인 페이지
관련된 페이지
모듈
네임스페이스
클래스
파일들
파일 목록
파일 멤버
모두
클래스
네임스페이스들
파일들
함수
변수
타입정의
열거형 타입
열거형 멤버
Friends
매크로
그룹들
페이지들
source
parameterisations
gflash
include
G4VGFlashSensitiveDetector.hh
이 파일의 문서화 페이지로 가기
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
27
// $Id: G4VGFlashSensitiveDetector.hh 97674 2016-06-07 08:28:08Z gcosmo $
28
//
29
//
30
//---------------------------------------------------------------
31
// GEANT 4 class header file
32
//
33
// G4VGFlashSensitiveDetector
34
//
35
// Class description:
36
//
37
// Abstract base class of the sensitive detector for use with GFlash.
38
// The user's sensitive detector which generates hits must be derived
39
// from this class, and G4VSensitiveDetector.
40
41
//---------------------------------------------------------------
42
#ifndef G4VGFlashSensitiveDetector_h
43
#define G4VGFlashSensitiveDetector_h 1
44
45
#include "
G4Step.hh
"
46
#include "
G4VReadOutGeometry.hh
"
47
#include "
G4TouchableHistory.hh
"
48
#include "
GFlashEnergySpot.hh
"
49
#include "
G4GFlashSpot.hh
"
50
#include "
G4VSensitiveDetector.hh
"
51
52
53
class
G4VGFlashSensitiveDetector
54
{
55
56
public
:
// with description
57
58
G4VGFlashSensitiveDetector
() {}
59
G4VGFlashSensitiveDetector
(
const
G4VGFlashSensitiveDetector
&) {}
60
// Constructors. The user's concrete class must use one of these
61
// constructors by the constructor initializer of the derived class.
62
// The name of the sensitive detector must be the same as for the
63
// corresponding GG4VSensitiveDetector.
64
65
public
:
// without description
66
67
virtual
~G4VGFlashSensitiveDetector
() {}
68
69
G4int
operator==
(
const
G4VGFlashSensitiveDetector
&
right
)
const
70
{
return
this
== &
right
;}
71
G4int
operator!=
(
const
G4VGFlashSensitiveDetector
&
right
)
const
72
{
return
this
!= &
right
;}
73
74
public
:
// without description
75
76
inline
G4bool
Hit
(
G4GFlashSpot
* aSpot)
77
{
78
// This is the public method invoked by GFlashHitMaker for generating
79
// hits. The actual user's implementation for generating hits must be
80
// implemented in GenerateHits() virtual protected method.
81
82
G4bool
result
=
true
;
83
G4VSensitiveDetector
* This
84
=
dynamic_cast<
G4VSensitiveDetector
*
>
(
this
);
85
if
(!This)
86
{
87
G4Exception
(
"G4VGFlashSensitiveDetector::Hit()"
,
88
"InvalidSetup"
,
FatalException
,
89
"Needs also to inherit from G4VSensitiveDetector!"
);
90
return
false
;
91
}
92
if
(This->
isActive
())
93
{
94
G4VReadOutGeometry
* ROgeometry = 0;
95
G4TouchableHistory
* ROhis = 0;
96
97
if
(This) ROgeometry = This->
GetROgeometry
();
98
if
(ROgeometry)
99
{
100
// fake pre-step point for touchable from read-out geometry.
101
G4Step
fakeStep;
102
G4StepPoint
* tmpPoint = fakeStep.
GetPreStepPoint
();
103
tmpPoint->
SetTouchableHandle
(aSpot->
GetTouchableHandle
());
104
tmpPoint->
SetPosition
(aSpot->
GetPosition
());
105
tmpPoint->
SetMomentumDirection
(aSpot->
GetOriginatorTrack
()
106
->
GetPrimaryTrack
()->
GetMomentumDirection
());
107
result = ROgeometry->
CheckROVolume
(&fakeStep, ROhis);
108
}
109
if
(result) result =
ProcessHits
(aSpot, ROhis);
110
}
111
else
112
{
113
result =
false
;
114
}
115
return
result
;
116
}
117
118
protected
:
// with description
119
120
virtual
G4bool
ProcessHits
(
G4GFlashSpot
*aSpot,
121
G4TouchableHistory
*ROhist) = 0;
122
// The user MUST implement this method for generating hit(s) from the
123
// GFlashSpots. Be aware that this method is a protected method and it
124
// will be invoked by Hit() method of the Base class once the Readout
125
// geometry that may be associated to the corresponding
126
// G4VSensitiveDetector was taken into account.
127
};
128
129
#endif
130
G4VSensitiveDetector
Definition:
G4VSensitiveDetector.hh:50
right
Definition:
F04UserTrackInformation.hh:37
G4VSensitiveDetector::isActive
G4bool isActive() const
Definition:
G4VSensitiveDetector.hh:144
G4VSensitiveDetector.hh
G4VReadOutGeometry
Definition:
G4VReadOutGeometry.hh:40
G4VGFlashSensitiveDetector::operator==
G4int operator==(const G4VGFlashSensitiveDetector &right) const
Definition:
G4VGFlashSensitiveDetector.hh:69
G4Step::GetPreStepPoint
G4StepPoint * GetPreStepPoint() const
G4GFlashSpot::GetTouchableHandle
G4TouchableHandle GetTouchableHandle() const
Definition:
G4GFlashSpot.hh:62
G4FastTrack::GetPrimaryTrack
const G4Track * GetPrimaryTrack() const
Definition:
G4FastTrack.hh:208
G4StepPoint
Definition:
G4StepPoint.hh:68
G4StepPoint::SetMomentumDirection
void SetMomentumDirection(const G4ThreeVector &aValue)
G4VGFlashSensitiveDetector::Hit
G4bool Hit(G4GFlashSpot *aSpot)
Definition:
G4VGFlashSensitiveDetector.hh:76
G4GFlashSpot.hh
G4GFlashSpot::GetPosition
G4ThreeVector GetPosition() const
Definition:
G4GFlashSpot.hh:64
G4bool
bool G4bool
Definition:
G4Types.hh:79
G4GFlashSpot
Definition:
G4GFlashSpot.hh:48
G4VSensitiveDetector::GetROgeometry
G4VReadOutGeometry * GetROgeometry() const
Definition:
G4VSensitiveDetector.hh:152
G4TouchableHistory
Definition:
G4TouchableHistory.hh:53
G4Step
Definition:
G4Step.hh:76
result
G4double G4ParticleHPJENDLHEData::G4double result
Definition:
G4ParticleHPJENDLHEData.cc:257
FatalException
Definition:
G4ExceptionSeverity.hh:60
G4VGFlashSensitiveDetector::operator!=
G4int operator!=(const G4VGFlashSensitiveDetector &right) const
Definition:
G4VGFlashSensitiveDetector.hh:71
G4VGFlashSensitiveDetector::G4VGFlashSensitiveDetector
G4VGFlashSensitiveDetector(const G4VGFlashSensitiveDetector &)
Definition:
G4VGFlashSensitiveDetector.hh:59
G4Exception
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition:
G4Exception.hh:65
G4GFlashSpot::GetOriginatorTrack
const G4FastTrack * GetOriginatorTrack() const
Definition:
G4GFlashSpot.hh:60
G4VGFlashSensitiveDetector::G4VGFlashSensitiveDetector
G4VGFlashSensitiveDetector()
Definition:
G4VGFlashSensitiveDetector.hh:58
GFlashEnergySpot.hh
G4int
int G4int
Definition:
G4Types.hh:78
G4VGFlashSensitiveDetector::~G4VGFlashSensitiveDetector
virtual ~G4VGFlashSensitiveDetector()
Definition:
G4VGFlashSensitiveDetector.hh:67
G4VReadOutGeometry::CheckROVolume
virtual G4bool CheckROVolume(G4Step *, G4TouchableHistory *&)
Definition:
G4VReadOutGeometry.cc:110
G4TouchableHistory.hh
G4Step.hh
G4StepPoint::SetPosition
void SetPosition(const G4ThreeVector &aValue)
G4StepPoint::SetTouchableHandle
void SetTouchableHandle(const G4TouchableHandle &apValue)
G4Track::GetMomentumDirection
const G4ThreeVector & GetMomentumDirection() const
G4VGFlashSensitiveDetector
Definition:
G4VGFlashSensitiveDetector.hh:53
G4VGFlashSensitiveDetector::ProcessHits
virtual G4bool ProcessHits(G4GFlashSpot *aSpot, G4TouchableHistory *ROhist)=0
G4VReadOutGeometry.hh
다음에 의해 생성됨 :
1.8.5