Geant4
10.03.p01
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
G4VGFlashSensitiveDetector.hh
Go to the documentation of this file.
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
result
G4double G4ParticleHPJENDLHEData::G4double result
Definition:
G4ParticleHPJENDLHEData.cc:257
G4TouchableHistory.hh
G4GFlashSpot::GetTouchableHandle
G4TouchableHandle GetTouchableHandle() const
Definition:
G4GFlashSpot.hh:62
G4FastTrack::GetPrimaryTrack
const G4Track * GetPrimaryTrack() const
Definition:
G4FastTrack.hh:208
G4StepPoint::SetPosition
void SetPosition(const G4ThreeVector &aValue)
G4StepPoint
Definition:
G4StepPoint.hh:68
G4VSensitiveDetector
Definition:
G4VSensitiveDetector.hh:50
G4VGFlashSensitiveDetector::G4VGFlashSensitiveDetector
G4VGFlashSensitiveDetector()
Definition:
G4VGFlashSensitiveDetector.hh:58
G4VGFlashSensitiveDetector::G4VGFlashSensitiveDetector
G4VGFlashSensitiveDetector(const G4VGFlashSensitiveDetector &)
Definition:
G4VGFlashSensitiveDetector.hh:59
G4VGFlashSensitiveDetector::operator!=
G4int operator!=(const G4VGFlashSensitiveDetector &right) const
Definition:
G4VGFlashSensitiveDetector.hh:71
G4Step.hh
G4VGFlashSensitiveDetector::Hit
G4bool Hit(G4GFlashSpot *aSpot)
Definition:
G4VGFlashSensitiveDetector.hh:76
G4VReadOutGeometry
Definition:
G4VReadOutGeometry.hh:40
G4int
int G4int
Definition:
G4Types.hh:78
G4StepPoint::SetMomentumDirection
void SetMomentumDirection(const G4ThreeVector &aValue)
G4Step::GetPreStepPoint
G4StepPoint * GetPreStepPoint() const
G4GFlashSpot::GetOriginatorTrack
const G4FastTrack * GetOriginatorTrack() const
Definition:
G4GFlashSpot.hh:60
G4VGFlashSensitiveDetector::ProcessHits
virtual G4bool ProcessHits(G4GFlashSpot *aSpot, G4TouchableHistory *ROhist)=0
G4VSensitiveDetector.hh
G4GFlashSpot
Definition:
G4GFlashSpot.hh:48
G4bool
bool G4bool
Definition:
G4Types.hh:79
GFlashEnergySpot.hh
G4GFlashSpot.hh
G4VSensitiveDetector::GetROgeometry
G4VReadOutGeometry * GetROgeometry() const
Definition:
G4VSensitiveDetector.hh:152
G4Step
Definition:
G4Step.hh:76
G4VGFlashSensitiveDetector::operator==
G4int operator==(const G4VGFlashSensitiveDetector &right) const
Definition:
G4VGFlashSensitiveDetector.hh:69
G4Exception
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition:
G4Exception.cc:41
G4VReadOutGeometry::CheckROVolume
virtual G4bool CheckROVolume(G4Step *, G4TouchableHistory *&)
Definition:
G4VReadOutGeometry.cc:110
G4Track::GetMomentumDirection
const G4ThreeVector & GetMomentumDirection() const
G4VGFlashSensitiveDetector
Definition:
G4VGFlashSensitiveDetector.hh:53
G4TouchableHistory
Definition:
G4TouchableHistory.hh:53
G4VGFlashSensitiveDetector::~G4VGFlashSensitiveDetector
virtual ~G4VGFlashSensitiveDetector()
Definition:
G4VGFlashSensitiveDetector.hh:67
G4VReadOutGeometry.hh
FatalException
Definition:
G4ExceptionSeverity.hh:60
G4VSensitiveDetector::isActive
G4bool isActive() const
Definition:
G4VSensitiveDetector.hh:144
G4StepPoint::SetTouchableHandle
void SetTouchableHandle(const G4TouchableHandle &apValue)
G4GFlashSpot::GetPosition
G4ThreeVector GetPosition() const
Definition:
G4GFlashSpot.hh:64
geant4.10.03.p01
source
parameterisations
gflash
include
G4VGFlashSensitiveDetector.hh
Generated on Thu Mar 16 2017 22:37:57 for Geant4 by
1.8.5