Project
Loading...
Searching...
No Matches
V3Cage.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
15
16#ifndef ALICEO2_ITS_UPGRADEV3CAGE_H_
17#define ALICEO2_ITS_UPGRADEV3CAGE_H_
18
19#include <TGeoManager.h> // for gGeoManager
20#include "Rtypes.h" // for Double_t, Int_t, Bool_t, etc
21#include "ITSSimulation/V11Geometry.h" // for V11Geometry
22
23class TGeoXtru;
24
25class TGeoCombiTrans;
26
27class TGeoVolume;
28
29class TGeoCompositeShape;
30
31namespace o2
32{
33namespace its
34{
35
37class V3Cage : public V11Geometry
38{
39
40 public:
41 // Default constructor
42 V3Cage();
43
44 // Standard constructor
45 V3Cage(const char* name);
46
48 V3Cage(const V3Cage&) = default;
49
51 V3Cage& operator=(const V3Cage&) = default;
52
54 ~V3Cage() override;
55
59 void createAndPlaceCage(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
60
61 private:
64 TGeoVolume* createCageCover(const TGeoManager* mgr = gGeoManager);
65
68 TGeoVolume* createCageCoverRib(const TGeoManager* mgr = gGeoManager);
69
72 TGeoVolume* createCageSidePanel(const TGeoManager* mgr = gGeoManager);
73
75 TGeoCompositeShape* createCageSidePanelCoreFoil(const Double_t thickness, const char* prefix);
76
78 TGeoCompositeShape* createCageSidePanelRail(const Double_t length, const Int_t index);
79
82 TGeoVolume* createCageEndCap(const TGeoManager* mgr = gGeoManager);
83
86 TGeoCompositeShape* createCageEndCapCableCross(const TGeoManager* mgr = gGeoManager);
87
90 TGeoVolume* createBeamPipeSupport(const TGeoManager* mgr = gGeoManager);
91
94 TGeoCompositeShape* createBPSuppLowerCollar();
95
98 TGeoCompositeShape* createBPSuppUpperCollar();
99
102 TGeoCompositeShape* createBPSuppCollarBeam();
103
106 TGeoCompositeShape* createBPSuppBracket();
107
110 TGeoCompositeShape* createBPSuppClamp();
111
114 TGeoVolume* createCageClosingCross(const TGeoManager* mgr = gGeoManager);
115
119 void createAndPlaceMFTRailsInsideCage(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
120
124 TGeoVolume* createMFTRailsPair(const TGeoMedium* motmed, const TGeoManager* mgr = gGeoManager);
125
126 // Parameters
127 static const Double_t sCageYInBarrel;
128
129 // Cover element (each)
130 static const Double_t sCageCoverZLength;
131 static const Double_t sCageCoverRint;
132 static const Double_t sCageCoverRext;
133 static const Double_t sCageCoverXWidth;
134 static const Double_t sCageCoverXBaseInt;
135 static const Double_t sCageCoverXBaseExt;
136 static const Double_t sCageCoverYBaseHeight;
137 static const Double_t sCageCoverCoreRint;
138 static const Double_t sCageCoverCoreRext;
139 static const Double_t sCageCoverSheetThick;
140 static const Double_t sCageCoverRibZLength;
141 static const Double_t sCageCoverRibRint;
142 static const Double_t sCageCoverRibRext;
143 static const Double_t sCageCoverRibXWidth;
144 static const Double_t sCageCoverRibXBaseInt;
145 static const Double_t sCageCoverRibYBaseHi;
146 static const Double_t sCageCoverRibFoldHi;
147
148 // Cage Side Panels and Rails
149 static const Double_t sCageSidePanelLength;
150 static const Double_t sCageSidePanelWidth;
151 static const Double_t sCageSidePanelFoilThick;
152 static const Double_t sCageSidePanelCoreThick;
153 static const Double_t sCageSidePanelXDist;
154 static const Double_t sCageSidePanelRail1Len;
155 static const Double_t sCageSidePanelRail2Len;
156 static const Double_t sCageSidePanelRail3Len;
157 static const Double_t sCageSidePanelRailWidth;
158 static const Double_t sCageSidePanelRailSpan;
159 static const Double_t sCageSidePanelRailHThik;
160 static const Double_t sCageSidePanelRailVThik;
161 static const Double_t sCageSidePanelGuideLen;
162 static const Double_t sCageSidePanelGuideInHi;
163 static const Double_t sCageSidePanelGuideWide;
164 static const Double_t sCageSidePanelGuidThik1;
165 static const Double_t sCageSidePanelGuidThik2;
166 static const Double_t sCageSidePanelMidBarWid;
167 static const Double_t sCageSidePanelSidBarWid;
168
169 static const Double_t sCageSidePanelRail1Ypos[2];
170 static const Double_t sCageSidePanelRail2Ypos;
171 static const Double_t sCageSidePanelRail3Ypos[3];
172
173 // Cage End Cap
174 static const Double_t sCageEndCapDext;
175 static const Double_t sCageEndCapDint;
176 static const Double_t sCageEndCapFoamThick;
177 static const Double_t sCageEndCapFabThick;
178 static const Double_t sCageEndCapXWidth;
179 static const Double_t sCageEndCapSideHoleR;
180 static const Double_t sCageEndCapSideHoleX;
181 static const Double_t sCageEndCapCableCutWid;
182 static const Double_t sCageEndCapCableCutR;
183 static const Double_t sCageEndCapCableCutPhi;
184 static const Double_t sCageECRoundCrossDmin;
185 static const Double_t sCageECRoundCrossDmid;
186 static const Double_t sCageECRoundCrossDmax;
187 static const Double_t sCageECRoundCrossZext;
188 static const Double_t sCageECRoundCrossZint;
189 static const Double_t sCageECCableCrosTotHi;
190 static const Double_t sCageECCableCrosTotZ;
191 static const Double_t sCageECCableCrosInXWid;
192 static const Double_t sCageECCableCrosInThik;
193 static const Double_t sCageECCableCrosInZLen;
194 static const Double_t sCageECCableCrosSidWid;
195
196 // Beam Pipe Support (A Side)
197 static const Double_t sBPSuppCollarIntD;
198 static const Double_t sBPSuppCollarExtD;
199 static const Double_t sBPSuppCollarBushD;
200 static const Double_t sBPSuppUpperCollarLen;
201 static const Double_t sBPSuppUpperCollarHei;
202 static const Double_t sBPSuppLowerCollarLen;
203 static const Double_t sBPSuppLowerCollarTlX;
204 static const Double_t sBPSuppLowCollHolDist;
205 static const Double_t sBPSuppLowCollTailHei;
206 static const Double_t sBPSuppCollarBeamLen;
207 static const Double_t sBPSuppCollarBeamWid;
208 static const Double_t sBPSuppCollarBeamHei;
209 static const Double_t sBPSuppBracketTotLen;
210 static const Double_t sBPSuppBracketWidth;
211 static const Double_t sBPSuppBracketInLen;
212 static const Double_t sBPSuppBracketInHei;
213 static const Double_t sBPSuppBracketTailLen;
214 static const Double_t sBPSuppBracketTailHei;
215 static const Double_t sBPSuppBrktCentHoleX;
216 static const Double_t sBPSuppBrktCentHoleD;
217 static const Double_t sBPSuppBrktLatHoleX;
218 static const Double_t sBPSuppBrktLatHoleD;
219 static const Double_t sBPSuppBrktLatHoleW;
220 static const Double_t sBPSuppBrktLatHoleH;
221 static const Double_t sBPSuppBrktHolesY;
222 static const Double_t sBPSuppCollarM4High;
223 static const Double_t sBPSuppCollarM4Diam;
224 static const Double_t sBPSuppCollarM4XDist;
225 static const Double_t sBPSuppCollarM4ZPos;
226 static const Double_t sBPSuppClampTotLen;
227 static const Double_t sBPSuppClampTotWid;
228 static const Double_t sBPSuppClampTotHei;
229 static const Double_t sBPSuppClampLatThick;
230 static const Double_t sBPSuppClampShelfLen;
231 static const Double_t sBPSuppClampShelfHei;
232 static const Double_t sBPSuppClampsXDist;
233 static const Double_t sBPSuppClampInsDmin;
234 static const Double_t sBPSuppClampInsDmax;
235 static const Double_t sBPSuppClampInsH;
236 static const Double_t sBPSuppClampInsXPos;
237 static const Double_t sBPSuppClampInsZPos;
238 static const Double_t sBPSuppClampShimLen;
239 static const Double_t sBPSuppClampShimWid;
240 static const Double_t sBPSuppClampShimThick;
241 static const Double_t sBPSuppClampM5High;
242 static const Double_t sBPSuppClampM5Diam;
243 static const Double_t sBPSuppClampM5ZPos;
244 static const Double_t sBPSuppZPos;
245
246 // Closing Cross
247 static const Double_t sCageCrossXWidthTot;
248 static const Double_t sCageCrossXWidthExt;
249 static const Double_t sCageCrossXWidthInt;
250 static const Double_t sCageCrossYHeightTot;
251 static const Double_t sCageCrossYHeightInt;
252 static const Double_t sCageCrossYMid;
253 static const Double_t sCageCrossZLength;
254 static const Double_t sCageCrossBarThick;
255 static const Double_t sCageCrossBarPhi;
256
257 // MFT Rails inside the Cage
258 static const Double_t sCageMFTRailZLen;
259 static const Double_t sCageMFTRailTotWidth;
260 static const Double_t sCageMFTRailExtWidth;
261 static const Double_t sCageMFTRailIntWidth;
262 static const Double_t sCageMFTRailBaseWidth;
263 static const Double_t sCageMFTRailTotHeight;
264 static const Double_t sCageMFTRailExtHeight;
265 static const Double_t sCageMFTRailIntHeight;
266 static const Double_t sCageMFTRailsXDist;
267
268 ClassDefOverride(V3Cage, 0); // ITS v3 support geometry
269};
270} // namespace its
271} // namespace o2
272
273#endif
Definition of the V11Geometry class.
This class defines the Geometry for the Cage of the ITS Upgrade using TGeo.
Definition V3Cage.h:38
V3Cage(const V3Cage &)=default
Copy constructor.
~V3Cage() override
Default destructor.
V3Cage & operator=(const V3Cage &)=default
Assignment operator.
void createAndPlaceCage(TGeoVolume *mother, const TGeoManager *mgr=gGeoManager)
Definition V3Cage.cxx:194
GLuint index
Definition glcorearb.h:781
GLuint const GLchar * name
Definition glcorearb.h:781
GLuint GLsizei GLsizei * length
Definition glcorearb.h:790
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...