forked from AliceO2Group/AliceO2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIOTOFBaseParam.h
More file actions
91 lines (78 loc) · 3.06 KB
/
Copy pathIOTOFBaseParam.h
File metadata and controls
91 lines (78 loc) · 3.06 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
85
86
87
88
89
90
91
// 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_IOTOF_BASEPARAM_H
#define O2_IOTOF_BASEPARAM_H
#include "CommonUtils/ConfigurableParam.h"
#include "CommonUtils/ConfigurableParamHelper.h"
namespace o2
{
namespace iotof
{
struct ChipSpecifics {
int NCols = 0;
int NRows = 0;
float PitchCol = 0.;
float PitchRow = 0.;
float PassiveEdgeReadOut = 0.;
float PassiveEdgeTop = 0.;
float PassiveEdgeSide = 0.;
float SensorLayerThicknessEff = 0.;
float SensorLayerThickness = 0.;
int NPixels() const { return NCols * NRows; }
float ActiveMatrixSizeCols() const { return PitchCol * NCols; }
float ActiveMatrixSizeRows() const { return PitchRow * NRows; }
float SensorSizeCols() const { return ActiveMatrixSizeCols() + 2 * PassiveEdgeSide; }
float SensorSizeRows() const { return ActiveMatrixSizeRows() + PassiveEdgeTop + PassiveEdgeReadOut; }
};
struct ITOFChipSpecifics : ChipSpecifics {
ITOFChipSpecifics()
{
NCols = 258;
NRows = 271;
PitchCol = 250.00e-4;
PitchRow = 100.00e-4;
SensorLayerThicknessEff = 50.e-4;
SensorLayerThickness = 50.e-4;
}
};
struct OTOFChipSpecifics : ChipSpecifics {
OTOFChipSpecifics()
{
NCols = 251;
NRows = 487;
PitchCol = 250.00e-4;
PitchRow = 100.00e-4;
PassiveEdgeSide = 106.48e-4;
SensorLayerThicknessEff = 50.e-4;
SensorLayerThickness = 50.e-4;
}
};
struct ITOFChipSpecificParam : public o2::conf::ConfigurableParamPromoter<ITOFChipSpecificParam, ITOFChipSpecifics> {
O2ParamDef(ITOFChipSpecificParam, "ITOFChipSpecific");
};
struct OTOFChipSpecificParam : public o2::conf::ConfigurableParamPromoter<OTOFChipSpecificParam, OTOFChipSpecifics> {
O2ParamDef(OTOFChipSpecificParam, "OTOFChipSpecific");
};
struct IOTOFBaseParam : public o2::conf::ConfigurableParamHelper<IOTOFBaseParam> {
bool enableInnerTOF = true; // Enable Inner TOF layer
bool enableOuterTOF = true; // Enable Outer TOF layer
bool enableForwardTOF = true; // Enable Forward TOF layer
bool enableBackwardTOF = true; // Enable Backward TOF layer
std::string detectorPattern = ""; // Layouts of the detector
bool segmentedInnerTOF = false; // If the inner TOF layer is segmented
bool segmentedOuterTOF = false; // If the outer TOF layer is segmented
float x2x0 = 0.02f; // thickness expressed in radiation length, for all layers for the moment
float sensorThickness = 0.0050f; // thickness of the sensor in cm, for all layers for the moment, the default is set to 50 microns
O2ParamDef(IOTOFBaseParam, "IOTOFBase");
};
} // namespace iotof
} // end namespace o2
#endif