EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
FiberParData.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file FiberParData.h
1
//
2
// AYK (ayk@bnl.gov), 2013/06/12
3
//
4
// Fiber layout class (shared between FEMC & CEMC);
5
//
6
7
#include <TObject.h>
8
#include <TString.h>
9
10
#ifndef _FIBER_PAR_DATA_
11
#define _FIBER_PAR_DATA_
12
13
class
FiberTowerLayer
:
public
TObject
14
{
15
public
:
16
FiberTowerLayer
():
mThickness
(0.0),
mOffset
(0.0) {};
17
FiberTowerLayer
(
double
thickness
,
const
char
*media):
18
mThickness
(thickness),
mOffset
(0.0),
mMedia
(media) {};
19
~FiberTowerLayer
() {};
20
21
double
mThickness
;
22
TString
mMedia
;
23
24
double
mOffset
;
25
26
// Well, don't want to calculate this stuff every time new;
27
TString
mLayerName
;
28
TString
mFiberCladdingName
;
29
TString
mFiberCoreName
;
30
31
void
SetLayerNames
(
const
char
*
layer
,
const
char
*cladding,
const
char
*core) {
32
mLayerName
= TString(layer);
33
mFiberCladdingName
= TString(cladding);
34
mFiberCoreName
= TString(core);
35
};
36
37
ClassDef
(
FiberTowerLayer
,3);
38
};
39
40
class
FiberParData
:
public
TObject
41
{
42
public
:
43
FiberParData
():
mFiberNumPerRow
(0),
mFiberRowNum
(0),
mFiberCoreDiameter
(0.0),
44
mFiberSpacingX
(0.0),
mFiberSpacingY
(0.0),
mEdgeSafetyDistance
(0.0),
45
mFiberCladdingThickness
(0.0),
mOuterDiameter
(0.0),
mFiberX0offset
(0.0),
46
mFiberY0offset
(0.0) {};
47
~FiberParData
() {};
48
49
//
50
// -> Do not mind to have these variables public?; yes, they are pure
51
// data containers, so set()/get() methods really make no sense;
52
// same true for FiberTowerLayer class;
53
//
54
55
// Honeycomb-like structure;
56
Int_t
mFiberNumPerRow
;
// number of fibers in a row
57
Int_t
mFiberRowNum
;
// number of fiber rows
58
Double_t
mFiberCoreDiameter
;
// fiber sensitive core diameter
59
Double_t
mFiberCladdingThickness
;
// fiber cladding thickness
60
// May either be given (as it happens in practice when one has to round
61
// all numbers to 0.0001") or taken ideal from cell size;
62
Double_t
mFiberSpacingX
;
// X-distance between neighboring fibers
63
// May either be given (as it happens in practice when one has to round
64
// all numbers to 0.0001") or recalculated from H-spacing as sqrt(3)/2;
65
Double_t
mFiberSpacingY
;
// Y-distance between fiber rows
66
Double_t
mEdgeSafetyDistance
;
// min distance from fiber center to the mesh edge
67
68
// Well, sort of redundant; yet have no problem to put this stuff in here;
69
Double_t
mOuterDiameter
;
// fiber outer diamater;
70
Double_t
mFiberX0offset
;
// 1-st fiber X-offset with respect to the tower edge
71
Double_t
mFiberY0offset
;
// 1-st fiber Y-offset with respect to the tower edge
72
73
std::vector<FiberTowerLayer>
mLayers
;
// layer description (epoxy, mesh, epoxy+W)
74
75
// Well, this one want to pack inot a method;
76
void
AddLayer
(
double
thickness
,
const
char
*media) {
77
mLayers
.push_back(
FiberTowerLayer
(thickness, media));
78
};
79
80
unsigned
GetLayerNum
()
const
{
return
mLayers
.size(); };;
81
const
FiberTowerLayer
*
GetLayer
(
unsigned
id
) {
82
return
id
<
mLayers
.size() ? &
mLayers
[id] : 0;
83
};
84
85
ClassDef
(
FiberParData
,7);
86
};
87
88
class
TowerParData
:
public
TObject
89
{
90
public
:
91
TowerParData
():
mLightGuideUpstreamWidth
(0.0),
mLightGuideLength
(0.0),
mSiliconPadThickness
(0.0),
92
mTowerShellLength
(0.0),
mSensorWidth
(0.0),
mSensorThickness
(0.0),
mSensorToSensorDistance
(0.0),
93
mG10Thickness
(0.0),
mG10Width
(0.0) {};
94
~TowerParData
() {};
95
96
//
97
// These parameters make sense no matter the "main" tower material is smeared
98
// or represented by fibers, etc;
99
//
100
101
Double_t
mLightGuideUpstreamWidth
;
// light guide pyramid width at the sensor side
102
Double_t
mLightGuideLength
;
// light guide length
103
Double_t
mSiliconPadThickness
;
// thickness of silicon pad between light guide and sensors
104
Double_t
mTowerShellLength
;
// overall length of tower air shell assembly (see *.C script)
105
106
Double_t
mSensorWidth
;
// SiPM square sensor side length
107
Double_t
mSensorThickness
;
// sensor thickness; should not really matter
108
Double_t
mSensorToSensorDistance
;
// distance between sensors in a 2x2 setup
109
110
Double_t
mG10Thickness
;
// sensor PCB (equivalent) thickness
111
Double_t
mG10Width
;
// a (square) sensor PCB side width
112
113
ClassDef
(
TowerParData
,4);
114
};
115
116
#endif
EicRoot
blob
master
eic
calorimetry
FiberParData.h
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:35
using
1.8.2 with
EIC GitHub integration