BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
__w
bdsim
bdsim
include
BDSCrystalInfo.hh
1
/*
2
Beam Delivery Simulation (BDSIM) Copyright (C) Royal Holloway,
3
University of London 2001 - 2024.
4
5
This file is part of BDSIM.
6
7
BDSIM is free software: you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published
9
by the Free Software Foundation version 3 of the License.
10
11
BDSIM is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with BDSIM. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
#ifndef BDSCRYSTALINFO_H
20
#define BDSCRYSTALINFO_H
21
22
#include "BDSCrystalType.hh"
23
#include "globals.hh"
// geant4 types / globals
24
25
#include "CLHEP/Units/SystemOfUnits.h"
26
27
class
G4Material;
28
42
class
BDSCrystalInfo
43
{
44
public
:
46
BDSCrystalInfo
() =
delete
;
47
49
BDSCrystalInfo
(G4Material* materialIn,
50
const
G4String& dataIn,
51
BDSCrystalType
crystalTypeIn,
52
G4double lengthXIn,
53
G4double lengthYIn,
54
G4double lengthZIn,
55
G4double sizeAIn,
56
G4double sizeBIn,
57
G4double sizeCIn,
58
G4double alphaIn,
59
G4double betaIn,
60
G4double gammaIn,
61
G4int spaceGroupIn,
62
G4double bendingAngleYAxisIn = 0,
63
G4double bendingAngleZAxisIn = 0,
64
G4double miscutAngleY = 0);
65
66
G4Material*
material
;
67
G4String
data
;
68
BDSCrystalType
shape
;
69
G4double
lengthX
;
70
G4double
lengthY
;
71
G4double
lengthZ
;
72
G4double sizeA;
73
G4double sizeB;
74
G4double sizeC;
75
G4double alpha;
76
G4double beta;
77
G4double gamma;
78
G4int spaceGroup;
79
G4double
bendingAngleYAxis
;
80
G4double
bendingAngleZAxis
;
81
G4double miscutAngleY;
82
83
G4double BendingRadiusHorizontal()
const
{
return
BendingRadius(
lengthZ
,
bendingAngleYAxis
);}
84
G4double BendingRadiusVertical()
const
{
return
BendingRadius(
lengthY
,
bendingAngleZAxis
);}
85
86
private
:
87
G4double BendingRadius(G4double length,
88
G4double angle)
const
;
89
};
90
91
#endif
BDSCrystalInfo
Holder for all information required to create a crystal.
Definition
BDSCrystalInfo.hh:43
BDSCrystalInfo::data
G4String data
Potential data path.
Definition
BDSCrystalInfo.hh:67
BDSCrystalInfo::lengthZ
G4double lengthZ
Z dimension.
Definition
BDSCrystalInfo.hh:71
BDSCrystalInfo::material
G4Material * material
Material.
Definition
BDSCrystalInfo.hh:66
BDSCrystalInfo::bendingAngleZAxis
G4double bendingAngleZAxis
Bending angle about Z axis.
Definition
BDSCrystalInfo.hh:80
BDSCrystalInfo::lengthX
G4double lengthX
X dimension.
Definition
BDSCrystalInfo.hh:69
BDSCrystalInfo::BDSCrystalInfo
BDSCrystalInfo()=delete
No default constuctor.
BDSCrystalInfo::shape
BDSCrystalType shape
Shape of geometry.
Definition
BDSCrystalInfo.hh:68
BDSCrystalInfo::bendingAngleYAxis
G4double bendingAngleYAxis
Bending angle about Y axis.
Definition
BDSCrystalInfo.hh:79
BDSCrystalInfo::lengthY
G4double lengthY
Y dimension.
Definition
BDSCrystalInfo.hh:70
BDSTypeSafeEnum< crystaltypes_def, int >
Generated on Sat Oct 18 2025 18:31:03 for BDSIM by
1.9.8