File indexing completed on 2025-01-31 09:22:21
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #include "DetectorConstruction0.hh"
0027 #include "CLHEP/Units/SystemOfUnits.h"
0028
0029
0030
0031 void add_EE(G4int aEEid, std::vector<std::pair<G4String, G4double>> &aDzMap,
0032 G4double aAirBefore, G4double aAirMid) {
0033 aDzMap.push_back(std::make_pair("Fe_absorber_EE",
0034 aAirBefore));
0035 aDzMap.push_back(std::make_pair("Pb_absorber_EE", 0));
0036 aDzMap.push_back(std::make_pair("Fe_absorber_EE", 0));
0037 aDzMap.push_back(std::make_pair("PCB", aAirMid));
0038 aDzMap.push_back(std::make_pair("Cu_baseplate_175um", 0.));
0039 aDzMap.push_back(std::make_pair("Si_wafer", 0.));
0040 aDzMap.push_back(std::make_pair("Cu_baseplate_25um", 0.));
0041 aDzMap.push_back(std::make_pair("Kapton_layer", 0.));
0042 if (aEEid == 11 || aEEid == 12)
0043 aDzMap.push_back(std::make_pair("Cu_baseplate", 0.));
0044 aDzMap.push_back(std::make_pair("CuW_baseplate", 0.));
0045 if (aEEid == 13)
0046 aDzMap.push_back(std::make_pair("CuW_baseplate_550um", 0.));
0047 if (aEEid == 14)
0048 aDzMap.push_back(std::make_pair("CuW_baseplate_610um", 0.));
0049 aDzMap.push_back(std::make_pair("Cu_absorber_EE", 0.));
0050 if (aEEid == 13)
0051 aDzMap.push_back(std::make_pair("CuW_baseplate_610um", 0.));
0052 if (aEEid == 14)
0053 aDzMap.push_back(std::make_pair("CuW_baseplate_710um", 0.));
0054 aDzMap.push_back(std::make_pair("CuW_baseplate", 0.));
0055 if (aEEid == 11 || aEEid == 12)
0056 aDzMap.push_back(std::make_pair("Cu_baseplate", 0.));
0057 aDzMap.push_back(std::make_pair("Kapton_layer", 0.));
0058 aDzMap.push_back(std::make_pair("Cu_baseplate_25um", 0.));
0059 aDzMap.push_back(std::make_pair("Si_wafer", 0.));
0060 aDzMap.push_back(std::make_pair("Cu_baseplate_175um", 0.));
0061 aDzMap.push_back(std::make_pair("PCB", 0));
0062 }
0063
0064
0065
0066 void add_FH(G4int aFHid, std::vector<std::pair<G4String, G4double>> &aDzMap,
0067 G4double aAirBefore, G4double aAirMid) {
0068 std::string layout = "";
0069 if (aFHid < 10)
0070 layout = "_DAISY";
0071 if (!(aFHid == 1 || aFHid == 7))
0072 aDzMap.push_back(std::make_pair("Fe_absorber_FH",
0073 aAirBefore));
0074 aDzMap.push_back(
0075 std::make_pair("PCB" + layout, aAirMid));
0076 aDzMap.push_back(
0077 std::make_pair("Cu_baseplate_175um" + layout, 0.));
0078 aDzMap.push_back(std::make_pair("Si_wafer" + layout, 0.));
0079 if (aFHid == 5) {
0080 aDzMap.push_back(std::make_pair("PCB_thin" + layout, 0));
0081 }
0082 if (aFHid != 5) {
0083 aDzMap.push_back(
0084 std::make_pair("Cu_baseplate_25um" + layout, 0.));
0085 aDzMap.push_back(std::make_pair("Kapton_layer" + layout, 0.));
0086 }
0087 if (aFHid == 6) {
0088 aDzMap.push_back(
0089 std::make_pair("Cu_baseplate_25um" + layout, 0.));
0090 aDzMap.push_back(std::make_pair("Kapton_layer" + layout, 0.));
0091 }
0092 if (aFHid != 5 && aFHid < 9)
0093 aDzMap.push_back(std::make_pair("Cu_baseplate" + layout, 0.));
0094 if (aFHid == 9 || aFHid == 10)
0095 aDzMap.push_back(std::make_pair("CuW_baseplate" + layout, 0.));
0096 if (aFHid != 10)
0097 aDzMap.push_back(std::make_pair("Cu_baseplate" + layout, 0.));
0098 aDzMap.push_back(std::make_pair("Cu_absorber_FH", 0.));
0099 }
0100
0101
0102
0103 void DetectorConstruction0(
0104 std::vector<std::pair<G4String, G4double>> &aDzMap,
0105 G4double &aViewpoint) {
0106 aViewpoint = 0.75 * CLHEP::m;
0107
0108
0109
0110
0111
0112
0113
0114 G4double firstOffset = 2.6 * CLHEP::cm;
0115
0116 if (aDzMap.size() == 0) {
0117 firstOffset += 45.0015 * CLHEP::m;
0118 }
0119
0120 aDzMap.push_back(std::make_pair("Al_case_thick", firstOffset));
0121 aDzMap.push_back(std::make_pair("Al_case", 0));
0122
0123
0124 add_EE(1, aDzMap, 119.7 * CLHEP::mm, 4.7 * CLHEP::mm);
0125
0126
0127 add_EE(2, aDzMap, 7.7 * CLHEP::mm, 3.7 * CLHEP::mm);
0128
0129
0130 add_EE(3, aDzMap, 7.7 * CLHEP::mm, 3.7 * CLHEP::mm);
0131
0132
0133 add_EE(4, aDzMap, 8.7 * CLHEP::mm, 3.7 * CLHEP::mm);
0134
0135
0136 add_EE(5, aDzMap, 8.7 * CLHEP::mm, 3.7 * CLHEP::mm);
0137
0138
0139 add_EE(6, aDzMap, 8.7 * CLHEP::mm, 3.7 * CLHEP::mm);
0140
0141
0142 add_EE(7, aDzMap, 6.7 * CLHEP::mm, 3.7 * CLHEP::mm);
0143
0144
0145 add_EE(8, aDzMap, 6.7 * CLHEP::mm, 3.7 * CLHEP::mm);
0146
0147
0148 add_EE(9, aDzMap, 6.7 * CLHEP::mm, 3.7 * CLHEP::mm);
0149
0150
0151 add_EE(10, aDzMap, 6.7 * CLHEP::mm, 3.7 * CLHEP::mm);
0152
0153
0154 add_EE(11, aDzMap, 6.7 * CLHEP::mm, 5.5 * CLHEP::mm);
0155
0156
0157 add_EE(12, aDzMap, 9.5 * CLHEP::mm, 5.5 * CLHEP::mm);
0158
0159
0160 add_EE(13, aDzMap, 9.5 * CLHEP::mm, 3.145 * CLHEP::mm);
0161
0162
0163 add_EE(14, aDzMap, 10.09 * CLHEP::mm, 3.095 * CLHEP::mm);
0164
0165 aDzMap.push_back(std::make_pair("Steel_case_thick", 0));
0166 aDzMap.push_back(std::make_pair("Al_case", 44 * CLHEP::mm));
0167
0168
0169 aDzMap.push_back(std::make_pair("Steel_case", 0));
0170
0171
0172 add_FH(1, aDzMap, 0, 8.8 * CLHEP::mm);
0173
0174
0175 add_FH(2, aDzMap, 8 * CLHEP::mm, 8.8 * CLHEP::mm);
0176
0177
0178 add_FH(3, aDzMap, 3 * CLHEP::mm, 13.8 * CLHEP::mm);
0179
0180
0181 add_FH(4, aDzMap, 5 * CLHEP::mm, 12.8 * CLHEP::mm);
0182
0183
0184 add_FH(5, aDzMap, 7 * CLHEP::mm, 9.8 * CLHEP::mm);
0185
0186
0187 add_FH(6, aDzMap, 6 * CLHEP::mm, 10.7 * CLHEP::mm);
0188
0189
0190 aDzMap.push_back(std::make_pair("Steel_case", 4 * CLHEP::mm));
0191 aDzMap.push_back(std::make_pair("Fe_absorber_FH", 36 * CLHEP::mm));
0192 aDzMap.push_back(std::make_pair("Steel_case", 52 * CLHEP::mm));
0193
0194 add_FH(7, aDzMap, 0, 8.8 * CLHEP::mm);
0195
0196
0197 add_FH(8, aDzMap, 7 * CLHEP::mm, 16.8 * CLHEP::mm);
0198
0199
0200 add_FH(9, aDzMap, 9 * CLHEP::mm, 14.8 * CLHEP::mm);
0201
0202
0203 add_FH(10, aDzMap, 10 * CLHEP::mm, 18 * CLHEP::mm);
0204
0205
0206 add_FH(11, aDzMap, 8 * CLHEP::mm, 17 * CLHEP::mm);
0207
0208
0209 add_FH(12, aDzMap, 7 * CLHEP::mm, 17 * CLHEP::mm);
0210
0211 aDzMap.push_back(std::make_pair("Steel_case", 29 * CLHEP::mm));
0212
0213
0214 aDzMap.push_back(std::make_pair("Fe_absorber_AHCAL", 50.0 * CLHEP::cm));
0215 for (int l = 0; l < 39; l++) {
0216 aDzMap.push_back(std::make_pair("Al_absorber_AHCAL", 0.5 * CLHEP::cm));
0217 aDzMap.push_back(std::make_pair("AHCAL_SiPM_2x2HUB", 0.));
0218 aDzMap.push_back(std::make_pair("Al_absorber_AHCAL", 0.));
0219 aDzMap.push_back(std::make_pair("Fe_absorber_AHCAL", 0.5 * CLHEP::cm));
0220 }
0221 aDzMap.push_back(std::make_pair("Fe_absorber_AHCAL", 1.1 * CLHEP::cm));
0222 aDzMap.push_back(std::make_pair("Fe_absorber_AHCAL", 1.1 * CLHEP::cm));
0223 aDzMap.push_back(std::make_pair("Al_absorber_AHCAL", 0.5 * CLHEP::cm));
0224 aDzMap.push_back(std::make_pair("AHCAL_SiPM_2x2HUB", 0.));
0225 aDzMap.push_back(std::make_pair("Al_absorber_AHCAL", 0.));
0226 aDzMap.push_back(std::make_pair("Fe_absorber_AHCAL", 0.5 * CLHEP::cm));
0227 }