BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnGemStripStation_RunSummer2016.cxx
Go to the documentation of this file.
2
3#include <fstream>
4
6 Double_t xpos_station,
7 Double_t ypos_station,
8 Double_t zpos_station,
9 Double_t beamradius,
11{
12
13 // All linear values must be entered in units of cm
14
15 fCurrentConfig = config;
16
17 StationNumber = iStation;
18
19 // Station shift position
20 XPosition = xpos_station;
21 YPosition = ypos_station;
22 ZPosition = zpos_station;
23
24 BeamHoleRadius = beamradius;
25
26 // Parameters for each station
27 // ZSizeModuleWithFrames : GEM thickness (frames+sensitive)
28 // ZSizeModule : sensitive volume thickness
29 // XSize : x-size of the station
30 // YSize : y-size of the station
31 // ZSize : z-size of the station
32
33 switch (iStation) {
34 case 0: // one plane 10x10
37 LowerLayerPitch = 0.04;
38 UpperLayerPitch = 0.04;
40 ZSizeModule = 0.9;
42 NModules = 1; // Number of modules in the station
43 break;
44
45 case 1: // one plane 66x41
48 LowerLayerPitch = 0.08;
49 UpperLayerPitch = 0.08;
51 ZSizeModule = 0.9;
53 NModules = 1; // Number of modules in the station
54 break;
55
56 case 2: // one plane 66x41
59 LowerLayerPitch = 0.08;
60 UpperLayerPitch = 0.08;
62 ZSizeModule = 0.9;
64 NModules = 1; // Number of modules in the station
65 break;
66
67 case 3: // one plane 66x41
70 LowerLayerPitch = 0.08;
71 UpperLayerPitch = 0.08;
73 ZSizeModule = 0.9;
75 NModules = 1; // Number of modules in the station
76 break;
77
78 case 4: // one plane 66x41
81 LowerLayerPitch = 0.08;
82 UpperLayerPitch = 0.08;
84 ZSizeModule = 0.9;
86 NModules = 1; // Number of modules in the station
87 break;
88
89 case 5: // one plane 66x41
92 LowerLayerPitch = 0.08;
93 UpperLayerPitch = 0.08;
95 ZSizeModule = 0.9;
97 NModules = 1; // Number of modules in the station
98 break;
99
100 case 6: // one plane 163x45
102 UpperLayerStripAngle = -15.0;
103 LowerLayerPitch = 0.08;
104 UpperLayerPitch = 0.08;
106 ZSizeModule = 0.9;
108 NModules = 2; // Number of modules in the station
109 break;
110 }
111
112 // Planes SIZES
113
114 // station 0 (plane 10x10)
117
118 // station 1-5 (plane 66x41)
121
124
125 // station 6 (plane 163x45)
126 XModuleSize_Plane163x45 = 163.2 * 0.5;
128
131
134
136
137 // Module shifts ------------------------------------------------------------
141
142 switch (fCurrentConfig) {
144 for (Int_t iModule = 0; iModule < NModules; ++iModule) {
146 [iStation][iModule]; // inverted : (bm@n x-coord -> classical x-coord)
149 }
150 break;
151
152 default:
153 for (Int_t iModule = 0; iModule < NModules; ++iModule) {
155 [iStation][iModule]; // inverted : (bm@n x-coord -> classical x-coord)
158 }
159 }
160 //--------------------------------------------------------------------------
161
162 // Assembling a station -----------------------------------------------------
163 if (StationNumber == 0) {
168 }
169
170 if (StationNumber >= 1 && StationNumber <= 5) {
175 }
176
177 if (StationNumber == 6) {
182 }
183 // end assembling the station -----------------------------------------------
184
185 // define station borders and sizes
187}
188
190//------------------------------------------------------------------------------
191
193{
194
196
197 // module
198 Double_t DriftGapThickness = 0.3;
199 Double_t FirstTransferGapThickness = 0.25;
200 Double_t SecondTransferGapThickness = 0.2;
201 Double_t InductionGapThickness = 0.15;
202
203 Modules[0] = new BmnGemStripModule(ZPosition + ZShiftOfModules[0], EDriftDirection, DriftGapThickness,
204 FirstTransferGapThickness, SecondTransferGapThickness, InductionGapThickness);
205
206 // lower strip layer --------------------------------------------------------
211
214 //--------------------------------------------------------------------------
215
216 // upper strip layer --------------------------------------------------------
221
224 //--------------------------------------------------------------------------
225
226 Modules[0]->AddStripLayer(lower_layer);
227 Modules[0]->AddStripLayer(upper_layer);
228
229 return;
230}
231
233{
234
236
237 // module
238 Double_t DriftGapThickness = 0.3;
239 Double_t FirstTransferGapThickness = 0.25;
240 Double_t SecondTransferGapThickness = 0.2;
241 Double_t InductionGapThickness = 0.15;
242
243 Modules[0] = new BmnGemStripModule(ZPosition + ZShiftOfModules[0], EDriftDirection, DriftGapThickness,
244 FirstTransferGapThickness, SecondTransferGapThickness, InductionGapThickness);
245
246 // zone 0 (big) -------------------------------------------------------------
247
248 // lower strip layer (zone 0) -------------------------------------------
253
254 if (UpperLayerStripAngle >= 0.0) {
255 lower_layer_zone0.SetStripNumberingOrder(LeftToRight);
256 lower_layer_zone0.SetStripNumberingBorders(LeftTop, RightBottom);
257 } else {
258 lower_layer_zone0.SetStripNumberingOrder(LeftToRight);
259 lower_layer_zone0.SetStripNumberingBorders(LeftBottom, RightTop);
260 }
261
262 // dead zone for layers in zone 0
263 const Int_t NPoints_DeadZone_zone0 = 4;
264 Double_t XPoints_DeadZone_zone0[NPoints_DeadZone_zone0];
265 Double_t YPoints_DeadZone_zone0[NPoints_DeadZone_zone0];
266
267 if (UpperLayerStripAngle >= 0.0) {
268 XPoints_DeadZone_zone0[0] = XShiftOfModules[0] + XPosition - XModuleSize_Plane66x41 * 0.5;
269 XPoints_DeadZone_zone0[1] = XShiftOfModules[0] + XPosition - XModuleSize_Plane66x41 * 0.5;
270 XPoints_DeadZone_zone0[2] =
272 XPoints_DeadZone_zone0[3] =
274
275 YPoints_DeadZone_zone0[0] = YShiftOfModules[0] + YPosition - YModuleSize_Plane66x41 * 0.5;
276 YPoints_DeadZone_zone0[1] =
278 YPoints_DeadZone_zone0[2] =
280 YPoints_DeadZone_zone0[3] = YShiftOfModules[0] + YPosition - YModuleSize_Plane66x41 * 0.5;
281 } else {
282 XPoints_DeadZone_zone0[0] = XShiftOfModules[0] + XPosition - XModuleSize_Plane66x41 * 0.5;
283 XPoints_DeadZone_zone0[1] = XShiftOfModules[0] + XPosition - XModuleSize_Plane66x41 * 0.5;
284 XPoints_DeadZone_zone0[2] =
286 XPoints_DeadZone_zone0[3] =
288
289 YPoints_DeadZone_zone0[0] =
291 YPoints_DeadZone_zone0[1] = YShiftOfModules[0] + YPosition + YModuleSize_Plane66x41 * 0.5;
292 YPoints_DeadZone_zone0[2] = YShiftOfModules[0] + YPosition + YModuleSize_Plane66x41 * 0.5;
293 YPoints_DeadZone_zone0[3] =
295 }
296
297 lower_layer_zone0.AddDeadZone(NPoints_DeadZone_zone0, XPoints_DeadZone_zone0, YPoints_DeadZone_zone0);
298 //----------------------------------------------------------------------
299
300 // upper strip layer (zone 0) -------------------------------------------
305
306 if (UpperLayerStripAngle >= 0.0) {
307 upper_layer_zone0.SetStripNumberingOrder(LeftToRight);
308 upper_layer_zone0.SetStripNumberingBorders(LeftTop, RightBottom);
309 } else {
310 upper_layer_zone0.SetStripNumberingOrder(LeftToRight);
311 upper_layer_zone0.SetStripNumberingBorders(LeftBottom, RightTop);
312 }
313
314 upper_layer_zone0.AddDeadZone(NPoints_DeadZone_zone0, XPoints_DeadZone_zone0, YPoints_DeadZone_zone0);
315 //----------------------------------------------------------------------
316
317 //--------------------------------------------------------------------------
318
319 // zone 1 (hot) -------------------------------------------------------------
320
321 BmnGemStripLayer lower_layer_zone1;
322 BmnGemStripLayer upper_layer_zone1;
323
324 if (UpperLayerStripAngle >= 0.0) {
325 // lower strip layer (zone 1) -------------------------------------------
330
331 lower_layer_zone1.SetStripNumberingOrder(LeftToRight);
332 lower_layer_zone1.SetStripNumberingBorders(LeftTop, RightBottom);
333 //----------------------------------------------------------------------
334
335 // upper strip layer (zone 1) -------------------------------------------
340
341 upper_layer_zone1.SetStripNumberingOrder(LeftToRight);
342 upper_layer_zone1.SetStripNumberingBorders(LeftTop, RightBottom);
343 //----------------------------------------------------------------------
344 } else {
345 // lower strip layer (zone 1) -------------------------------------------
346 lower_layer_zone1 =
351
352 lower_layer_zone1.SetStripNumberingOrder(LeftToRight);
353 lower_layer_zone1.SetStripNumberingBorders(LeftTop, RightBottom);
354 //----------------------------------------------------------------------
355
356 // upper strip layer (zone 1) -------------------------------------------
357 upper_layer_zone1 =
362
363 upper_layer_zone1.SetStripNumberingOrder(LeftToRight);
364 upper_layer_zone1.SetStripNumberingBorders(LeftBottom, RightTop);
365 //----------------------------------------------------------------------
366 }
367 //--------------------------------------------------------------------------
368
369 Modules[0]->AddStripLayer(lower_layer_zone0);
370 Modules[0]->AddStripLayer(upper_layer_zone0);
371 Modules[0]->AddStripLayer(lower_layer_zone1);
372 Modules[0]->AddStripLayer(upper_layer_zone1);
373
374 return;
375}
376
378{
380
381 // module 0 (left) --------------------------------------------------------------
382 {
383 Double_t DriftGapThickness = 0.3;
384 Double_t FirstTransferGapThickness = 0.25;
385 Double_t SecondTransferGapThickness = 0.2;
386 Double_t InductionGapThickness = 0.15;
387
388 Modules[0] =
389 new BmnGemStripModule(ZPosition + ZShiftOfModules[0], EDriftDirection, DriftGapThickness,
390 FirstTransferGapThickness, SecondTransferGapThickness, InductionGapThickness);
391
392 // zone 0 (big) ---------------------------------------------------------
393
394 // lower strip layer (zone 0) -------------------------------------------
399
400 lower_layer_zone0.SetStripNumberingOrder(RightToLeft);
401 lower_layer_zone0.SetStripNumberingBorders(LeftBottom, RightTop);
402
403 // dead zone for lower layer in zone 0
404 const Int_t NPoints_DeadZone_lower_zone0 = 4;
405 Double_t XPoints_DeadZone_lower_zone0[NPoints_DeadZone_lower_zone0];
406 Double_t YPoints_DeadZone_lower_zone0[NPoints_DeadZone_lower_zone0];
407
408 XPoints_DeadZone_lower_zone0[0] = XShiftOfModules[0] + XPosition - XRectHotZoneSize_Plane163x45;
409 XPoints_DeadZone_lower_zone0[1] = XShiftOfModules[0] + XPosition - XRectHotZoneSize_Plane163x45;
410 XPoints_DeadZone_lower_zone0[2] = XShiftOfModules[0] + XPosition + 0.0;
411 XPoints_DeadZone_lower_zone0[3] = XShiftOfModules[0] + XPosition + 0.0;
412
413 YPoints_DeadZone_lower_zone0[0] = YShiftOfModules[0] + YPosition - YModuleSize_Plane163x45 * 0.5;
414 YPoints_DeadZone_lower_zone0[1] =
416 YPoints_DeadZone_lower_zone0[2] =
418 YPoints_DeadZone_lower_zone0[3] = YShiftOfModules[0] + YPosition - YModuleSize_Plane163x45 * 0.5;
419
420 lower_layer_zone0.AddDeadZone(NPoints_DeadZone_lower_zone0, XPoints_DeadZone_lower_zone0,
421 YPoints_DeadZone_lower_zone0);
422 //----------------------------------------------------------------------
423
424 // upper strip layer (zone 0) -------------------------------------------
429
430 upper_layer_zone0.SetStripNumberingOrder(RightToLeft);
431 upper_layer_zone0.SetStripNumberingBorders(LeftBottom, RightTop);
432
433 // dead zone for upper layer in zone 0
434 const Int_t NPoints_DeadZone_upper_zone0 = 4;
435 Double_t XPoints_DeadZone_upper_zone0[NPoints_DeadZone_upper_zone0];
436 Double_t YPoints_DeadZone_upper_zone0[NPoints_DeadZone_upper_zone0];
437
438 XPoints_DeadZone_upper_zone0[0] = XShiftOfModules[0] + XPosition - XSlopeHotZoneSize_Plane163x45[0];
439 XPoints_DeadZone_upper_zone0[1] = XShiftOfModules[0] + XPosition - XSlopeHotZoneSize_Plane163x45[1];
440 XPoints_DeadZone_upper_zone0[2] = XShiftOfModules[0] + XPosition + 0.0;
441 XPoints_DeadZone_upper_zone0[3] = XShiftOfModules[0] + XPosition + 0.0;
442
443 YPoints_DeadZone_upper_zone0[0] = YShiftOfModules[0] + YPosition - YModuleSize_Plane163x45 * 0.5;
444 YPoints_DeadZone_upper_zone0[1] =
446 YPoints_DeadZone_upper_zone0[2] =
448 YPoints_DeadZone_upper_zone0[3] = YShiftOfModules[0] + YPosition - YModuleSize_Plane163x45 * 0.5;
449
450 upper_layer_zone0.AddDeadZone(NPoints_DeadZone_upper_zone0, XPoints_DeadZone_upper_zone0,
451 YPoints_DeadZone_upper_zone0);
452 //----------------------------------------------------------------------
453
454 // lower strip layer (zone 1) -------------------------------------------
455 BmnGemStripLayer lower_layer_zone1(
459
460 lower_layer_zone1.SetStripNumberingOrder(RightToLeft);
461 lower_layer_zone1.SetStripNumberingBorders(LeftBottom, RightTop);
462
463 // dead zone for lower layer in zone 1 (hole)
464 const Int_t NPoints_DeadZone_lower_zone1 = 4;
465 Double_t XPoints_DeadZone_lower_zone1[NPoints_DeadZone_lower_zone1];
466 Double_t YPoints_DeadZone_lower_zone1[NPoints_DeadZone_lower_zone1];
467
468 XPoints_DeadZone_lower_zone1[0] = XShiftOfModules[0] + XPosition - BeamHoleRadius;
469 XPoints_DeadZone_lower_zone1[1] = XShiftOfModules[0] + XPosition - BeamHoleRadius;
470 XPoints_DeadZone_lower_zone1[2] = XShiftOfModules[0] + XPosition + 0.0;
471 XPoints_DeadZone_lower_zone1[3] = XShiftOfModules[0] + XPosition + 0.0;
472
473 YPoints_DeadZone_lower_zone1[0] = YShiftOfModules[0] + YPosition - YModuleSize_Plane163x45 * 0.5;
474 YPoints_DeadZone_lower_zone1[1] =
476 YPoints_DeadZone_lower_zone1[2] =
478 YPoints_DeadZone_lower_zone1[3] = YShiftOfModules[0] + YPosition - YModuleSize_Plane163x45 * 0.5;
479
480 lower_layer_zone1.AddDeadZone(NPoints_DeadZone_lower_zone1, XPoints_DeadZone_lower_zone1,
481 YPoints_DeadZone_lower_zone1);
482 //----------------------------------------------------------------------
483
484 // upper strip layer (zone 1) -------------------------------------------
485 BmnGemStripLayer upper_layer_zone1(
489
490 upper_layer_zone1.SetStripNumberingOrder(RightToLeft);
491 upper_layer_zone1.SetStripNumberingBorders(LeftTop, RightTop);
492
493 // dead zone for upper layer in zone 1 (hole)
494 const Int_t NPoints_DeadZone_upper_zone1_hole = 4;
495 Double_t XPoints_DeadZone_upper_zone1_hole[NPoints_DeadZone_upper_zone1_hole];
496 Double_t YPoints_DeadZone_upper_zone1_hole[NPoints_DeadZone_upper_zone1_hole];
497
498 XPoints_DeadZone_upper_zone1_hole[0] = XShiftOfModules[0] + XPosition - BeamHoleRadius;
499 XPoints_DeadZone_upper_zone1_hole[1] = XShiftOfModules[0] + XPosition - BeamHoleRadius;
500 XPoints_DeadZone_upper_zone1_hole[2] = XShiftOfModules[0] + XPosition + 0.0;
501 XPoints_DeadZone_upper_zone1_hole[3] = XShiftOfModules[0] + XPosition + 0.0;
502
503 YPoints_DeadZone_upper_zone1_hole[0] = YShiftOfModules[0] + YPosition - YModuleSize_Plane163x45 * 0.5;
504 YPoints_DeadZone_upper_zone1_hole[1] =
506 YPoints_DeadZone_upper_zone1_hole[2] =
508 YPoints_DeadZone_upper_zone1_hole[3] = YShiftOfModules[0] + YPosition - YModuleSize_Plane163x45 * 0.5;
509
510 upper_layer_zone1.AddDeadZone(NPoints_DeadZone_upper_zone1_hole, XPoints_DeadZone_upper_zone1_hole,
511 YPoints_DeadZone_upper_zone1_hole);
512
513 // dead zone for upper layer in zone 1 (triangle)
514 const Int_t NPoints_DeadZone_upper_zone1_triang = 3;
515 Double_t XPoints_DeadZone_upper_zone1_triang[NPoints_DeadZone_upper_zone1_triang];
516 Double_t YPoints_DeadZone_upper_zone1_triang[NPoints_DeadZone_upper_zone1_triang];
517
518 XPoints_DeadZone_upper_zone1_triang[0] = XShiftOfModules[0] + XPosition - XSlopeHotZoneSize_Plane163x45[1];
519 XPoints_DeadZone_upper_zone1_triang[1] = XShiftOfModules[0] + XPosition - XSlopeHotZoneSize_Plane163x45[1];
520 XPoints_DeadZone_upper_zone1_triang[2] = XShiftOfModules[0] + XPosition - XSlopeHotZoneSize_Plane163x45[0];
521
522 YPoints_DeadZone_upper_zone1_triang[0] = YShiftOfModules[0] + YPosition - YModuleSize_Plane163x45 * 0.5;
523 YPoints_DeadZone_upper_zone1_triang[1] =
525 YPoints_DeadZone_upper_zone1_triang[2] = YShiftOfModules[0] + YPosition - YModuleSize_Plane163x45 * 0.5;
526
527 upper_layer_zone1.AddDeadZone(NPoints_DeadZone_upper_zone1_triang, XPoints_DeadZone_upper_zone1_triang,
528 YPoints_DeadZone_upper_zone1_triang);
529
530 //----------------------------------------------------------------------
531
532 Modules[0]->AddStripLayer(lower_layer_zone0);
533 Modules[0]->AddStripLayer(upper_layer_zone0);
534 Modules[0]->AddStripLayer(lower_layer_zone1);
535 Modules[0]->AddStripLayer(upper_layer_zone1);
536 }
537 //--------------------------------------------------------------------------
538
539 // module 1 (right) --------------------------------------------------------------
540 {
541 Double_t DriftGapThickness = 0.3;
542 Double_t FirstTransferGapThickness = 0.25;
543 Double_t SecondTransferGapThickness = 0.2;
544 Double_t InductionGapThickness = 0.15;
545
546 Modules[1] =
547 new BmnGemStripModule(ZPosition + ZShiftOfModules[1], EDriftDirection, DriftGapThickness,
548 FirstTransferGapThickness, SecondTransferGapThickness, InductionGapThickness);
549
550 // zone 0 (big) ---------------------------------------------------------
551
552 // lower strip layer (zone 0) -------------------------------------------
553 BmnGemStripLayer lower_layer_zone0(
556
557 lower_layer_zone0.SetStripNumberingOrder(RightToLeft);
558 lower_layer_zone0.SetStripNumberingBorders(LeftBottom, RightTop);
559
560 // dead zone for lower layer in zone 0
561 const Int_t NPoints_DeadZone_lower_zone0 = 4;
562 Double_t XPoints_DeadZone_lower_zone0[NPoints_DeadZone_lower_zone0];
563 Double_t YPoints_DeadZone_lower_zone0[NPoints_DeadZone_lower_zone0];
564
565 XPoints_DeadZone_lower_zone0[0] = XShiftOfModules[1] + XPosition + 0.0;
566 XPoints_DeadZone_lower_zone0[1] = XShiftOfModules[1] + XPosition + 0.0;
567 XPoints_DeadZone_lower_zone0[2] = XShiftOfModules[1] + XPosition + XRectHotZoneSize_Plane163x45;
568 XPoints_DeadZone_lower_zone0[3] = XShiftOfModules[1] + XPosition + XRectHotZoneSize_Plane163x45;
569
570 YPoints_DeadZone_lower_zone0[0] = YShiftOfModules[1] + YPosition - YModuleSize_Plane163x45 * 0.5;
571 YPoints_DeadZone_lower_zone0[1] =
573 YPoints_DeadZone_lower_zone0[2] =
575 YPoints_DeadZone_lower_zone0[3] = YShiftOfModules[1] + YPosition - YModuleSize_Plane163x45 * 0.5;
576
577 lower_layer_zone0.AddDeadZone(NPoints_DeadZone_lower_zone0, XPoints_DeadZone_lower_zone0,
578 YPoints_DeadZone_lower_zone0);
579 //----------------------------------------------------------------------
580
581 // upper strip layer (zone 0) -------------------------------------------
582 BmnGemStripLayer upper_layer_zone0(
585
586 upper_layer_zone0.SetStripNumberingOrder(RightToLeft);
587 upper_layer_zone0.SetStripNumberingBorders(LeftBottom, RightTop);
588
589 // dead zone for upper layer in zone 0
590 const Int_t NPoints_DeadZone_upper_zone0 = 4;
591 Double_t XPoints_DeadZone_upper_zone0[NPoints_DeadZone_upper_zone0];
592 Double_t YPoints_DeadZone_upper_zone0[NPoints_DeadZone_upper_zone0];
593
594 XPoints_DeadZone_upper_zone0[0] = XShiftOfModules[1] + XPosition + 0.0;
595 XPoints_DeadZone_upper_zone0[1] = XShiftOfModules[1] + XPosition + 0.0;
596 XPoints_DeadZone_upper_zone0[2] = XShiftOfModules[1] + XPosition + XSlopeHotZoneSize_Plane163x45[0];
597 XPoints_DeadZone_upper_zone0[3] = XShiftOfModules[1] + XPosition + XSlopeHotZoneSize_Plane163x45[1];
598
599 YPoints_DeadZone_upper_zone0[0] = YShiftOfModules[1] + YPosition - YModuleSize_Plane163x45 * 0.5;
600 YPoints_DeadZone_upper_zone0[1] =
602 YPoints_DeadZone_upper_zone0[2] =
604 YPoints_DeadZone_upper_zone0[3] = YShiftOfModules[1] + YPosition - YModuleSize_Plane163x45 * 0.5;
605
606 upper_layer_zone0.AddDeadZone(NPoints_DeadZone_upper_zone0, XPoints_DeadZone_upper_zone0,
607 YPoints_DeadZone_upper_zone0);
608 //----------------------------------------------------------------------
609
610 // lower strip layer (zone 1) -------------------------------------------
615
616 lower_layer_zone1.SetStripNumberingOrder(RightToLeft);
617 lower_layer_zone1.SetStripNumberingBorders(LeftBottom, RightTop);
618
619 // dead zone for lower layer in zone 1 (hole)
620 const Int_t NPoints_DeadZone_lower_zone1 = 4;
621 Double_t XPoints_DeadZone_lower_zone1[NPoints_DeadZone_lower_zone1];
622 Double_t YPoints_DeadZone_lower_zone1[NPoints_DeadZone_lower_zone1];
623
624 XPoints_DeadZone_lower_zone1[0] = XShiftOfModules[1] + XPosition + 0.0;
625 XPoints_DeadZone_lower_zone1[1] = XShiftOfModules[1] + XPosition + 0.0;
626 XPoints_DeadZone_lower_zone1[2] = XShiftOfModules[1] + XPosition + BeamHoleRadius;
627 XPoints_DeadZone_lower_zone1[3] = XShiftOfModules[1] + XPosition + BeamHoleRadius;
628
629 YPoints_DeadZone_lower_zone1[0] = YShiftOfModules[1] + YPosition - YModuleSize_Plane163x45 * 0.5;
630 YPoints_DeadZone_lower_zone1[1] =
632 YPoints_DeadZone_lower_zone1[2] =
634 YPoints_DeadZone_lower_zone1[3] = YShiftOfModules[1] + YPosition - YModuleSize_Plane163x45 * 0.5;
635
636 lower_layer_zone1.AddDeadZone(NPoints_DeadZone_lower_zone1, XPoints_DeadZone_lower_zone1,
637 YPoints_DeadZone_lower_zone1);
638 //----------------------------------------------------------------------
639
640 // upper strip layer (zone 1) -------------------------------------------
645
646 upper_layer_zone1.SetStripNumberingOrder(RightToLeft);
648
649 // dead zone for upper layer in zone 1 (hole)
650 const Int_t NPoints_DeadZone_upper_zone1_hole = 4;
651 Double_t XPoints_DeadZone_upper_zone1_hole[NPoints_DeadZone_upper_zone1_hole];
652 Double_t YPoints_DeadZone_upper_zone1_hole[NPoints_DeadZone_upper_zone1_hole];
653
654 XPoints_DeadZone_upper_zone1_hole[0] = XShiftOfModules[1] + XPosition + 0.0;
655 XPoints_DeadZone_upper_zone1_hole[1] = XShiftOfModules[1] + XPosition + 0.0;
656 XPoints_DeadZone_upper_zone1_hole[2] = XShiftOfModules[1] + XPosition + BeamHoleRadius;
657 XPoints_DeadZone_upper_zone1_hole[3] = XShiftOfModules[1] + XPosition + BeamHoleRadius;
658
659 YPoints_DeadZone_upper_zone1_hole[0] = YShiftOfModules[1] + YPosition - YModuleSize_Plane163x45 * 0.5;
660 YPoints_DeadZone_upper_zone1_hole[1] =
662 YPoints_DeadZone_upper_zone1_hole[2] =
664 YPoints_DeadZone_upper_zone1_hole[3] = YShiftOfModules[1] + YPosition - YModuleSize_Plane163x45 * 0.5;
665
666 upper_layer_zone1.AddDeadZone(NPoints_DeadZone_upper_zone1_hole, XPoints_DeadZone_upper_zone1_hole,
667 YPoints_DeadZone_upper_zone1_hole);
668
669 // dead zone for upper layer in zone 1 (triangle)
670 const Int_t NPoints_DeadZone_upper_zone1_triang = 3;
671 Double_t XPoints_DeadZone_upper_zone1_triang[NPoints_DeadZone_upper_zone1_triang];
672 Double_t YPoints_DeadZone_upper_zone1_triang[NPoints_DeadZone_upper_zone1_triang];
673
674 XPoints_DeadZone_upper_zone1_triang[0] = XShiftOfModules[1] + XPosition + XSlopeHotZoneSize_Plane163x45[1];
675 XPoints_DeadZone_upper_zone1_triang[1] = XShiftOfModules[1] + XPosition + XSlopeHotZoneSize_Plane163x45[0];
676 XPoints_DeadZone_upper_zone1_triang[2] = XShiftOfModules[1] + XPosition + XSlopeHotZoneSize_Plane163x45[1];
677
678 YPoints_DeadZone_upper_zone1_triang[0] = YShiftOfModules[1] + YPosition - YModuleSize_Plane163x45 * 0.5;
679 YPoints_DeadZone_upper_zone1_triang[1] =
681 YPoints_DeadZone_upper_zone1_triang[2] =
683
684 upper_layer_zone1.AddDeadZone(NPoints_DeadZone_upper_zone1_triang, XPoints_DeadZone_upper_zone1_triang,
685 YPoints_DeadZone_upper_zone1_triang);
686
687 //----------------------------------------------------------------------
688
689 Modules[1]->AddStripLayer(lower_layer_zone0);
690 Modules[1]->AddStripLayer(upper_layer_zone0);
691 Modules[1]->AddStripLayer(lower_layer_zone1);
692 Modules[1]->AddStripLayer(upper_layer_zone1);
693 }
694 return;
695}
int Int_t
double Double_t
@ LeftTop
@ RightBottom
@ LeftBottom
@ RightTop
@ RightToLeft
@ LeftToRight
@ UpperStripLayer
@ LowerStripLayer
Bool_t SetStripNumberingOrder(StripNumberingDirection strip_direction)
Bool_t AddDeadZone(Int_t n_points, Double_t *x_points, Double_t *y_points)
Bool_t SetStripNumberingBorders(Double_t x_left, Double_t y_left, Double_t x_right, Double_t y_right)
BmnGemStripConfiguration::GEM_CONFIG fCurrentConfig
BmnGemStripStation_RunSummer2016(Int_t iStation, Double_t xpos_station, Double_t ypos_station, Double_t zpos_station, Double_t beamradius, BmnGemStripConfiguration::GEM_CONFIG config)
BmnGemStripModule ** Modules
@ BackwardZAxisEDrift
@ ForwardZAxisEDrift
const Double_t ZModuleShifts[NStations][NMaxModules]
const Double_t YModuleShifts[NStations][NMaxModules]
const Double_t XModuleShifts[NStations][NMaxModules]