forked from AliceO2Group/AliceO2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTRKServices.h
More file actions
84 lines (76 loc) · 3.46 KB
/
TRKServices.h
File metadata and controls
84 lines (76 loc) · 3.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
#ifndef O2_TRK_SERVICES_H
#define O2_TRK_SERVICES_H
////// Inputs from F. Reidt, 11-2023
// Material 1 Fraction X_0 (cm) Material 2 Fraction X_0 (cm)
// Fiber SiO2 0,5 12,29 PE 0,5 45
// Power bundle, no jacket Cu 0,09 1,44 PE 0,91 45
// Power bundle Cu 0,06 1,44 PE 0,94 45
// Water bundle PU 0,56 19 H2O 0,44 36,08
// Water bundle disk PU 0,44 19 H2O 0,56 36,08
#include <TGeoManager.h>
#include <FairModule.h>
namespace o2
{
namespace trk
{
class TRKServices : public FairModule
{
enum class Orientation { kASide = 1,
kCSide = -1 };
// TRK services overview: three componenets
//
// ===================================================
// ============|| Outer ||============
// =========|| || Tracker || ||=========
// || ||===||-------------||===|| ||
// || || Inner + Mid || ||
// || || Tracker || ||
// || ||===||-------------||===|| ||
// =========|| || || ||========= ---> createDisksServices
// ============|| ||============ ---> createMiddleBarrelServices
// =================================================== ---> createOuterServices
public:
TRKServices() = default;
void createMaterials();
void createServices(TGeoVolume* motherVolume);
void createMiddleServices(TGeoVolume* motherVolume);
void createOuterDisksServices(TGeoVolume* motherVolume);
void createOuterBarrelServices(TGeoVolume* motherVolume);
void createMLServicesPeacock(TGeoVolume* motherVolume);
void createOTServicesPeacock(TGeoVolume* motherVolume);
void createVacuumCompositeShape();
void excavateFromVacuum(TString shapeToExcavate);
void registerVacuum(TGeoVolume* motherVolume);
protected:
// Vacuum
TString mVacuumCompositeFormula;
// Coldplate
float mColdPlateRMin; // cm
float mColdPlateZLength; // cm
float mColdPlateThickness; // cm
float mColdPlateX0;
// Services
float mFiberArea = 7.1e-2; // cm^2
float mPowerBundleArea = 1.13; // cm^2
float mFiberComposition[2] = {0.5, 0.5}; // SiO2, PE
float mPowerBundleComposition[2] = {0.08, 0.92}; // Cu, PE (with jacket)
float mPowerBundleJacketComposition[2] = {0.06, 0.94}; // Cu, PE
float mWaterBundleComposition[2] = {0.56, 0.44}; // PU, H2O
float mWaterBundleDiskComposition[2] = {0.44, 0.56}; // PU, H2O
// float mMiddleDiskThickness = 1.0; // cm
std::vector<float> mCableFanWeights = {0.5, 0.3, 0.2}; // relative weights of the fan layers
ClassDefOverride(TRKServices, 1);
};
} // namespace trk
} // namespace o2
#endif // O2_TRK_SERVICES_H