EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
EIC Software
Deprecated List
Modules
Namespaces
Classes
Files
File List
acts
BeastMagneticField
delphes_EIC
Doxygen_Assist
east
blob
main
Components
ATHENA
Base
include
eASTDetectorComponentGDML.hh
eASTDetectorComponentMessenger.hh
eASTRegionInformation.hh
eASTVDetectorComponent.hh
src
Beampipe
ECCE
Core
G4_Patches
PhysicsList
PrimGenInterface
Solenoid
eic-smear
EicRoot
eicsmear-jetexample
eicsmeardetectors
EicToyModel
estarlight
Fun4All-lmon
fun4all_coresoftware
fun4all_eic_qa
fun4all_eic_tutorials
fun4all_eicdetectors
fun4all_eicmacros
fun4all_g4jleic
fun4all_GenFit
fun4all_macros
fun4all_tutorials
g4exampledetector
g4lblvtx
online_distribution
PEPSI
doxygen_mainpage.h
File Members
External Links
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
eASTVDetectorComponent.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file eASTVDetectorComponent.hh
1
// ********************************************************************
2
//
3
// eASTVDetectorComponent.hh
4
// Header file of the abstract base class of eAST detector component
5
//
6
// History
7
// May 8th, 2021 : first implementation
8
//
9
// ********************************************************************
10
11
#ifndef eASTVDetectorComponent_H
12
#define eASTVDetectorComponent_H 1
13
14
class
G4VPhysicalVolume;
15
class
G4LogicalVolume;
16
class
G4Region;
17
class
eASTDetectorComponentMessenger
;
18
class
eASTUserActionDispatcher
;
19
20
class
G4UserRunAction;
21
class
G4UserEventAction;
22
class
G4UserStackingAction;
23
class
G4UserTrackingAction;
24
class
G4UserSteppingAction;
25
26
#include "globals.hh"
27
#include "G4ThreeVector.hh"
28
#include "G4RotationMatrix.hh"
29
30
class
eASTVDetectorComponent
31
{
32
public
:
33
eASTVDetectorComponent
(G4String compName, G4int vl = 0);
34
virtual
~eASTVDetectorComponent
();
35
36
public
:
37
// invoked only in the master thread
38
virtual
void
SetUp
() = 0;
39
virtual
void
Construct
(G4VPhysicalVolume*) = 0;
40
virtual
void
ConstructActionForMaster
()
41
{;}
42
43
// invoked in the worker threads (not in master)
44
virtual
void
ConstructSD
()
45
{;}
46
virtual
void
ConstructActions
()
47
{;}
48
49
protected
:
50
// Utility method to locate the component
51
void
Locate
(G4LogicalVolume* compLogVol, G4VPhysicalVolume* worldPhys);
53
G4String
LocateDataFile
(
const
G4String fn )
const
;
54
55
protected
:
56
// Utility methods to register component-specific
57
// user action classes. These methods should be used
58
// in ConstructActions() and ConstructActionForMaster()
59
// methods.
60
void
RegisterUserAction
(G4UserRunAction*);
61
void
RegisterUserAction
(G4UserEventAction*);
62
void
RegisterUserAction
(G4UserStackingAction*);
63
void
RegisterUserAction
(G4UserTrackingAction*);
64
void
RegisterUserAction
(G4UserSteppingAction*);
65
66
protected
:
67
// Utility method to define a material to a logical
68
// volume. The input file is an ASCII file, and
69
// each line of the file should have the name of
70
// a logical volume and its material name.
71
// Material name must be a name that appears in
72
// G4NistManager.
73
void
ReadMaterialFile
(G4String);
74
75
protected
:
76
G4String
componentName
;
77
G4String
commandDir
;
78
G4int
verboseLevel
;
79
G4VPhysicalVolume*
pEnvelopePhys
=
nullptr
;
80
G4Region*
pRegion
=
nullptr
;
81
82
public
:
83
void
SetUpBase
(G4int vl = 0);
84
85
public
:
86
virtual
G4VPhysicalVolume*
GetEnvelope
()
87
{
return
pEnvelopePhys
; }
88
virtual
G4Region*
GetRegion
()
89
{
return
pRegion
; }
90
91
private
:
92
eASTDetectorComponentMessenger
*
baseMessenger
;
93
eASTUserActionDispatcher
*
userActionDispatcher
;
94
95
private
:
96
G4ThreeVector
fPosition
;
97
G4RotationMatrix
fRotation
;
98
99
public
:
100
void
SetLocation
(G4ThreeVector
pos
)
101
{
fPosition
=
pos
; }
102
void
SetRotation
(G4String
ax
,G4double ang)
103
{
104
if
(ax==
"x"
)
fRotation
.rotateX(ang);
105
if
(ax==
"y"
)
fRotation
.rotateY(ang);
106
if
(ax==
"z"
)
fRotation
.rotateZ(ang);
107
}
108
G4ThreeVector
GetLocation
()
109
{
return
fPosition
; }
110
G4RotationMatrix
GetRotation
()
111
{
return
fRotation
; }
112
113
private
:
114
G4bool
CheckRegion
();
115
};
116
117
#endif
118
east
blob
main
Components
Base
include
eASTVDetectorComponent.hh
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:31
using
1.8.2 with
EIC GitHub integration