BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnInnerTrackerGeometryDraw.cxx
Go to the documentation of this file.
1
#include "
BmnInnerTrackerGeometryDraw.h
"
2
3
BmnInnerTrackerGeometryDraw::BmnInnerTrackerGeometryDraw
()
4
{
5
// 1. Initialize GEM and SILICON geometries to be used ...
6
TString
gPathConfig =
gSystem
->Getenv(
"VMCWORKDIR"
);
7
fGEM
=
new
BmnGemStripStationSet
(gPathConfig +
"/parameters/gem/XMLConfigs/GemRunSpring2018.xml"
);
8
fSILICON
=
new
BmnSiliconStationSet
(gPathConfig +
"/parameters/silicon/XMLConfigs/SiliconRunSpring2018.xml"
);
9
10
// 2. Create box, layer and dead zone borders ...
11
CreateBordersGem
();
12
CreateBordersSilicon
();
13
}
14
15
BmnInnerTrackerGeometryDraw::~BmnInnerTrackerGeometryDraw
()
16
{
17
if
(
fGEM
)
18
delete
fGEM
;
19
20
if
(
fSILICON
)
21
delete
fSILICON
;
22
}
23
24
void
BmnInnerTrackerGeometryDraw::CreateBordersGem
()
25
{
26
const
Int_t
nMods = 2;
27
const
Int_t
nLayers = 4;
28
29
gemModBoxes
=
new
TBox
**[
fGEM
->GetNStations()];
30
gemLayBoxes
=
new
TBox
***[
fGEM
->GetNStations()];
31
gemDeadZones
=
new
TPolyLine
***[
fGEM
->GetNStations()];
32
33
for
(
Int_t
iStat = 0; iStat <
fGEM
->GetNStations(); iStat++) {
34
gemModBoxes
[iStat] =
new
TBox
*[nMods];
35
gemLayBoxes
[iStat] =
new
TBox
**[nMods];
36
gemDeadZones
[iStat] =
new
TPolyLine
**[nMods];
37
38
for
(
Int_t
iMod = 0; iMod <
fGEM
->GetStation(iStat)->GetNModules(); iMod++) {
39
BmnGemStripModule
* mod =
fGEM
->GetStation(iStat)->GetModule(iMod);
40
41
Double_t
xmin = -mod->
GetXMinModule
();
42
Double_t
xmax = -mod->
GetXMaxModule
();
43
Double_t
ymin = mod->
GetYMinModule
();
44
Double_t
ymax = mod->
GetYMaxModule
();
45
46
gemModBoxes
[iStat][iMod] =
new
TBox
(xmin, ymin, xmax, ymax);
47
gemLayBoxes
[iStat][iMod] =
new
TBox
*[nLayers];
48
gemDeadZones
[iStat][iMod] =
new
TPolyLine
*[nLayers];
49
50
gemModBoxes
[iStat][iMod]->SetLineColorAlpha(
TColor::GetColor
(
"#009900"
), 0.3);
51
gemModBoxes
[iStat][iMod]->SetLineStyle(1);
52
gemModBoxes
[iStat][iMod]->SetLineWidth(1);
53
54
gemModBoxes
[iStat][iMod]->SetFillColorAlpha(
TColor::GetColor
(
"#cccccc"
), 0.3);
55
gemModBoxes
[iStat][iMod]->SetFillStyle(0);
// 0 - not filled, 1001 - solid
56
57
for
(
Int_t
iLayer = 0; iLayer <
fGEM
->GetStation(iStat)->GetModule(iMod)->GetNStripLayers(); iLayer++) {
58
BmnGemStripLayer
layer =
fGEM
->GetStation(iStat)->GetModule(iMod)->GetStripLayer(iLayer);
59
60
// Get dead zones per each layer ...
61
vector<DeadZoneOfStripLayer> DeadZones = layer.
GetDeadZones
();
62
Int_t
NDeadZones = DeadZones.size();
63
64
gemDeadZones
[iStat][iMod][iLayer] =
new
TPolyLine
[NDeadZones];
65
gemDeadZones
[iStat][iMod][iLayer]->SetFillStyle(0);
// 0 - not filled, 1001 - solid
66
67
for
(
Int_t
iZone = 0; iZone < NDeadZones; ++iZone) {
68
DeadZoneOfStripLayer
dead_zone = DeadZones[iZone];
69
70
for
(
Int_t
ipoint = 0; ipoint < dead_zone.
GetNPoints
(); ++ipoint) {
71
Double_t
x = -dead_zone.
GetXPoint
(ipoint);
72
Double_t
y = dead_zone.
GetYPoint
(ipoint);
73
gemDeadZones
[iStat][iMod][iLayer][iZone].SetNextPoint(x, y);
74
if
(ipoint == dead_zone.
GetNPoints
() - 1) {
75
gemDeadZones
[iStat][iMod][iLayer][iZone].SetNextPoint(dead_zone.
GetXPoint
(0),
76
dead_zone.
GetYPoint
(0));
77
}
78
}
79
}
80
81
Double_t
xminL = -layer.
GetXMinLayer
();
82
Double_t
xmaxL = -layer.
GetXMaxLayer
();
83
Double_t
yminL = layer.
GetYMinLayer
();
84
Double_t
ymaxL = layer.
GetYMaxLayer
();
85
86
gemLayBoxes
[iStat][iMod][iLayer] =
new
TBox
(xminL, yminL, xmaxL, ymaxL);
87
gemLayBoxes
[iStat][iMod][iLayer]->SetLineColorAlpha(
TColor::GetColor
(
"#009900"
), 0.3);
88
gemLayBoxes
[iStat][iMod][iLayer]->SetLineStyle(1);
89
gemLayBoxes
[iStat][iMod][iLayer]->SetLineWidth(1);
90
91
gemLayBoxes
[iStat][iMod][iLayer]->SetFillColorAlpha(
TColor::GetColor
(
"#cccccc"
), 0.3);
92
gemLayBoxes
[iStat][iMod][iLayer]->SetFillStyle(0);
// 0 - not filled, 1001 - solid
93
}
94
}
95
}
96
}
97
98
void
BmnInnerTrackerGeometryDraw::CreateBordersSilicon
()
99
{
100
const
Int_t
nMods = 8;
101
const
Int_t
nLayers = 4;
102
103
siliconModBoxes
=
new
TBox
**[
fSILICON
->GetNStations()];
104
siliconLayBoxes
=
new
TBox
***[
fSILICON
->GetNStations()];
105
siliconDeadZones
=
new
TPolyLine
***[
fSILICON
->GetNStations()];
106
107
for
(
Int_t
iStat = 0; iStat <
fSILICON
->GetNStations(); iStat++) {
108
siliconModBoxes
[iStat] =
new
TBox
*[nMods];
109
siliconLayBoxes
[iStat] =
new
TBox
**[nMods];
110
siliconDeadZones
[iStat] =
new
TPolyLine
**[nMods];
111
112
for
(
Int_t
iMod = 0; iMod <
fSILICON
->GetStation(iStat)->GetNModules(); iMod++) {
113
BmnSiliconModule
* mod =
fSILICON
->GetStation(iStat)->GetModule(iMod);
114
115
Double_t
xmin = -mod->
GetXMinModule
();
116
Double_t
xmax = -mod->
GetXMaxModule
();
117
Double_t
ymin = mod->
GetYMinModule
();
118
Double_t
ymax = mod->
GetYMaxModule
();
119
120
siliconModBoxes
[iStat][iMod] =
new
TBox
(xmin, ymin, xmax, ymax);
121
siliconLayBoxes
[iStat][iMod] =
new
TBox
*[nLayers];
122
siliconDeadZones
[iStat][iMod] =
new
TPolyLine
*[nLayers];
123
124
siliconModBoxes
[iStat][iMod] =
new
TBox
(xmin, ymin, xmax, ymax);
125
siliconModBoxes
[iStat][iMod]->SetLineColorAlpha(
TColor::GetColor
(
"#009900"
), 0.3);
126
siliconModBoxes
[iStat][iMod]->SetLineStyle(1);
127
siliconModBoxes
[iStat][iMod]->SetLineWidth(1);
128
129
siliconModBoxes
[iStat][iMod]->SetFillColorAlpha(
TColor::GetColor
(
"#cccccc"
), 0.3);
130
siliconModBoxes
[iStat][iMod]->SetFillStyle(0);
// 0 - not filled, 1001 - solid
131
132
for
(
Int_t
iLayer = 0; iLayer <
fSILICON
->GetStation(iStat)->GetModule(iMod)->GetNStripLayers(); iLayer++) {
133
BmnSiliconLayer
layer =
fSILICON
->GetStation(iStat)->GetModule(iMod)->GetStripLayer(iLayer);
134
135
// Get dead zones per each layer ...
136
vector<DeadZoneOfStripLayer> DeadZones = layer.
GetDeadZones
();
137
Int_t
NDeadZones = DeadZones.size();
138
139
siliconDeadZones
[iStat][iMod][iLayer] =
new
TPolyLine
[NDeadZones];
140
if
(iStat == 2 && iMod == 7 && (iLayer == 0 || iLayer == 2))
141
siliconDeadZones
[iStat][iMod][iLayer]->SetFillStyle(0);
// 0 - not filled, 1001 - solid
142
143
for
(
Int_t
iZone = 0; iZone < NDeadZones; ++iZone) {
144
DeadZoneOfStripLayer
dead_zone = DeadZones[iZone];
145
146
for
(
Int_t
ipoint = 0; ipoint < dead_zone.
GetNPoints
(); ++ipoint) {
147
Double_t
x = -dead_zone.
GetXPoint
(ipoint);
148
Double_t
y = dead_zone.
GetYPoint
(ipoint);
149
siliconDeadZones
[iStat][iMod][iLayer][iZone].SetNextPoint(x, y);
150
if
(ipoint == dead_zone.
GetNPoints
() - 1) {
151
siliconDeadZones
[iStat][iMod][iLayer][iZone].SetNextPoint(dead_zone.
GetXPoint
(0),
152
dead_zone.
GetYPoint
(0));
153
}
154
}
155
}
156
157
Double_t
xminL = -layer.
GetXMinLayer
();
158
Double_t
xmaxL = -layer.
GetXMaxLayer
();
159
Double_t
yminL = layer.
GetYMinLayer
();
160
Double_t
ymaxL = layer.
GetYMaxLayer
();
161
162
siliconLayBoxes
[iStat][iMod][iLayer] =
new
TBox
(xminL, yminL, xmaxL, ymaxL);
163
siliconLayBoxes
[iStat][iMod][iLayer]->SetLineColorAlpha(
TColor::GetColor
(
"#009900"
), 0.3);
164
siliconLayBoxes
[iStat][iMod][iLayer]->SetLineStyle(1);
165
siliconLayBoxes
[iStat][iMod][iLayer]->SetLineWidth(1);
166
siliconLayBoxes
[iStat][iMod][iLayer]->SetFillColorAlpha(
TColor::GetColor
(
"#cccccc"
), 0.3);
167
siliconLayBoxes
[iStat][iMod][iLayer]->SetFillStyle(0);
// 0 - not filled, 1001 - solid
168
}
169
}
170
}
171
}
BmnInnerTrackerGeometryDraw.h
Int_t
int Int_t
Double_t
double Double_t
gSystem
R__EXTERN TSystem * gSystem
BmnGemStripLayer
Definition
BmnGemStripLayer.h:15
BmnGemStripLayer::GetYMinLayer
Double_t GetYMinLayer()
Definition
BmnGemStripLayer.h:58
BmnGemStripLayer::GetYMaxLayer
Double_t GetYMaxLayer()
Definition
BmnGemStripLayer.h:59
BmnGemStripLayer::GetXMinLayer
Double_t GetXMinLayer()
Definition
BmnGemStripLayer.h:56
BmnGemStripLayer::GetDeadZones
vector< DeadZoneOfStripLayer > GetDeadZones()
Definition
BmnGemStripLayer.h:82
BmnGemStripLayer::GetXMaxLayer
Double_t GetXMaxLayer()
Definition
BmnGemStripLayer.h:57
BmnGemStripModule
Definition
BmnGemStripModule.h:27
BmnGemStripModule::GetXMaxModule
Double_t GetXMaxModule()
Definition
BmnGemStripModule.h:50
BmnGemStripModule::GetYMaxModule
Double_t GetYMaxModule()
Definition
BmnGemStripModule.h:52
BmnGemStripModule::GetXMinModule
Double_t GetXMinModule()
Definition
BmnGemStripModule.h:49
BmnGemStripModule::GetYMinModule
Double_t GetYMinModule()
Definition
BmnGemStripModule.h:51
BmnGemStripStationSet
Definition
BmnGemStripStationSet.h:15
BmnInnerTrackerGeometryDraw::gemModBoxes
TBox *** gemModBoxes
Definition
BmnInnerTrackerGeometryDraw.h:55
BmnInnerTrackerGeometryDraw::siliconLayBoxes
TBox **** siliconLayBoxes
Definition
BmnInnerTrackerGeometryDraw.h:60
BmnInnerTrackerGeometryDraw::fGEM
BmnGemStripStationSet * fGEM
Definition
BmnInnerTrackerGeometryDraw.h:51
BmnInnerTrackerGeometryDraw::CreateBordersSilicon
void CreateBordersSilicon()
Definition
BmnInnerTrackerGeometryDraw.cxx:98
BmnInnerTrackerGeometryDraw::BmnInnerTrackerGeometryDraw
BmnInnerTrackerGeometryDraw()
Definition
BmnInnerTrackerGeometryDraw.cxx:3
BmnInnerTrackerGeometryDraw::gemDeadZones
TPolyLine **** gemDeadZones
Definition
BmnInnerTrackerGeometryDraw.h:57
BmnInnerTrackerGeometryDraw::siliconDeadZones
TPolyLine **** siliconDeadZones
Definition
BmnInnerTrackerGeometryDraw.h:61
BmnInnerTrackerGeometryDraw::gemLayBoxes
TBox **** gemLayBoxes
Definition
BmnInnerTrackerGeometryDraw.h:56
BmnInnerTrackerGeometryDraw::CreateBordersGem
void CreateBordersGem()
Definition
BmnInnerTrackerGeometryDraw.cxx:24
BmnInnerTrackerGeometryDraw::~BmnInnerTrackerGeometryDraw
virtual ~BmnInnerTrackerGeometryDraw()
Definition
BmnInnerTrackerGeometryDraw.cxx:15
BmnInnerTrackerGeometryDraw::siliconModBoxes
TBox *** siliconModBoxes
Definition
BmnInnerTrackerGeometryDraw.h:59
BmnInnerTrackerGeometryDraw::fSILICON
BmnSiliconStationSet * fSILICON
Definition
BmnInnerTrackerGeometryDraw.h:52
BmnSiliconLayer
Definition
BmnSiliconLayer.h:13
BmnSiliconLayer::GetXMaxLayer
Double_t GetXMaxLayer()
Definition
BmnSiliconLayer.h:56
BmnSiliconLayer::GetYMinLayer
Double_t GetYMinLayer()
Definition
BmnSiliconLayer.h:57
BmnSiliconLayer::GetYMaxLayer
Double_t GetYMaxLayer()
Definition
BmnSiliconLayer.h:58
BmnSiliconLayer::GetDeadZones
vector< DeadZoneOfStripLayer > GetDeadZones()
Definition
BmnSiliconLayer.h:81
BmnSiliconLayer::GetXMinLayer
Double_t GetXMinLayer()
Definition
BmnSiliconLayer.h:55
BmnSiliconModule
Definition
BmnSiliconModule.h:9
BmnSiliconModule::GetYMinModule
Double_t GetYMinModule()
Definition
BmnSiliconModule.h:27
BmnSiliconModule::GetXMinModule
Double_t GetXMinModule()
Definition
BmnSiliconModule.h:25
BmnSiliconModule::GetXMaxModule
Double_t GetXMaxModule()
Definition
BmnSiliconModule.h:26
BmnSiliconModule::GetYMaxModule
Double_t GetYMaxModule()
Definition
BmnSiliconModule.h:28
BmnSiliconStationSet
Definition
BmnSiliconStationSet.h:14
DeadZoneOfStripLayer
Definition
BmnStripData.h:44
DeadZoneOfStripLayer::GetNPoints
Int_t GetNPoints()
Definition
BmnStripData.h:149
DeadZoneOfStripLayer::GetXPoint
Double_t GetXPoint(Int_t index)
Definition
BmnStripData.h:151
DeadZoneOfStripLayer::GetYPoint
Double_t GetYPoint(Int_t index)
Definition
BmnStripData.h:162
TBox
TColor::GetColor
static Int_t GetColor(const char *hexcolor)
TPolyLine
TString
physics
embedding
BmnInnerTrackerGeometryDraw.cxx
Generated on
for BmnRoot by
1.17.0