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
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
vst.C
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file vst.C
1
2
// Meaningless number for now; fine;
3
#define _VERSION_ 4
4
#define _SUBVERSION_ 0
5
6
// Do not want to always overwrite "official" files; place "test" tag into the file name;
7
//#define _TEST_VERSION_
8
9
// All construction elements are smeared (so chip assembly is uniform in both
10
// beam line and asimuthal direction);
11
#define _NO_STRUCTURE_GEOMETRY_
12
// No tricky elements like inclined roof beams; still water pipes, etc are
13
// created (so chip assembly is uniform in beam line direction only);
14
//#define _BEAM_LINE_UNIFORM_GEOMETRY_
15
16
// In case of VST no need to fall back to tricky TGeoCompositeShape cell assemblies;
17
#define _USE_TRIANGULAR_ASSEMBLIES_
18
19
// Comment out if no mounting rings wanted;
20
//#define _WITH_MOUNTING_RINGS_
21
// Comment out if no stave enforcement brackets wanted;
22
//#define _WITH_ENFORCEMENT_BRACKETS_
23
// Comment out if no external water pipe pieces wanted;
24
//#define _WITH_EXTERNAL_PIPES_
25
26
#include <
./maps-lib.C
>
27
28
vst
()
29
{
30
// Load basic libraries;
31
gROOT->Macro(
"$VMCWORKDIR/gconfig/rootlogon.C"
);
32
33
//
34
// Prefer to think in [mm] and convert to [cm] when calling ROOT shape
35
// definition routines only;
36
//
37
38
VstGeoParData
*
vst
=
new
VstGeoParData
(
_VERSION_
,
_SUBVERSION_
);
39
40
// Parse #define statements and make certain configuration calls accordingly;
41
// NB: cast to the base MAPS geo class since void* interface used; FIXME!;
42
DefinitionParser
((
MapsGeoParData
*)vst);
43
44
//
45
// For now assume ALICE Inner Barrel design only (but with more than 9 chips);
46
// no problem to introduce similar design with a bit different parameter set later;
47
// construction a-la ALICE Outer Barrel looks like an overkill to the moment;
48
//
49
50
// No offset per default;
51
//vst->SetTopVolumeTransformation(new TGeoTranslation(0.0, 0.0, 0.0));
52
53
//
54
// NB: all these numbers are sort of arbitrary; allow to get better visual
55
// representation, but do not reflect any reality of the final design;
56
//
57
58
// Mounting ring construction; arbitrary numbers, same for all layers;
59
if
(vst->
WithMountingRings
()) {
60
vst->
mMountingRingBeamLineThickness
= 5.00;
61
vst->
mMountingRingRadialThickness
= 5.00;
62
vst->
mMountingRingRadialOffset
= 3.00;
63
}
//if
64
// Simplify the design -> just a triangular piece with a reasonable volume;
65
if
(vst->
WithEnforcementBrackets
())
66
vst->
mEnforcementBracketThickness
= 1.00;
67
// This is something for display purposes mostly;
68
if (vst->
WithExternalPipes
())
69
vst->
mWaterPipeExtensionLength
= 4.00;
70
71
MapsMimosaAssembly
*
ibcell
= (
MapsMimosaAssembly
*)
ConfigureAliceCell
();
72
73
// If (much) longer staves needed, create an enforced configuration;
74
//MapsMimosaAssembly *obcell = new MapsMimosaAssembly(ibcell);
75
//obcell->mEnforcementBeamDiameter = 1.00; ... and so on ...
76
77
//
78
// Now when basic building blocks are created, compose barrel layers;
79
//
80
// a dirty part, but perhaps the easiest (and most readable) to do; parameters are:
81
// - cell assembly type;
82
// - number of staves in this layer;
83
// - number of chips in a stave;
84
// - chip center installation radius;
85
// - additional stave slope around beam line direction; [degree];
86
// - layer rotation around beam axis "as a whole"; [degree];
87
//
88
vst->
AddBarrelLayer
(
ibcell
, 18, 9, 36.4, 12.0, 0.0);
89
vst->
AddBarrelLayer
(
ibcell
, 30, 9, 59.8, 12.0, 0.0);
90
91
vst->
AttachSourceFile
(
"vst.C"
);
92
vst->
AttachSourceFile
(
"maps-lib.C"
);
93
94
// Specify color preferences; NB: void* interface, sorry;
95
SetMapsColors
((
EicGeoParData
*)vst);
96
97
//
98
// Fine, at this point structure is completely defined -> code it in ROOT;
99
//
100
101
vst->
ConstructGeometry
(
true
,
true
,
true
);
102
103
// Yes, always exit;
104
exit
(0);
105
}
106
EicRoot
blob
master
geometry
MAPS
sandbox
vst.C
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:36
using
1.8.2 with
EIC GitHub integration