EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
fbgt.C
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file fbgt.C
1 
2 // Meaningless number for now; fine;
3 #define _VERSION_ 1
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 
13 // Comment out if no mounting rings not wanted;
14 //#define _WITH_MOUNTING_RINGS_
15 
17 {
18  // Load basic libraries;
19  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
20 
21  // Configure SBS GEMs; they will be used as a sample for other modules;
22  GemModule *sbs = new GemModule();
23 
24  sbs->mActiveWindowBottomWidth = 110.0 - 80.0;
25  sbs->mActiveWindowTopWidth = 270.0 + 80.0 + 80.0;
26  sbs->mActiveWindowHeight = 300.0 + 2*150.0 + 100.0;
27 
28  // Frame parameters accoring to Kondo's sbsCrossSection.pdf file;
29  sbs->mFrameThickness = 18.0;
30  sbs->mFrameBottomEdgeWidth = 30.0;
31  sbs->mFrameTopEdgeWidth = 30.0;
32  sbs->mFrameSideEdgeWidth = 8.0;
33 
34  // FIXME: put aluminum layer later as well;
35  sbs->mEntranceWindowMaterial = "GemKapton";
36  sbs->mEntranceWindowThickness = 0.025;
37 
38  // Use evaristo.pdf p.10 for the foil parameters:
39  // - drift foil : 50um kapton + 3um copper;
40  // - GEM foil : 30um kapton + 3um copper (80% area fraction);
41  // - readout foils : 30um kapton + 3um copper total;
42  sbs->mDriftFoilKaptonThickness = 0.050;
43  sbs->mDriftFoilCopperThickness = 0.003;
44 
45  sbs->mGemFoilAreaFraction = 0.80;
46  sbs->mGemFoilKaptonThickness = 0.030;
47  sbs->mGemFoilCopperThickness = 0.003;
48 
49  sbs->mReadoutG10Thickness = 0.0;
50  sbs->mReadoutKaptonThickness = 0.030;
51  sbs->mReadoutCopperThickness = 0.003;
52 
53  // 3mm thick Nomex honeycomb for SBS GEMs;
54  sbs->mReadoutSupportMaterial = "GemNomex";
55  sbs->mReadoutSupportThickness = 3.000;
56 
57  // FIXME: check on that!;
58  sbs->mGasMixture = "arco27030";
59 
60  sbs->mEntranceRegionLength = 3.000;
61  sbs->mDriftRegionLength = 3.000;
62  // Assume triple GEM layout;
63  sbs->mFirstTransferRegionLength = 2.000;
64  sbs->mSecondTransferRegionLength = 2.000;
65  sbs->mInductionRegionLength = 2.000;
66 
67  for(unsigned fb=0; fb<2; fb++) {
68  GemGeoParData *fbgt = new GemGeoParData(fb ? "BGT" : "FGT", _VERSION_, _SUBVERSION_);
69 
70  if (fb) {
71  TGeoRotation *rw = new TGeoRotation();
72  rw->RotateY(180);
73 
74  fbgt->SetTopVolumeTransformation(new TGeoCombiTrans(0.0, 0.0, 0.0, rw));
75  } //if
76 
77 #ifdef _TEST_VERSION_
78  fbgt->SetTestGeometryFlag();
79 #endif
80 
81 #ifdef _WITH_MOUNTING_RINGS_
82  fbgt->WithMountingRings();
83 
84  fbgt->mMountingRingBeamLineThickness = 5.00;
85  fbgt->mMountingRingRadialThickness = 5.00;
86  //fbgt->mMountingRingRadialOffset = 3.00;
87 #endif
88 
89  fbgt->AddWheel(sbs, 12, 370. + 50, 1030.0);
90  fbgt->AddWheel(sbs, 12, 370. + 50, 1100.0);
91  fbgt->AddWheel(sbs, 12, 370. + 50, 1170.0);
92 
93  fbgt->AttachSourceFile("./fbgt.C");
94 
95  //
96  // Fine, at this point structure is completely defined -> code it in ROOT;
97  //
98 
99  // Some colorification, please;
100  fbgt->GetColorTable()->AddPatternMatch("FrameEdge", kGray);
101  fbgt->GetColorTable()->AddPatternMatch("EntranceWindow", kOrange);
102  fbgt->GetColorTable()->AddPatternMatch("ReadoutSupport", kOrange);
103 
104  fbgt->ConstructGeometry();
105  } //for fb
106 
107  // Yes, always exit;
108  exit(0);
109 }
110