Project
Loading...
Searching...
No Matches
PCBSupport.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_MFT_PCBSUPPORT_H_
17#define ALICEO2_MFT_PCBSUPPORT_H_
18
19#include "TGeoVolume.h"
20#include "TGeoMatrix.h"
21#include "TGeoBBox.h"
22#include "TGeoCompositeShape.h"
23#include "TGeoTube.h"
24#include "TGeoCone.h"
25#include "TGeoArb8.h"
26#include "TGeoBoolNode.h"
27#include "TMath.h"
28#include "TGeoManager.h"
29#include "TGeoVolume.h"
30#include <fairlogger/Logger.h>
31
32class TGeoVolume;
33class TGeoCompositeShape;
34
35namespace o2
36{
37namespace mft
38{
39
41{
42
43 public:
44 PCBSupport();
45 ~PCBSupport() = default;
46 TGeoVolumeAssembly* create(Int_t kHalf, Int_t disk);
47
48 private:
49 void initParameters();
50 TGeoVolumeAssembly* mHalfDisk;
51 TGeoMedium* mPCBMediumCu;
52 TGeoMedium* mPCBMediumFR4;
53 TGeoBBox* mSomeBox;
54 TGeoTube* mSomeTube;
55 TGeoArb8* mSomeArb;
56
57 TGeoSubtraction* mSomeSubtraction;
58 TGeoUnion* mSomeUnion;
59 TGeoTranslation* mSomeTranslation;
60 TGeoCompositeShape* mPCBCu;
61 TGeoCompositeShape* mPCBFR4;
62
63 Double_t mCuThickness; //Cu layer thickness
64 Double_t mFR4Thickness; //FR4 layer thickness
65 Double_t mPCBRad[5]; // Radius of each PCB disk
66 Double_t mDiskGap; //gap between half disks
67 Double_t mPhi0;
68 Double_t mPhi1;
69 Double_t mT_delta; //Excess to remove to avoid coplanar surfaces that causes visualization glitches and overlaps
70 Int_t mNumberOfBoxCuts[5]; // Number of box cuts in each PCB
71 Double_t (*mBoxCuts[5])[4]; // Box cuts on each PCB
72 Int_t mNumberOfBoxAdd[5]; // Number of box added to each PCB
73 Double_t (*mBoxAdd[5])[4]; // Box added to each PCB
74 Int_t mNumberOfHoles[5]; // Number of Holes in each PCB
75 Double_t (*mHoles[5])[3]; // Holes on each PCB
76
77 ClassDefNV(PCBSupport, 1);
78};
79} // namespace mft
80} // namespace o2
81
82#endif
TGeoVolumeAssembly * create(Int_t kHalf, Int_t disk)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...