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
maps-lib.C
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file maps-lib.C
1
2
//
3
// Crappy, but perhaps the easiest;
4
//
5
6
void
DefinitionParser
(
void
*ptr)
7
{
8
MapsGeoParData
*maps = (
MapsGeoParData
*)ptr;
9
10
// Simpliest case wins;
11
#ifdef _BEAM_LINE_UNIFORM_GEOMETRY_
12
maps->
SetGeometryType
(
EicGeoParData::SimpleStructure
);
13
#endif
14
#ifdef _NO_STRUCTURE_GEOMETRY_
15
maps->
SetGeometryType
(
EicGeoParData::NoStructure
);
16
#endif
17
18
#ifdef _USE_TRIANGULAR_ASSEMBLIES_
19
maps->
UseTriangularAssemblies
(
true
);
20
#endif
21
22
#ifdef _TEST_VERSION_
23
maps->
SetTestGeometryFlag
();
24
#endif
25
26
// Let MapsGeoParData base class instance know, which elements are wanted;
27
// this set of #define and respective call looks strange, but visually it
28
// is more convenient to check #define statements at the beginning of the
29
// script rather than to check several lines with functional calls in the text;
30
#ifdef _WITH_MOUNTING_RINGS_
31
maps->
WithMountingRings
(
true
);
32
#endif
33
#ifdef _WITH_ENFORCEMENT_BRACKETS_
34
maps->
WithEnforcementBrackets
(
true
);
35
#endif
36
#ifdef _WITH_EXTERNAL_PIPES_
37
maps->
WithExternalPipes
(
true
);
38
#endif
39
}
// DefinitionParser()
40
41
42
void
SetMapsColors
(
void
*ptr)
43
{
44
EicNamePatternHub<Color_t>
*ctable = ((
EicGeoParData
*)ptr)->GetColorTable();
45
46
// Specify color preferences; NB: order of calls matters!;
47
ctable->
AddPatternMatch
(
"WaterPipe"
, kYellow);
48
ctable->
AddPatternMatch
(
"Water"
, kBlue);
49
ctable->
AddPatternMatch
(
"StaveBracket"
, kOrange);
50
ctable->
AddPatternMatch
(
"Beam"
, kBlack);
51
ctable->
AddPatternMatch
(
"ColdPlate"
, kYellow);
52
ctable->
AddPatternMatch
(
"MimosaCore"
, kYellow);
53
ctable->
AddPatternMatch
(
"CellFlexLayer"
, kGreen+2);
54
ctable->
AddPatternMatch
(
"AluStrips"
, kGray);
55
ctable->
AddPatternMatch
(
"MountingRing"
, kMagenta+1);
56
}
// SetMapsColors()
57
58
59
void
*
ConfigureAliceCell
()
60
{
61
// First want to cook the basic building block - Mimosa chip assembly; the
62
// rest is composed out of these blocks in a LEGO fashion;
63
MapsMimosaAssembly
*
ibcell
=
new
MapsMimosaAssembly
();
64
65
// !!!!!!
66
//
67
// NB: these parameters were carefully tuned to match ALICE ITS upgrade design;
68
// do NOT touch unless you understand what you are doing;
69
//
70
// !!!!!!
71
72
// Air container volume parameters sufficient to pack all the stuff;
73
ibcell->
mAssemblyBaseWidth
= 17.500;
74
ibcell->
mAssemblySideSlope
= 30.000;
75
ibcell->
mChipToChipGap
= 0.100;
76
77
// Space structure;
78
ibcell->
mApexEnforcementBeamDiameter
= 0.400;
79
ibcell->
mEnforcementStripWidth
= 0.500;
80
ibcell->
mEnforcementStripThickness
= 0.200;
81
ibcell->
mBaseEnforcementBeamWidth
= 1.200;
82
ibcell->
mSideWallThickness
= 0.050;
83
84
// Basic Mimosa 34 chip parameters; pixel size does not matter here (will play
85
// a role during digitization only);
86
ibcell->
mChipLength
= 30.000;
87
ibcell->
mChipWidth
= 15.000;
88
// Well, ALICE rad.length scan plot indicates, that it is equal to the chip width;
89
// NB: do NOT try to set this value to be larger than mChipWidth (unless modify
90
// assembly and stove width calculation):
91
ibcell->
mAssemblyDeadMaterialWidth
= 15.000;
92
ibcell->
mChipThickness
= 0.050;
93
ibcell->
mChipActiveZoneThickness
= 0.018;
94
ibcell->
mChipDeadAreaWidth
= 2.000;
95
96
// Layers at the base of the assembly; kapton and effective alu thinckness;
97
ibcell->
mFlexCableKaptonThickness
= 0.100;
98
// Based on the ALICE rad.length scan one can conclude, that 50um is too much;
99
// I guess these strips occupy only a fraction of the assembly width;
100
ibcell->
mFlexCableAluThickness
= 0.020;
101
// Assume just 'Carbon fiber + paper' on p.55 of ALICE ITS TDR) -> 30+70um;
102
ibcell->
mColdPlateThickness
= 0.100;
103
104
// Water pipes; assume 2 parallel pipes; 25um thick walls;
105
ibcell->
mWaterPipeInnerDiameter
= 1.024;
106
ibcell->
mWaterPipeWallThickness
= 0.025;
107
108
return
ibcell
;
109
}
// ConfigureAliceCell()
EicRoot
blob
master
pCDR-2018
geometry
maps-lib.C
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:36
using
1.8.2 with
EIC GitHub integration