Analysis Software
Documentation for
sPHENIX
simulation software
Home page
Related Pages
Modules
Namespaces
Classes
Files
Examples
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
PHG4EtaPhiParameterization.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file PHG4EtaPhiParameterization.h
1
// Tell emacs that this is a C++ source
2
// -*- C++ -*-.
3
#ifndef G4MAIN_PHG4ETAPHIPARAMETERIZATION_H
4
#define G4MAIN_PHG4ETAPHIPARAMETERIZATION_H
5
6
#include <Geant4/G4Types.hh>
// for G4int
7
#include <Geant4/G4VPVParameterisation.hh>
8
9
#include <iostream>
// for cout, ostream
10
#include <vector>
11
12
class
G4Tubs;
13
class
G4VPhysicalVolume
;
14
15
// Parameterization to define rings whose size changes with Z to
16
// correspond to fixed width in eta.
17
18
class
PHG4EtaPhiParameterization
:
public
G4VPVParameterisation
19
{
20
public
:
21
22
PHG4EtaPhiParameterization
(
23
unsigned
int
neta,
// Binning in eta
24
double
minEta,
// "
25
double
maxEta,
// "
26
unsigned
int
nphi
,
27
double
startPhi,
28
double
deltaPhi
,
29
double
radiusIn,
// Radius of inner face of cylinder
30
double
radiusOut,
// Radius of outer face of cylinder
31
double
centerZ
// overall Z of center of rings
32
);
33
34
~PHG4EtaPhiParameterization
()
override
;
35
36
virtual
void
Print
(std::ostream&
os
= std::cout)
const
;
37
void
ComputeTransformation
(
const
G4int copyNo,
38
G4VPhysicalVolume
* physVol)
const override
;
39
40
using
G4VPVParameterisation::ComputeDimensions;
// avoid warning for not implemented ComputeDimension methods
41
void
ComputeDimensions
(G4Tubs& ring,
const
G4int copyNo,
42
const
G4VPhysicalVolume
* physVol)
const override
;
43
44
int
GetIEta
(
int
copyNo)
const
{
return
_ieta
.at(copyNo); }
45
int
GetIPhi
(
int
copyNo)
const
{
return
_iphi
.at(copyNo); }
46
47
private
:
// Dummy declarations to get rid of warnings ...
48
49
// void ComputeDimensions(G4Trd&,const G4int,const G4VPhysicalVolume*) const {}
50
// void ComputeDimensions(G4Trap&,const G4int,const G4VPhysicalVolume*) const {}
51
// void ComputeDimensions(G4Cons&,const G4int,const G4VPhysicalVolume*) const {}
52
// void ComputeDimensions(G4Sphere&,const G4int,const G4VPhysicalVolume*) const {}
53
// void ComputeDimensions(G4Orb&,const G4int,const G4VPhysicalVolume*) const {}
54
// void ComputeDimensions(G4Torus&,const G4int,const G4VPhysicalVolume*) const {}
55
// void ComputeDimensions(G4Para&,const G4int,const G4VPhysicalVolume*) const {}
56
// void ComputeDimensions(G4Hype&,const G4int,const G4VPhysicalVolume*) const {}
57
// void ComputeDimensions(G4Box&,const G4int,const G4VPhysicalVolume*) const {}
58
// void ComputeDimensions(G4Polycone&,const G4int,const G4VPhysicalVolume*) const {}
59
// void ComputeDimensions(G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {}
60
61
private
:
62
63
unsigned
int
_neta
;
64
double
_minEta
;
65
double
_maxEta
;
66
unsigned
int
_nphi
;
67
double
_startPhi
;
68
double
_deltaPhi
;
69
double
_radiusIn
;
70
double
_radiusOut
;
71
double
_centerZ
;
72
std::vector<double>
_zpos
;
// Z positions of the rings
73
std::vector<double>
_zhalf
;
// Z half-widths of the rings
74
std::vector<double>
_phi0
;
// Lower edge of phi bins
75
std::vector<double>
_phi1
;
// Upper edge of phi bins
76
std::vector<int>
_ieta
;
77
std::vector<int>
_iphi
;
78
};
79
80
81
#endif
coresoftware
blob
master
simulation
g4simulation
g4main
PHG4EtaPhiParameterization.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:15
using
1.8.2 with
sPHENIX GitHub integration