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
116 // Parameters
117 static const Double_t sCageYInBarrel;
118
119 // Cover element (each)
120 static const Double_t sCageCoverZLength;
121 static const Double_t sCageCoverRint;
122 static const Double_t sCageCoverRext;
123 static const Double_t sCageCoverXWidth;
124 static const Double_t sCageCoverXBaseInt;
125 static const Double_t sCageCoverXBaseExt;
126 static const Double_t sCageCoverYBaseHeight;
127 static const Double_t sCageCoverCoreRint;
128 static const Double_t sCageCoverCoreRext;
129 static const Double_t sCageCoverSheetThick;
130 static const Double_t sCageCoverRibZLength;
131 static const Double_t sCageCoverRibRint;
132 static const Double_t sCageCoverRibRext;
133 static const Double_t sCageCoverRibXWidth;
134 static const Double_t sCageCoverRibXBaseInt;
135 static const Double_t sCageCoverRibYBaseHi;
136 static const Double_t sCageCoverRibFoldHi;
137
138 // Cage Side Panels and Rails
139 static const Double_t sCageSidePanelLength;
140 static const Double_t sCageSidePanelWidth;
141 static const Double_t sCageSidePanelFoilThick;
142 static const Double_t sCageSidePanelCoreThick;
143 static const Double_t sCageSidePanelXDist;
144 static const Double_t sCageSidePanelRail1Len;
145 static const Double_t sCageSidePanelRail2Len;
146 static const Double_t sCageSidePanelRail3Len;
147 static const Double_t sCageSidePanelRailWidth;
148 static const Double_t sCageSidePanelRailSpan;
149 static const Double_t sCageSidePanelRailHThik;
150 static const Double_t sCageSidePanelRailVThik;
151 static const Double_t sCageSidePanelGuideLen;
152 static const Double_t sCageSidePanelGuideInHi;
153 static const Double_t sCageSidePanelGuideWide;
154 static const Double_t sCageSidePanelGuidThik1;
155 static const Double_t sCageSidePanelGuidThik2;
156 static const Double_t sCageSidePanelMidBarWid;
157 static const Double_t sCageSidePanelSidBarWid;
158
159 static const Double_t sCageSidePanelRail1Ypos[2];
160 static const Double_t sCageSidePanelRail2Ypos;
161 static const Double_t sCageSidePanelRail3Ypos[3];
162
163 // Cage End Cap
164 static const Double_t sCageEndCapDext;
165 static const Double_t sCageEndCapDint;
166 static const Double_t sCageEndCapFoamThick;
167 static const Double_t sCageEndCapFabThick;
168 static const Double_t sCageEndCapXWidth;
169 static const Double_t sCageEndCapSideHoleR;
170 static const Double_t sCageEndCapSideHoleX;
171 static const Double_t sCageEndCapCableCutWid;
172 static const Double_t sCageEndCapCableCutR;
173 static const Double_t sCageEndCapCableCutPhi;
174 static const Double_t sCageECRoundCrossDmin;
175 static const Double_t sCageECRoundCrossDmid;
176 static const Double_t sCageECRoundCrossDmax;
177 static const Double_t sCageECRoundCrossZext;
178 static const Double_t sCageECRoundCrossZint;
179 static const Double_t sCageECCableCrosTotHi;
180 static const Double_t sCageECCableCrosTotZ;
181 static const Double_t sCageECCableCrosInXWid;
182 static const Double_t sCageECCableCrosInThik;
183 static const Double_t sCageECCableCrosInZLen;
184 static const Double_t sCageECCableCrosSidWid;
185
186 // Beam Pipe Support (A Side)
187 static const Double_t sBPSuppCollarIntD;
188 static const Double_t sBPSuppCollarExtD;
189 static const Double_t sBPSuppCollarBushD;
190 static const Double_t sBPSuppUpperCollarLen;
191 static const Double_t sBPSuppUpperCollarHei;
192 static const Double_t sBPSuppLowerCollarLen;
193 static const Double_t sBPSuppLowerCollarTlX;
194 static const Double_t sBPSuppLowCollHolDist;
195 static const Double_t sBPSuppLowCollTailHei;
196 static const Double_t sBPSuppCollarBeamLen;
197 static const Double_t sBPSuppCollarBeamWid;
198 static const Double_t sBPSuppCollarBeamHei;
199 static const Double_t sBPSuppBracketTotLen;
200 static const Double_t sBPSuppBracketWidth;
201 static const Double_t sBPSuppBracketInLen;
202 static const Double_t sBPSuppBracketInHei;
203 static const Double_t sBPSuppBracketTailLen;
204 static const Double_t sBPSuppBracketTailHei;
205 static const Double_t sBPSuppBrktCentHoleX;
206 static const Double_t sBPSuppBrktCentHoleD;
207 static const Double_t sBPSuppBrktLatHoleX;
208 static const Double_t sBPSuppBrktLatHoleD;
209 static const Double_t sBPSuppBrktLatHoleW;
210 static const Double_t sBPSuppBrktLatHoleH;
211 static const Double_t sBPSuppBrktHolesY;
212 static const Double_t sBPSuppCollarM4High;
213 static const Double_t sBPSuppCollarM4Diam;
214 static const Double_t sBPSuppCollarM4XDist;
215 static const Double_t sBPSuppCollarM4ZPos;
216 static const Double_t sBPSuppClampTotLen;
217 static const Double_t sBPSuppClampTotWid;
218 static const Double_t sBPSuppClampTotHei;
219 static const Double_t sBPSuppClampLatThick;
220 static const Double_t sBPSuppClampShelfLen;
221 static const Double_t sBPSuppClampShelfHei;
222 static const Double_t sBPSuppClampsXDist;
223 static const Double_t sBPSuppClampInsDmin;
224 static const Double_t sBPSuppClampInsDmax;
225 static const Double_t sBPSuppClampInsH;
226 static const Double_t sBPSuppClampInsXPos;
227 static const Double_t sBPSuppClampInsZPos;
228 static const Double_t sBPSuppClampShimLen;
229 static const Double_t sBPSuppClampShimWid;
230 static const Double_t sBPSuppClampShimThick;
231 static const Double_t sBPSuppClampM5High;
232 static const Double_t sBPSuppClampM5Diam;
233 static const Double_t sBPSuppClampM5ZPos;
234 static const Double_t sBPSuppZPos;
235
236 // Closing Cross
237 static const Double_t sCageCrossXWidthTot;
238 static const Double_t sCageCrossXWidthExt;
239 static const Double_t sCageCrossXWidthInt;
240 static const Double_t sCageCrossYHeightTot;
241 static const Double_t sCageCrossYHeightInt;
242 static const Double_t sCageCrossYMid;
243 static const Double_t sCageCrossZLength;
244 static const Double_t sCageCrossBarThick;
245 static const Double_t sCageCrossBarPhi;
246
247 ClassDefOverride(V3Cage, 0); // ITS v3 support geometry
248};
249} // namespace its
250} // namespace o2
251
252#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:184
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 ...