Project
Loading...
Searching...
No Matches
V3Services.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
16
17#ifndef ALICEO2_ITS_UPGRADEV3SERVICES_H_
18#define ALICEO2_ITS_UPGRADEV3SERVICES_H_
19
20#include <TGeoManager.h> // for gGeoManager
21#include "Rtypes.h" // for Double_t, Int_t, Bool_t, etc
22#include "ITSSimulation/V11Geometry.h" // for V11Geometry
23
24class TGeoXtru;
25
26class TGeoCombiTrans;
27
28class TGeoCompositeShape;
29
30class TGeoVolume;
31
32namespace o2
33{
34namespace its
35{
36
38class V3Services : public V11Geometry
39{
40
41 public:
42 // Default constructor
43 V3Services();
44
45 // Standard constructor
46 V3Services(const char* name);
47
49 V3Services(const V3Services&) = default;
50
52 V3Services& operator=(const V3Services&) = default;
53
55 ~V3Services() override;
56
59 TGeoVolume* createIBEndWheelsSideA(const TGeoManager* mgr = gGeoManager);
60
63 TGeoVolume* createIBEndWheelsSideC(const TGeoManager* mgr = gGeoManager);
64
67 TGeoVolume* createCYSSAssembly(const TGeoManager* mgr = gGeoManager);
68
72 void createMBEndWheelsSideA(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
73
77 void createMBEndWheelsSideC(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
78
82 void createOBEndWheelsSideA(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
83
87 void createOBEndWheelsSideC(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
88
92 void createOBConeSideA(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
93
97 void createOBConeSideC(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
98
102 void createOBCYSSCylinder(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
103
107 void createIBGammaConvWire(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
108
112 void createAllITSServices(TGeoVolume* motherVolume, const TGeoManager* mgr = gGeoManager);
113
117 void createOBGammaConvWire(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
118
119 private:
124 void ibEndWheelSideA(const Int_t iLay, TGeoVolume* endWheel, const TGeoManager* mgr = gGeoManager);
125
130 void ibEndWheelSideC(const Int_t iLay, TGeoVolume* endWheel, const TGeoManager* mgr = gGeoManager);
131
134 TGeoXtru* ibEndWheelARibShape(const Int_t iLay);
135
138 TGeoVolume* ibCyssCylinder(const TGeoManager* mgr = gGeoManager);
139
142 TGeoVolume* ibCyssCone(const TGeoManager* mgr = gGeoManager);
143
146 TGeoVolume* ibCyssFlangeSideA(const TGeoManager* mgr = gGeoManager);
147
150 TString ibCreateHollowsCyssFlangeSideA(const Double_t zlen);
151
154 TGeoVolume* ibCyssFlangeSideC(const TGeoManager* mgr = gGeoManager);
155
160 void obEndWheelSideA(const Int_t iLay, TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
161
166 void mbEndWheelSideC(const Int_t iLay, TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
167
172 void obEndWheelSideC(const Int_t iLay, TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
173
177 void obConeSideA(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
178
182 void obConeSideC(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
183
187 void obConeTraysSideA(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
188
192 void obCYSS11(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
193
197 void ibConvWire(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
198
200 TGeoCompositeShape* ibConvWireIntSupport(const Bool_t left);
201
203 TGeoCompositeShape* ibConvWireOutSupport();
204
208 void obConvWire(TGeoVolume* mother, const TGeoManager* mgr = gGeoManager);
209
210 // Parameters
211 static constexpr Int_t sNumberInnerLayers = 3;
212 static constexpr Int_t sNumberMiddlLayers = 2;
213 static constexpr Int_t sNumberOuterLayers = 2;
214
215 // Common parameters for IB services
216 static const Double_t sIBWheelACZdist;
217 static const Double_t sIBCYSSFlangeCZPos;
218
219 // Common parameters for OB services
220 static const Double_t sOBWheelThickness;
221 static const Double_t sMBWheelsZpos;
222 static const Double_t sOBWheelsZpos;
223 static const Double_t sOBConesZpos;
224
225 ClassDefOverride(V3Services, 0); // ITS v3 support geometry
226};
227} // namespace its
228} // namespace o2
229
230#endif
Definition of the V11Geometry class.
This class defines the Geometry for the Services of the ITS Upgrade using TGeo.
Definition V3Services.h:39
~V3Services() override
Default destructor.
void createMBEndWheelsSideC(TGeoVolume *mother, const TGeoManager *mgr=gGeoManager)
TGeoVolume * createCYSSAssembly(const TGeoManager *mgr=gGeoManager)
TGeoVolume * createIBEndWheelsSideC(const TGeoManager *mgr=gGeoManager)
void createOBConeSideA(TGeoVolume *mother, const TGeoManager *mgr=gGeoManager)
void createMBEndWheelsSideA(TGeoVolume *mother, const TGeoManager *mgr=gGeoManager)
void createOBCYSSCylinder(TGeoVolume *mother, const TGeoManager *mgr=gGeoManager)
void createIBGammaConvWire(TGeoVolume *mother, const TGeoManager *mgr=gGeoManager)
V3Services(const V3Services &)=default
Copy constructor.
void createOBConeSideC(TGeoVolume *mother, const TGeoManager *mgr=gGeoManager)
void createOBEndWheelsSideC(TGeoVolume *mother, const TGeoManager *mgr=gGeoManager)
void createOBEndWheelsSideA(TGeoVolume *mother, const TGeoManager *mgr=gGeoManager)
void createAllITSServices(TGeoVolume *motherVolume, const TGeoManager *mgr=gGeoManager)
void createOBGammaConvWire(TGeoVolume *mother, const TGeoManager *mgr=gGeoManager)
V3Services & operator=(const V3Services &)=default
Assignment operator.
TGeoVolume * createIBEndWheelsSideA(const TGeoManager *mgr=gGeoManager)
GLuint const GLchar * name
Definition glcorearb.h:781
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...