156 std::unique_ptr<Geometry> Geom;
159 std::unique_ptr<PlasmaMLPALLASGeometryMessenger> fGeometryMessenger;
163 G4Material *Material;
166 G4int fStatusDisplayGeometry=0;
167 G4int fStatusDisplayCollimators=0;
168 G4int fStatusDisplayQuadrupoles=0;
169 G4int fStatusMapBField=0;
172 G4double fConstantDipoleBField =0.4*CLHEP::tesla;
173 G4double fQ1Length = 0.1*CLHEP::m;
174 G4double fQ2Length = 0.1*CLHEP::m;
175 G4double fQ3Length = 0.2*CLHEP::m;
176 G4double fQ4Length = 0.1*CLHEP::m;
177 G4double fQ1Gradient =0.0*CLHEP::tesla/CLHEP::m;
178 G4double fQ2Gradient =0.0*CLHEP::tesla/CLHEP::m;
179 G4double fQ3Gradient =0.0*CLHEP::tesla/CLHEP::m;
180 G4double fQ4Gradient =0.0*CLHEP::tesla/CLHEP::m;
181 G4double fSourceQ1Distance =0.152*CLHEP::m;
182 G4double fQ1Q2Distance = 0.168*CLHEP::m;
183 G4double fQ2Q3Distance = 0.23*CLHEP::m;
184 G4double fQ3Q4Distance = 0.751*CLHEP::m;
185 G4double fSourceCollimatorsDistance = 3000*CLHEP::mm;
188 G4VisAttributes *invis =
nullptr;
189 G4VisAttributes *white =
nullptr;
190 G4VisAttributes *gray =
nullptr;
191 G4VisAttributes *black =
nullptr;
192 G4VisAttributes *red =
nullptr;
193 G4VisAttributes *orange =
nullptr;
194 G4VisAttributes *yellow =
nullptr;
195 G4VisAttributes *green =
nullptr;
196 G4VisAttributes *cyan =
nullptr;
197 G4VisAttributes *blue =
nullptr;
198 G4VisAttributes *magenta =
nullptr;
201 G4LogicalVolume *LogicalWorld=
nullptr;
202 G4LogicalVolume *LogicalHolder=
nullptr;
203 G4LogicalVolume *LogicalFakeDiagsChamber=
nullptr;
204 G4LogicalVolume *LogicalPALLAS_QuadrupoleQ3=
nullptr;
205 G4LogicalVolume *LogicalPALLAS_QuadrupoleQ4=
nullptr;
206 G4LogicalVolume *LogicalPALLAS_ASMRemovalChamber=
nullptr;
207 G4LogicalVolume *LogicalPALLAS_BreadboardRemovalChamber=
nullptr;
208 G4LogicalVolume *LogicalPALLAS_ChassisRemovalChamber=
nullptr;
209 G4LogicalVolume *LogicalPALLAS_TubeISO1=
nullptr;
210 G4LogicalVolume *LogicalPALLAS_TubeISO2=
nullptr;
211 G4LogicalVolume *LogicalPALLAS_ATH500_DN100=
nullptr;
212 G4LogicalVolume *LogicalPALLAS_BaseMarbre=
nullptr;
213 G4LogicalVolume *LogicalPALLAS_ChambreISO=
nullptr;
214 G4LogicalVolume *LogicalPALLAS_QuadrupoleQ1=
nullptr;
215 G4LogicalVolume *LogicalPALLAS_QuadrupoleQ2=
nullptr;
216 G4LogicalVolume *LogicalPALLAS_Croix=
nullptr;
217 G4LogicalVolume *LogicalPALLAS_LIFHublot1=
nullptr;
218 G4LogicalVolume *LogicalPALLAS_LIFHublot2=
nullptr;
219 G4LogicalVolume *LogicalPALLAS_LIFHublot3=
nullptr;
220 G4LogicalVolume *LogicalPALLAS_LIFHublot4=
nullptr;
221 G4LogicalVolume *LogicalPALLAS_LIFHublot5=
nullptr;
222 G4LogicalVolume *LogicalPALLAS_LIF_IBX_DD=
nullptr;
223 G4LogicalVolume *LogicalPALLAS_LIF_SQLT=
nullptr;
224 G4LogicalVolume *LogicalPALLAS_MarbreBreadboard1=
nullptr;
225 G4LogicalVolume *LogicalPALLAS_MarbreBreadboard2=
nullptr;
226 G4LogicalVolume *LogicalPALLAS_OptoMeK=
nullptr;
227 G4LogicalVolume *LogicalPALLAS_ASMPoutre=
nullptr;
228 G4LogicalVolume *LogicalPALLAS_StationYAG=
nullptr;
229 G4LogicalVolume *LogicalPALLAS_BlindageBD=
nullptr;
230 G4LogicalVolume *LogicalPALLAS_BlindageCBD=
nullptr;
231 G4LogicalVolume *LogicalPALLAS_ChambreDipole=
nullptr;
232 G4LogicalVolume *LogicalPALLAS_ChassisDipoleYAG=
nullptr;
233 G4LogicalVolume *LogicalPALLAS_DiagsChamber=
nullptr;
234 G4LogicalVolume *LogicalPALLAS_Dipole=
nullptr;
235 G4LogicalVolume *LogicalPALLAS_BS1YAG=
nullptr;
236 G4LogicalVolume *LogicalPALLAS_BSPEC1YAG=
nullptr;
237 G4LogicalVolume *LogicalPALLAS_S4Tube=
nullptr;
238 G4LogicalVolume *LogicalPALLAS_S4Tube1=
nullptr;
239 G4LogicalVolume *LogicalPALLAS_S4Soufflet=
nullptr;
240 G4LogicalVolume *LogicalPALLAS_S4Croix=
nullptr;
241 G4LogicalVolume *LogicalPALLAS_Assemblage2Cellules=
nullptr;
242 G4LogicalVolume *LogicalPALLAS_Collimator_H1=
nullptr;
243 G4LogicalVolume *LogicalPALLAS_Collimator_H2=
nullptr;
244 G4LogicalVolume *LogicalPALLAS_Collimator_Arbre_H=
nullptr;
245 G4LogicalVolume *LogicalPALLAS_Collimator_Bride_H=
nullptr;
246 G4LogicalVolume *LogicalPALLAS_Collimator_Palier_H=
nullptr;
247 G4LogicalVolume *LogicalPALLAS_Collimator_Soufflet_H=
nullptr;
248 G4LogicalVolume *LogicalPALLAS_Collimator_V1=
nullptr;
249 G4LogicalVolume *LogicalPALLAS_Collimator_V2=
nullptr;
250 G4LogicalVolume *LogicalPALLAS_Collimator_Arbre_V=
nullptr;
251 G4LogicalVolume *LogicalPALLAS_Collimator_Bride_V=
nullptr;
252 G4LogicalVolume *LogicalPALLAS_Collimator_Palier_V=
nullptr;
253 G4LogicalVolume *LogicalPALLAS_Collimator_Soufflet_V=
nullptr;
256 G4VPhysicalVolume *PhysicalWorld=
nullptr;
257 G4VPhysicalVolume *PhysicalHolder=
nullptr;
258 G4VPhysicalVolume *PhysicalFakeDiagsChamber=
nullptr;
259 G4VPhysicalVolume *PhysicalPALLAS_QuadrupoleQ3=
nullptr;
260 G4VPhysicalVolume *PhysicalPALLAS_QuadrupoleQ4=
nullptr;
261 G4VPhysicalVolume *PhysicalPALLAS_ASMRemovalChamber=
nullptr;
262 G4VPhysicalVolume *PhysicalPALLAS_BreadboardRemovalChamber=
nullptr;
263 G4VPhysicalVolume *PhysicalPALLAS_ChassisRemovalChamber=
nullptr;
264 G4VPhysicalVolume *PhysicalPALLAS_TubeISO1=
nullptr;
265 G4VPhysicalVolume *PhysicalPALLAS_TubeISO2=
nullptr;
266 G4VPhysicalVolume *PhysicalPALLAS_ATH500_DN100=
nullptr;
267 G4VPhysicalVolume *PhysicalPALLAS_BaseMarbre=
nullptr;
268 G4VPhysicalVolume *PhysicalPALLAS_ChambreISO=
nullptr;
269 G4VPhysicalVolume *PhysicalPALLAS_QuadrupoleQ1=
nullptr;
270 G4VPhysicalVolume *PhysicalPALLAS_QuadrupoleQ2=
nullptr;
271 G4VPhysicalVolume *PhysicalPALLAS_Croix=
nullptr;
272 G4VPhysicalVolume *PhysicalPALLAS_LIFHublot1=
nullptr;
273 G4VPhysicalVolume *PhysicalPALLAS_LIFHublot2=
nullptr;
274 G4VPhysicalVolume *PhysicalPALLAS_LIFHublot3=
nullptr;
275 G4VPhysicalVolume *PhysicalPALLAS_LIFHublot4=
nullptr;
276 G4VPhysicalVolume *PhysicalPALLAS_LIFHublot5=
nullptr;
277 G4VPhysicalVolume *PhysicalPALLAS_LIF_IBX_DD=
nullptr;
278 G4VPhysicalVolume *PhysicalPALLAS_LIF_SQLT=
nullptr;
279 G4VPhysicalVolume *PhysicalPALLAS_MarbreBreadboard1=
nullptr;
280 G4VPhysicalVolume *PhysicalPALLAS_MarbreBreadboard2=
nullptr;
281 G4VPhysicalVolume *PhysicalPALLAS_OptoMeK=
nullptr;
282 G4VPhysicalVolume *PhysicalPALLAS_ASMPoutre=
nullptr;
283 G4VPhysicalVolume *PhysicalPALLAS_StationYAG=
nullptr;
284 G4VPhysicalVolume *PhysicalPALLAS_BlindageBD=
nullptr;
285 G4VPhysicalVolume *PhysicalPALLAS_BlindageCBD=
nullptr;
286 G4VPhysicalVolume *PhysicalPALLAS_ChambreDipole=
nullptr;
287 G4VPhysicalVolume *PhysicalPALLAS_ChassisDipoleYAG=
nullptr;
288 G4VPhysicalVolume *PhysicalPALLAS_DiagsChamber=
nullptr;
289 G4VPhysicalVolume *PhysicalPALLAS_Dipole=
nullptr;
290 G4VPhysicalVolume *PhysicalPALLAS_BS1YAG=
nullptr;
291 G4VPhysicalVolume *PhysicalPALLAS_BSPEC1YAG=
nullptr;
292 G4VPhysicalVolume *PhysicalPALLAS_S4Tube=
nullptr;
293 G4VPhysicalVolume *PhysicalPALLAS_S4Tube1=
nullptr;
294 G4VPhysicalVolume *PhysicalPALLAS_S4Soufflet=
nullptr;
295 G4VPhysicalVolume *PhysicalPALLAS_S4Croix=
nullptr;
296 G4VPhysicalVolume *PhysicalPALLAS_Assemblage2Cellules=
nullptr;
297 G4VPhysicalVolume *PhysicalPALLAS_Collimator_H1=
nullptr;
298 G4VPhysicalVolume *PhysicalPALLAS_Collimator_H2=
nullptr;
299 G4VPhysicalVolume *PhysicalPALLAS_Collimator_Arbre_H=
nullptr;
300 G4VPhysicalVolume *PhysicalPALLAS_Collimator_Bride_H=
nullptr;
301 G4VPhysicalVolume *PhysicalPALLAS_Collimator_Palier_H=
nullptr;
302 G4VPhysicalVolume *PhysicalPALLAS_Collimator_Soufflet_H=
nullptr;
303 G4VPhysicalVolume *PhysicalPALLAS_Collimator_V1=
nullptr;
304 G4VPhysicalVolume *PhysicalPALLAS_Collimator_V2=
nullptr;
305 G4VPhysicalVolume *PhysicalPALLAS_Collimator_Arbre_V=
nullptr;
306 G4VPhysicalVolume *PhysicalPALLAS_Collimator_Bride_V=
nullptr;
307 G4VPhysicalVolume *PhysicalPALLAS_Collimator_Palier_V=
nullptr;
308 G4VPhysicalVolume *PhysicalPALLAS_Collimator_Soufflet_V=
nullptr;
311 G4RotationMatrix DontRotate;
312 G4RotationMatrix Flip;
313 G4RotationMatrix* RotationMatrix;
317 static G4ThreadLocal G4FieldManager* fFieldMgr;