Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 #include "DetectorConstruction0.hh" 27 #include "CLHEP/Units/SystemOfUnits.h" 28 29 //....oooOO0OOooo........oooOO0OOooo........oo 30 31 void add_EE(G4int aEEid, std::vector<std::pair 32 G4double aAirBefore, G4double aAir 33 aDzMap.push_back(std::make_pair("Fe_absorber 34 aAirBefore)) 35 aDzMap.push_back(std::make_pair("Pb_absorber 36 aDzMap.push_back(std::make_pair("Fe_absorber 37 aDzMap.push_back(std::make_pair("PCB", aAirM 38 aDzMap.push_back(std::make_pair("Cu_baseplat 39 aDzMap.push_back(std::make_pair("Si_wafer", 40 aDzMap.push_back(std::make_pair("Cu_baseplat 41 aDzMap.push_back(std::make_pair("Kapton_laye 42 if (aEEid == 11 || aEEid == 12) 43 aDzMap.push_back(std::make_pair("Cu_basepl 44 aDzMap.push_back(std::make_pair("CuW_basepla 45 if (aEEid == 13) 46 aDzMap.push_back(std::make_pair("CuW_basep 47 if (aEEid == 14) 48 aDzMap.push_back(std::make_pair("CuW_basep 49 aDzMap.push_back(std::make_pair("Cu_absorber 50 if (aEEid == 13) 51 aDzMap.push_back(std::make_pair("CuW_basep 52 if (aEEid == 14) 53 aDzMap.push_back(std::make_pair("CuW_basep 54 aDzMap.push_back(std::make_pair("CuW_basepla 55 if (aEEid == 11 || aEEid == 12) 56 aDzMap.push_back(std::make_pair("Cu_basepl 57 aDzMap.push_back(std::make_pair("Kapton_laye 58 aDzMap.push_back(std::make_pair("Cu_baseplat 59 aDzMap.push_back(std::make_pair("Si_wafer", 60 aDzMap.push_back(std::make_pair("Cu_baseplat 61 aDzMap.push_back(std::make_pair("PCB", 0)); 62 } 63 64 //....oooOO0OOooo........oooOO0OOooo........oo 65 66 void add_FH(G4int aFHid, std::vector<std::pair 67 G4double aAirBefore, G4double aAir 68 std::string layout = ""; 69 if (aFHid < 10) 70 layout = "_DAISY"; 71 if (!(aFHid == 1 || aFHid == 7)) 72 aDzMap.push_back(std::make_pair("Fe_absorb 73 aAirBefore 74 aDzMap.push_back( 75 std::make_pair("PCB" + layout, aAirMid)) 76 aDzMap.push_back( 77 std::make_pair("Cu_baseplate_175um" + la 78 aDzMap.push_back(std::make_pair("Si_wafer" + 79 if (aFHid == 5) { 80 aDzMap.push_back(std::make_pair("PCB_thin" 81 } 82 if (aFHid != 5) { 83 aDzMap.push_back( 84 std::make_pair("Cu_baseplate_25um" + l 85 aDzMap.push_back(std::make_pair("Kapton_la 86 } 87 if (aFHid == 6) { 88 aDzMap.push_back( 89 std::make_pair("Cu_baseplate_25um" + l 90 aDzMap.push_back(std::make_pair("Kapton_la 91 } 92 if (aFHid != 5 && aFHid < 9) 93 aDzMap.push_back(std::make_pair("Cu_basepl 94 if (aFHid == 9 || aFHid == 10) 95 aDzMap.push_back(std::make_pair("CuW_basep 96 if (aFHid != 10) 97 aDzMap.push_back(std::make_pair("Cu_basepl 98 aDzMap.push_back(std::make_pair("Cu_absorber 99 } 100 101 //....oooOO0OOooo........oooOO0OOooo........oo 102 103 void DetectorConstruction0( 104 std::vector<std::pair<G4String, G4double>> 105 G4double &aViewpoint) { 106 aViewpoint = 0.75 * CLHEP::m; 107 108 // map means: position this material startin 109 // z += <second> 110 // z = z0+ 0.5 * thickness[<first>] 111 112 // world (and beam) starts at -45 m 113 114 G4double firstOffset = 2.6 * CLHEP::cm; 115 // if no beamline is present - shift by beam 116 if (aDzMap.size() == 0) { 117 firstOffset += 45.0015 * CLHEP::m; 118 } 119 120 aDzMap.push_back(std::make_pair("Al_case_thi 121 aDzMap.push_back(std::make_pair("Al_case", 0 122 123 // EE1 124 add_EE(1, aDzMap, 119.7 * CLHEP::mm, 4.7 * C 125 126 // EE2 127 add_EE(2, aDzMap, 7.7 * CLHEP::mm, 3.7 * CLH 128 129 // EE3 130 add_EE(3, aDzMap, 7.7 * CLHEP::mm, 3.7 * CLH 131 132 // EE4 133 add_EE(4, aDzMap, 8.7 * CLHEP::mm, 3.7 * CLH 134 135 // EE5 136 add_EE(5, aDzMap, 8.7 * CLHEP::mm, 3.7 * CLH 137 138 // EE6 139 add_EE(6, aDzMap, 8.7 * CLHEP::mm, 3.7 * CLH 140 141 // EE7 142 add_EE(7, aDzMap, 6.7 * CLHEP::mm, 3.7 * CLH 143 144 // EE8 145 add_EE(8, aDzMap, 6.7 * CLHEP::mm, 3.7 * CLH 146 147 // EE9 148 add_EE(9, aDzMap, 6.7 * CLHEP::mm, 3.7 * CLH 149 150 // EE10 151 add_EE(10, aDzMap, 6.7 * CLHEP::mm, 3.7 * CL 152 153 // EE11 154 add_EE(11, aDzMap, 6.7 * CLHEP::mm, 5.5 * CL 155 156 // EE12 157 add_EE(12, aDzMap, 9.5 * CLHEP::mm, 5.5 * CL 158 159 // EE13 160 add_EE(13, aDzMap, 9.5 * CLHEP::mm, 3.145 * 161 162 // EE14 163 add_EE(14, aDzMap, 10.09 * CLHEP::mm, 3.095 164 165 aDzMap.push_back(std::make_pair("Steel_case_ 166 aDzMap.push_back(std::make_pair("Al_case", 4 167 168 // beginning of FH 169 aDzMap.push_back(std::make_pair("Steel_case" 170 171 // FH1 172 add_FH(1, aDzMap, 0, 8.8 * CLHEP::mm); 173 174 // FH2 175 add_FH(2, aDzMap, 8 * CLHEP::mm, 8.8 * CLHEP 176 177 // FH3 178 add_FH(3, aDzMap, 3 * CLHEP::mm, 13.8 * CLHE 179 180 // FH4 181 add_FH(4, aDzMap, 5 * CLHEP::mm, 12.8 * CLHE 182 183 // FH5 184 add_FH(5, aDzMap, 7 * CLHEP::mm, 9.8 * CLHEP 185 186 // FH6 187 add_FH(6, aDzMap, 6 * CLHEP::mm, 10.7 * CLHE 188 189 // cases 190 aDzMap.push_back(std::make_pair("Steel_case" 191 aDzMap.push_back(std::make_pair("Fe_absorber 192 aDzMap.push_back(std::make_pair("Steel_case" 193 // FH7 194 add_FH(7, aDzMap, 0, 8.8 * CLHEP::mm); 195 196 // FH8 197 add_FH(8, aDzMap, 7 * CLHEP::mm, 16.8 * CLHE 198 199 // FH9 200 add_FH(9, aDzMap, 9 * CLHEP::mm, 14.8 * CLHE 201 202 // FH10 203 add_FH(10, aDzMap, 10 * CLHEP::mm, 18 * CLHE 204 205 // FH11 206 add_FH(11, aDzMap, 8 * CLHEP::mm, 17 * CLHEP 207 208 // FH12 209 add_FH(12, aDzMap, 7 * CLHEP::mm, 17 * CLHEP 210 211 aDzMap.push_back(std::make_pair("Steel_case" 212 213 // AHCAL 214 aDzMap.push_back(std::make_pair("Fe_absorber 215 for (int l = 0; l < 39; l++) { 216 aDzMap.push_back(std::make_pair("Al_absorb 217 aDzMap.push_back(std::make_pair("AHCAL_SiP 218 aDzMap.push_back(std::make_pair("Al_absorb 219 aDzMap.push_back(std::make_pair("Fe_absorb 220 } 221 aDzMap.push_back(std::make_pair("Fe_absorber 222 aDzMap.push_back(std::make_pair("Fe_absorber 223 aDzMap.push_back(std::make_pair("Al_absorber 224 aDzMap.push_back(std::make_pair("AHCAL_SiPM_ 225 aDzMap.push_back(std::make_pair("Al_absorber 226 aDzMap.push_back(std::make_pair("Fe_absorber 227 } 228