# Macro file for musr.cc - Construct detector, set fields and other parameters. # Last modified by T. Shiroka: 17.03.2008 # # Corrected TD and MCP2 distances by T. Prokscha, 07.11.2008. # # How to run: musr 10xx.mac (append "idle" for prompt after running) # musr 10xx.mac > fname.txt (stores output on a txt file) # # Specify the geometry parameters in this file (all dimensions in mm) # a. Lines starting with hash marks "#" are comments # b Lines starting with #* are temporary comments. Remove/modify to change the configuration # c. Lines starting with /musr/command are commands for the executable program # d. Lines starting with /vis, /gun, etc. are common macro commands # e. Beam-line components are ordered from exp. area (MCP2) to trigger detector (TD) # # Syntax example (following /musr/command): # construct solid_type volume_name parameters_defining_solid material position mothers_name # (mothers_name starts with log_) # Examples # # Generate rotation matrix about n=(x,y,z) by th degrees # /musr/command rotation MName x y z th # # Construct a volume # /musr/command construct Type Name Material X Y Z MotherVolume RotationMatrix Sensitivity RootID [nofield] # Type - can be tubs (cylindrical), box, sphere etc. # Name - Just the name of the volume # - Depend on the Type you are creating # Material - Is the material in the volume, it can be G4_Galactic (vacuum), G4_PLASTIC_SC_VINYLTOLUENE (scintillator) etc. # X Y Z - The position vector relative to the MotherVolume # RotationMatrix - The rotation to be applied on the volume, it can be norot (no rotation) or other MName # Sensitivity - If the volume has a respones, it can be musr/ScintSD (detector), dead (no response) # RootID - An ID that will be saved in the root file for analysis # nofield - Obsolete, should be removed. # # Uniform field in volume # /musr/command globalfield FieldName half_x half_y half_z uniform X Y Z MotherVolume Bx By Bz Ex Ey Ez # FieldName - A simple name for the field # half_x half_y half_z - half lenghts of the box, within which the field is defined # X Y Z - Position vector relative to MotherVolume # MotherVolume - The volume containing the field # Bx By Bz - Magnetic field vector # Ex Ey Ez - Electric field vector # # Non-Uniform field according to a field map # /musr/command globalfield FieldName X Y Z fromfile MapDim MapFileName.map MotherVolume ModBE # FieldName - A simple name for the field # X Y Z - Position vector relative to MotherVolume # MotherVolume - The volume containing the field # MapDim - Dimension and type of field, it can be 2DE (2D Electric), 2DB (2D Magnetic), 3DE (3D Electric) and 3DB (3D Magnetic) # The 2D maps are propagated along the z axis to form the 3D map (to reduce the size of the map file) # MapFileName.map - The field where the field map is stored # ModBE - The size of the field (to scale the field map). ############################################################################################### # For the meaning of the acronyms see also the original G3 file ugeom.F at: # http://savannah.psi.ch/viewcvs/trunk/simulation/geant3/src/lemsr/ugeom.F?root=nemu%2Flem&rev=2964&view=markup ################################################################################################################ # -- ROTATION MATRICES -- ################################################################################################################ # 3 parameters -> Define Euler angles (the 4th par. is set to zero). # 4 parameters -> Define axis + rotation. # HEP computations ordinarily use the active rotation viewpoint (object is rotated NOT axes). # Therefore, rotations about an axis imply ACTIVE COUNTER-CLOCKWISE rotation in this package. # Rotation around a specified axis means counter-clockwise rot. around the positive direction of the axis. # Define rotations for the field maps of Trigger and Ring Anode: /musr/command rotation rotTrig 0 1 0 -45 /musr/command rotation rotRAnR 0 0 1 -90 /musr/command rotation rotRAnL 0 0 1 90 /musr/command rotation rotRAnD 0 0 1 180 ################################################################################################################ # -- LEM GEOMETRY -- ################################################################################################################ # WORLD = Laboratory reference frame, the origin is in the centre of the LEM sample tube /musr/command construct box World 250 250 2250 G4_Galactic 0 0 0 no_logical_volume norot dead -1 # MINIMUM WORD HALF LENGTH 1250 mm! #/musr/command construct box World 2000 2000 4000 G4_Galactic 0 0 0 no_logical_volume norot dead -1 # World visual attributes (optional) /musr/command visattributes log_World invisible #=============================================================================================================== # Sc - Scintillators: U - up, D - down, L - left, R - right (with respect to muon's view - momentum direction) # 8 Scintillators in two concentric rings - Inner and Outer (see also the convention for the Ring Anode) #=============================================================================================================== ## Inner Scintillators - I /musr/command construct tubs ScIU 90 95 130 45 90 G4_PLASTIC_SC_VINYLTOLUENE 0 0 0 log_World norot musr/ScintSD 011 nofield /musr/command construct tubs ScIR 90 95 130 135 90 G4_PLASTIC_SC_VINYLTOLUENE 0 0 0 log_World norot musr/ScintSD 012 nofield /musr/command construct tubs ScID 90 95 130 225 90 G4_PLASTIC_SC_VINYLTOLUENE 0 0 0 log_World norot musr/ScintSD 013 nofield /musr/command construct tubs ScIL 90 95 130 315 90 G4_PLASTIC_SC_VINYLTOLUENE 0 0 0 log_World norot musr/ScintSD 014 nofield ## Outer Scintillators - O /musr/command construct tubs ScOU 96 101 130 45 90 G4_PLASTIC_SC_VINYLTOLUENE 0 0 0 log_World norot musr/ScintSD 021 nofield /musr/command construct tubs ScOR 96 101 130 135 90 G4_PLASTIC_SC_VINYLTOLUENE 0 0 0 log_World norot musr/ScintSD 022 nofield /musr/command construct tubs ScOD 96 101 130 225 90 G4_PLASTIC_SC_VINYLTOLUENE 0 0 0 log_World norot musr/ScintSD 023 nofield /musr/command construct tubs ScOL 96 101 130 315 90 G4_PLASTIC_SC_VINYLTOLUENE 0 0 0 log_World norot musr/ScintSD 024 nofield # Visual attributes (optional) #*/musr/command visattributes log_ScOU SCINT_style #*/musr/command visattributes log_ScOD dSCINT_style /musr/command visattributes log_ScOL darkred /musr/command visattributes log_ScIL darkred #=============================================================================================================== # Experimental Area - Can host EITHER the Cryostat OR the MCP2 (For the tests we usually use the MCP) # Delimited by the F160 and F100 (blank end) flanges # # 07/Nov/2008: correct sample tube dimensions: the new tubes have 75 mm / 78 mm inner/outer radius # #=============================================================================================================== # MCP - Multi-Channel Plate 2 Chamber; V - Vacuum, S - Solid # Note: VERY IMPORTANT: mcpv_z = -92.5 mm! # OLD way of assigning a field #/musr/command construct tubs MCPV 0 76.5 254.5 0 360 G4_Galactic 0 0 -92.5 log_World norot dead 100 MCPSfield /musr/command construct tubs MCPV 0 75.0 254.5 0 360 G4_Galactic 0 0 -92.5 log_World norot dead 100 nofield /musr/command construct tubs MCPS 75.0 78.0 162.0 0 360 Steel 0 0 0 log_World norot dead 101 nofield # F - Flanges: F160, F100, F200 (used only when the Asymmetry check is OFF) # F160 - 160 CF flange upstream of MCP2 tube # F100 (Blank end flange) # OLD Value was 162.0 /musr/command construct tubs F160 78.0 101.25 11 0 360 Steel 0 0 -151.0 log_World norot dead 901 nofield /musr/command construct tubs F100 0 75.0 10 0 360 Steel 0 0 172.0 log_World norot dead 902 nofield # NOTE: Original F100 referred to MCPV (as shown below) was moved to World. #/musr/command construct tubs F100 0 76.5 10 0 360 Steel 0 0 264.5 log_MCPV norot dead 902 nofield # Experimental Area visual attributes (optional) /musr/command visattributes log_MCPV invisible /musr/command visattributes log_MCPS invisible /musr/command visattributes log_F160 blue_style /musr/command visattributes log_F100 blue_style #=============================================================================================================== # MCP - Micro Channel Plate Detector MCP2 (Used as an alternative to cryostat) # mcpv_z = -92.5 mm! # # We have a 324 mm long sample tube; # the MCP2 front side is at 142 mm from the end of the sample tube. # the front face of the sample plate of the cryostat is 145 mm from the end of the sample tube. # #=============================================================================================================== # MCPM1 - MCP Macor ring 1 # MCPD - electron multiplying glass disk (also known as target) # Sensitive surface at z = 20 mm wrt. World # MCPM2 - MCP Macor ring 2 /musr/command construct tubs MCPM1 24 32.5 0.75 0 360 Macor 0 0 111.75 log_MCPV norot dead 201 nofield # Use it either as (DMCP-musr/ScintSD) - no info on mu+ polariz., or as (target-dead) with info on mu+ polariz. #*/musr/command construct tubs target 0 25.0 1.50 0 360 MCPglass 0 0 108.0 log_MCPV norot dead 032 nofield /musr/command construct tubs MCPM2 24 32.5 0.75 0 360 Macor 0 0 116.25 log_MCPV norot dead 203 nofield # NOTE: To intercept ALL the incoming muons, comment the DMCP and MCPM1 lines above and uncomment this one: #*aa/musr/command construct tubs DMCP 0 76.5 1.5 0 360 MCPglass 0 0 108 log_MCPV norot musr/ScintSD 202 nofield /musr/command construct tubs target 0 21.0 1.5 0 360 MCPglass 0 0 114 log_MCPV norot musr/ScintSD 202 nofield /musr/command construct tubs saveTarget 0 75.0 0.2 0 360 G4_Galactic 0 0 110.79 log_MCPV norot dead 222 nofield # MCSR - Stainless Steel Ring for MCP2 mounting (modelled as a box with a circular hole) # MCVR - "Vacuum Ring" (circular hole) /musr/command construct box MCSR 36.5 36.5 1 Steel 0 0 118.5 log_MCPV norot dead 204 nofield /musr/command construct tubs MCVR 0 27.5 1 0 360 G4_Galactic 0 0 0 log_MCSR norot dead 205 nofield # MCPA = MCP Anode (modelled as a box with two symmetrically subtracted "vacuum" disks) # ANVA1 - Anode "Vacuum" 1 - Part of MCP Anode # ANVA2 - Anode "Vacuum" 2 - Part of MCP Anode /musr/command construct box MCPA 36.5 36.5 4 Steel 0 0 129.5 log_MCPV norot dead 206 nofield /musr/command construct tubs ANVA1 0 27.5 1.5 0 360 G4_Galactic 0 0 -2.5 log_MCPA norot dead 207 nofield /musr/command construct tubs ANVA2 0 27.5 1.5 0 360 G4_Galactic 0 0 2.5 log_MCPA norot dead 208 nofield # MCSS - MCP Stainless Steel Support Ring /musr/command construct tubs MCSS 40 48 2.5 0 360 Steel 0 0 162.3 log_MCPV norot dead 209 nofield # MCP2 visual attributes (optional) #/musr/command visattributes log_DMCP MCP_style #*/musr/command visattributes log_target MCP_style #*/musr/command visattributes log_MCPM1 MACOR_style #*------ /musr/command visattributes log_MCPM2 MACOR_style #=============================================================================================================== # CRY - Cryostat - Used as an ALTERNATIVE to MCP2 - Uncomment lines with #*. (Offset = 0.0 cm) # # at the moment, sample plate front face is still at z = 14.0mm --> should be changed to 17mm. #=============================================================================================================== # SAH - SAmple Holder components (Cu plate) Cu or Al plates 1. Cu plate (sample holder) on Cold finger, 0.5cm # SAPH - SAPpHire plate mounted between 1st and 2nd Cu plates, 6 mm thick, 60 mm diameter. # SAH3 is ignored because currently NOT use. #*/musr/command construct tubs SAH1 0 35 2.5 0 360 G4_Cu 0 0 119.0 log_MCPV norot dead 251 nofield #*/musr/command construct tubs SAH2 0 35 2 0 360 G4_Cu 0 0 108.5 log_MCPV norot dead 252 nofield #/musr/command construct tubs target 0 35 2 0 360 G4_Al 0 0 108.5 log_MCPV norot musr/ScintSD 252 nofield #*/musr/command construct tubs saveTarget 0 44 0.2 0 360 G4_Galactic 0 0 106.29 log_MCPV norot dead 253 nofield #/musr/command construct tubs SAH3 20 35 0.5 0 360 G4_Cu 0 0 106.0 log_MCPV norot dead 253 nofield #*/musr/command construct tubs SAPH 0 30 3 0 360 G4_ALUMINUM_OXIDE 0 0 113.5 log_MCPV norot dead 254 nofield # Other components of the CRYostat (dimensions and position of CRY4 are only approx. because unknown) # COFI - COld FInger # CRY1 - End plate of cryostat (7 mm thick, 30 mm diameter) # CRY2 - Heat exchanger (assuming a 10 mm opening - Original dimensions not known.) # OLD pos. 160.0 # CRY3 - Mounting ring for He-shield # CRY4 - 2 mm thick plate for mounting ring. This is just to close the downstream side. # CRSH - Lateral He-shield # CRSH2- Frontal He-shield Ring #*/musr/command construct tubs COFI 0 27.5 5 0 360 G4_Cu 0 0 126.5 log_MCPV norot dead 261 nofield #*/musr/command construct tubs CRY1 0 15 3.5 0 360 G4_Cu 0 0 135.0 log_MCPV norot dead 262 nofield #*/musr/command construct tubs CRY2 5 15 25 0 360 G4_Cu 0 0 163.5 log_MCPV norot dead 263 nofield #*/musr/command construct tubs CRY3 38 47 5.5 0 360 G4_Cu 0 0 143.5 log_MCPV norot dead 264 nofield #*/musr/command construct tubs CRY4 15 38 1 0 360 G4_Cu 0 0 143.5 log_MCPV norot dead 265 nofield #*/musr/command construct tubs CRSH 47 48 45 0 360 G4_Cu 0 0 108.5 log_MCPV norot dead 266 nofield #*/musr/command construct tubs CRSH2 30 48 0.5 0 360 G4_Cu 0 0 63.0 log_MCPV norot dead 267 nofield # Electrical Field Guard Rings (distance between the guard rings: 16 mm) #*/musr/command construct tubs Guard1 29 38 1.5 0 360 G4_Cu 0 0 76.0 log_MCPV norot dead 271 nofield #*/musr/command construct tubs Guard2 29 38 1.5 0 360 G4_Cu 0 0 92.0 log_MCPV norot dead 272 nofield # Cryostat visual attributes (optional) #*/musr/command visattributes log_SAH1 oxsteel #*/musr/command visattributes log_SAH2 oxsteel #*/musr/command visattributes log_target oxsteel #*/musr/command visattributes log_SAPH MACOR_style #*/musr/command visattributes log_SAH3 oxsteel #*/musr/command visattributes log_CRSH invisible #=============================================================================================================== # RA - Ring Anode, M - middle part (closer to Ground Anode), E - end part (farther from the Ground Anode) # U - up, D - down, L - left, R - right (with respect to muon's view - momentum direction) # Note: 3.0 mm HALF gap at 45.1469 mm half radius => delta_ang = asin(3.0/45.1469)*180/pi = 3.81 deg. # Note: delta_ang = 3.1744 deg. for 2.5 mm HG. The angular extension goes e.g. from (45 + da) to (90 - 2*da). # Note: Ring Anode - Ground Anode distance was 15 mm => CHANGED to 12 mm! (Positions: 11.5 -> 8.5, -33.5 -> -36.5) #=============================================================================================================== # RA_Ez = -10.35+2.25 = -8.1 cm; RA_Mz= -10.35 - 2.25 = -12.6 cm; RA_Gz= -25.45+3.75 = -21.7 cm; mcpv_z = -9.25 cm /musr/command construct cons RA_EU 45.1469 62.5 33.5 39.0 22.5 48.81 82.38 Steel 0 0 8.5 log_MCPV norot dead 301 nofield /musr/command construct cons RA_MU 56.7937 62.5 45.147 62.5 22.5 48.81 82.38 Steel 0 0 -36.5 log_MCPV norot dead 302 nofield /musr/command construct cons RA_ER 45.1469 62.5 33.5 39.0 22.5 48.81 82.38 Steel 0 0 8.5 log_MCPV rotRAnR dead 303 nofield /musr/command construct cons RA_MR 56.7937 62.5 45.147 62.5 22.5 48.81 82.38 Steel 0 0 -36.5 log_MCPV rotRAnR dead 304 nofield /musr/command construct cons RA_ED 45.1469 62.5 33.5 39.0 22.5 48.81 82.38 Steel 0 0 8.5 log_MCPV rotRAnD dead 305 nofield /musr/command construct cons RA_MD 56.7937 62.5 45.147 62.5 22.5 48.81 82.38 Steel 0 0 -36.5 log_MCPV rotRAnD dead 306 nofield /musr/command construct cons RA_EL 45.1469 62.5 33.5 39.0 22.5 48.81 82.38 Steel 0 0 8.5 log_MCPV rotRAnL dead 307 nofield /musr/command construct cons RA_ML 56.7937 62.5 45.147 62.5 22.5 48.81 82.38 Steel 0 0 -36.5 log_MCPV rotRAnL dead 308 nofield # Dummy, thin cylindres used for applying the SAME RA field-map (ROTATED by 90 deg.) to different anodes. # NOTE: EM field cannot be applied to non simply connected bodies, as e.g. rings, cones, tori, etc.! /musr/command construct tubs RA_U 0 0.01 0.005 0 360 G4_Galactic 0 0 -50.50 log_MCPV norot dead 322 nofield /musr/command construct tubs RA_R 0 0.01 0.005 0 360 G4_Galactic 0 0 -50.52 log_MCPV rotRAnR dead 324 nofield /musr/command construct tubs RA_D 0 0.01 0.005 0 360 G4_Galactic 0 0 -50.54 log_MCPV rotRAnD dead 326 nofield /musr/command construct tubs RA_L 0 0.01 0.005 0 360 G4_Galactic 0 0 -50.56 log_MCPV rotRAnL dead 328 nofield # RA_G - Ring Anode Ground Cylinder /musr/command construct tubs RA_G 58 62.5 58.0 0 360 G4_Cu 0 0 -129.0 log_MCPV norot dead 351 nofield # Ring Anodes visual attributes (optional) /musr/command visattributes log_RA_EU oxsteel /musr/command visattributes log_RA_MR oxsteel /musr/command visattributes log_RA_G Grid_style # Alternative placement using World as a mother volume (mcpv_z = -92.5 mm). Check latter. These values refer to a 5 mm GAP! #/musr/command construct cons RA_EU 45.1469 62.5 33.5 39.0 22.5 48.1711 83.6578 Steel 0 0 -81 log_World norot dead 301 nofield #/musr/command construct cons RA_MU 56.7937 62.5 45.147 62.5 22.5 48.1711 83.6578 Steel 0 0 -126 log_World norot dead 302 nofield #=============================================================================================================== # Gate Valve Area - Hosts the Ground Anode (upstream part of the Ring Anode) - Delimited by L3F1 and F200 flanges #=============================================================================================================== # GATS - 200 CF flange upstream of MCP2 tube covering the whole length of the gate valve chamber. For simplicity, we # choose the INNER diameter of the GATe valve Steel tube the same as the OUTER diameter of F200 (200 CF flange) /musr/command construct tubs GATS 103.25 126.5 92.5 0 360 Steel 0 0 -254.5 log_World norot dead 371 nofield # Vacuum "Ring" (to avoid intersections with MCPV) - Not needed if world is already filled with vacuum. #*/musr/command construct tubs GATV 76.5 103.25 92.5 0 360 G4_Galactic 0 0 -254.5 log_World norot dead 370 nofield # F200 - 200 CF flange upstream of MCP2 tube to connect to gate valve chamber /musr/command construct tubs F200 76.5 103.25 12 0 360 Steel 0 0 -174.0 log_World norot dead 372 nofield # NOTE: When using GATV comment the F200 above and uncomment the following (change mother to log_GATV). #*/musr/command construct tubs F200 76.5 103.25 12 0 360 Steel 0 0 80.5 log_GATV norot dead 372 nofield # Gate Valve Area visual attributes (optional) /musr/command visattributes log_GATS SCINT_style /musr/command visattributes log_F200 blue_style #=============================================================================================================== # L3 - 3rd Einzel Lens # L3z = -56.7 cm. ATT: DUMMY FIELD change to electric L3Efield! #=============================================================================================================== # Lens Gap = 12.0 mm => G/D = 12/130 ~ 0.1 (Lens Gap = gap between Ground and Anode, D - Diameter) # L3 envelope (Tube + Flanges) # L3VA - Lens 3 Vacuum # L3ST - Lens 3 Steel tube (inner dia: 200 mm, outer dia: 206 mm, length: 720 mm) # L3F1 - Lens 3 Flange 1, z = L3z + 208 mm # L3F2 - Lens 3 Flange 2, z = L3z - 208 mm /musr/command construct tubs L3VA 0 100 220 0 360 G4_Galactic 0 0 -567 log_World norot dead 400 nofield /musr/command construct tubs L3ST 100 103 220 0 360 Steel 0 0 -567 log_World norot dead 401 nofield /musr/command construct tubs L3F1 103 126.5 12 0 360 Steel 0 0 -359 log_World norot dead 402 nofield /musr/command construct tubs L3F2 103 126.5 12 0 360 Steel 0 0 -775 log_World norot dead 403 nofield # GPn - Ground Potential Electrodes # n = 1-4 and 5-8 - components of the Ground Electrodes # GP1 - Ground Electrode (inner dia: 130 mm, outer dia: 134 mm, length: 133 mm) # GP2 - outer electrode surface (LN2 cooling vessel) # GP3 - first ring cap # GP4 - second ring cap # n = 1-4 - Ground Electrode 1 (further from TD). See above for the meaning of acronyms. /musr/command construct tubs L3GP1 65 67 66.5 0 360 Steel 0 0 133.5 log_L3VA norot dead 421 nofield /musr/command construct tubs L3GP2 81 83 66.5 0 360 Steel 0 0 133.5 log_L3VA norot dead 422 nofield /musr/command construct tubs L3GP3 67 81 4 0 360 Steel 0 0 196.0 log_L3VA norot dead 423 nofield /musr/command construct tubs L3GP4 67 81 4 0 360 Steel 0 0 71.0 log_L3VA norot dead 424 nofield # n = 5-8 - Ground Electrode 2 (closer to TD). See above for the meaning of acronyms. /musr/command construct tubs L3GP5 65 67 66.5 0 360 Steel 0 0 -133.5 log_L3VA norot dead 431 nofield /musr/command construct tubs L3GP6 81 83 66.5 0 360 Steel 0 0 -133.5 log_L3VA norot dead 432 nofield /musr/command construct tubs L3GP7 67 81 4 0 360 Steel 0 0 -196.0 log_L3VA norot dead 433 nofield /musr/command construct tubs L3GP8 67 81 4 0 360 Steel 0 0 -71.0 log_L3VA norot dead 434 nofield # HP - High Potential Electrode (Central Anode - usually at +8.7 kV, for a 15 keV muon beam) /musr/command construct tubs L3HP 65 83 55 0 360 Steel 0 0 0 log_L3VA norot dead 451 nofield # Lens 3 visual attributes (optional) /musr/command visattributes log_L3VA invisible /musr/command visattributes log_L3ST invisible /musr/command visattributes log_L3HP darkred #=============================================================================================================== # IP - Intermediate Piece (between Trigger Detector and Einzel Lens 3) # Original name was CGate - B-field Coil Compensation Gate?! # CompGatez = -86.55 cm; // L3z - 22 - 7.85 cm #=============================================================================================================== # IPV (but also others) are just empty volumes "filled" with vacuum. Sometimes used to apply EM fields to restricted areas. /musr/command construct tubs IPV 0 100 78.5 0 360 G4_Galactic 0 0 -865.5 log_World norot dead 500 nofield # IPCF - Intermediate Piece Central Flange (same as L3 Flanges) # IPST - Intermediate Piece Steel Tube (same diameter as L3 Steel Tube) /musr/command construct tubs IPCF 103 126.5 12.0 0 360 Steel 0 0 -865.5 log_World norot dead 501 nofield /musr/command construct tubs IPST 100 103 78.5 0 360 Steel 0 0 -865.5 log_World norot dead 502 nofield # IP visual attributes (optional) /musr/command visattributes log_IPV invisible /musr/command visattributes log_IPCF blue_style /musr/command visattributes log_IPST gray #=============================================================================================================== # Trigger - Trigger Detector # Triggerz = -1092 mm; total length of TD is 110 mm; carbon foil at -1144 mm. #=============================================================================================================== # Trigger tube and relative vacuum /musr/command construct tubs TriggerV 0 100 148 0 360 G4_Galactic 0 0 -1092 log_World norot dead 600 nofield /musr/command construct tubs Trigger 100 103 148 0 360 Steel 0 0 -1092 log_World norot dead 601 nofield # TF - Trigger tube flanges /musr/command construct tubs TF1 103 126.5 12 0 360 Steel 0 0 -956 log_World norot dead 611 nofield /musr/command construct tubs TF2 103 126.5 12 0 360 Steel 0 0 -1228 log_World norot dead 612 nofield #------------------------------------------------------------- # trigger foil is 52mm upstream of Triggerz, i.e. at -1144 mm #------------------------------------------------------------- # Carbon Foil (default HALF-thickness 0.000005147 mm, see below => CFoil thick = 10.3 nm). # USE THE NAME CFoil or coulombCFoil, otherwise musrMuFormation won't work! ####/musr/command construct box CFoil 60 60 0.000005147 G4_GRAPHITE 0 0 -45 log_TriggerV norot dead 621 nofield /musr/command construct box CFoil 60 60 0.0000044 G4_GRAPHITE 0 0 -52.1 log_TriggerV norot dead 621 nofield ####/musr/command construct box coulombCFoil 60 60 0.000005147 G4_GRAPHITE 0 0 -45 log_TriggerV norot dead 621 nofield # Notes: NIST tables use G4_GRAPHITE with 1.7 g/cm3 and 78 eV ioniz. energy. # An area density of 2.20 ug/cm2 implies a CF thickn. = (2.20*1.e-6/1.70)*cm = 1.294e-5 mm - Total thickness # An area density of 1.75 ug/cm2 implies a CF thickn. = (1.75*1.e-6/1.70)*cm = 1.029e-5 mm - Total thickness # If necessary, use Graphite as defined in musrDetectorConstruction.cc and set any density. # Dummy plane to intercept outgoing muons from the Carbon foil. #*/musr/command construct box saveCFoil 60 60 5e-4 G4_Galactic 0 0 -52.0005 log_TriggerV norot dead 623 nofield #*/musr/command construct box saveBeforeCFoil 60 60 5e-4 G4_Galactic 0 0 -52.105 log_TriggerV norot dead 623 nofield #*/musr/command construct box saveAfterTD 60 60 5e-4 G4_Galactic 0 0 58.0006 log_TriggerV norot dead 623 nofield # Electrical Field areas in the Trigger Detector # En = Electrical Field n: TnFieldMgr (n = 1-3) # Original TriggE2: [4.*sqrt(2), 4.5, 0.7/sqrt(2)] cm -> changed due to overlaps with E1 and E3 /musr/command construct box TriggE0 45 45 5 G4_Galactic 0 0 -57.15 log_TriggerV norot dead 630 nofield /musr/command construct box TriggE1 45 45 4 G4_Galactic 0 0 -48.0 log_TriggerV norot dead 631 nofield /musr/command construct box TriggE2 45 45 4.9497 G4_Galactic 0 0 2.25 log_TriggerV rotTrig dead 632 nofield /musr/command construct box TriggE3 45 45 4 G4_Galactic 0 0 54.0 log_TriggerV norot dead 633 # Beam spot (just for having a visual idea!) /musr/command construct tubs BSpot 0 20 1 0 360 G4_Galactic 0 0 -63.15 log_TriggerV norot dead 650 nofield # Trigger visual attributes (optional) /musr/command visattributes log_TriggerV invisible /musr/command visattributes log_Trigger invisible /musr/command visattributes saveCFoil invisible # Bug: It seems that if you set this to invisible the program stops. I see no reason for that! #/musr/command visattributes log_saveAfterTD invisible /musr/command visattributes log_BSpot invisible #*/musr/command visattributes saveCFoil MACOR_style #*/musr/command visattributes log_saveAfterTD darkred /musr/command visattributes log_BSpot darkred # One can set visible attrib. also on a MATERIAL basis, rather than on log_VOL. # E.g. /musr/command visattributes Steel red ################################################################################################################ # -- Setting the ELECTRIC and MAGNETIC fields -- ################################################################################################################ # Use ABSOLUTE coordinates to specify the field position (i.e. with respect to GLOBAL WORLD)! # Default field units: Magnetic - T, Electric - kV/mm (or kV for E-field maps). # NOTE: Applying a field to an invisible log_vol makes is visible! ### Electric field at TRIGGER Detector TD: Three different uniform fields /musr/command globalfield Trigg0_field 45 45 5 uniform 0. 0. -1149.15 log_TriggE0 0 0 0 0 0 0.373 /musr/command globalfield Trigg1_field 45 45 4 uniform 0. 0. -1140. log_TriggE1 0 0 0 0 0 -0.02375 /musr/command globalfield Trigg2_field 45 45 4.9497 uniform 0. 0. -1089.75 log_TriggE2 0 0 0 0 0 0.041416 /musr/command globalfield Trigg3_field 45 45 4 uniform 0. 0. -1038.0 log_TriggE3 0 0 0 0 0 -0.49375 ### Electric field at Einzel LENS 3 - from folded 2D axial field map (f - folded, i.e. symmetric) # Typically V = +8.7 kV for a muon beam at 15 keV. Use either 2DE L3_Erz.map or # # ATTENTION: The electric field is ANTI-symmetric: DO NOT use folded field map L3_Erz4.map!! # /musr/command globalfield Lens3_field 0. 0. -567. fromfile 2DE L3_Erz.map log_L3VA 8.352 # To change the field in regular steps (e.g. for testing) use (f_min f_max step_no), e.g.: #*/musr/command globalfield Lens3_field 0. 0. -567. fromfile 2DE L3_Erz.map log_L3VA 7 11 5 ### Electric field at RING ANODE - from 3DE field map # Typically set at +11.0 kV for a muon beam at 15 keV # To create an arbitrary configuration, switch on all fields and set different potentials. #######/musr/command globalfield RngAnU_field 0. 0. -167.00 fromfile 3DE EM_3D_extc.map log_RA_U 11.0 /musr/command globalfield RngAnL_field 0. 0. -143.06 fromfile 3DE EM_3D_ext_gridf.map log_RA_L 10.145 /musr/command globalfield RngAnR_field 0. 0. -143.02 fromfile 3DE EM_3D_ext_gridf.map log_RA_R 10.955 /musr/command globalfield RngAnU_field 0. 0. -143.00 fromfile 3DE EM_3D_ext_gridf.map log_RA_U 10.560 /musr/command globalfield RngAnD_field 0. 0. -143.04 fromfile 3DE EM_3D_ext_gridf.map log_RA_D 10.569 ### LAST FIELD OK: EM_3D_ext2f.map # EXTENDED MAPS (from -28 to +20 mm) EM_3D_extc.map or EM_3D_extf.map (coord + field or field only) # "Best" results with EM_RA_3D.map, even though this is not a precise map (poor meshing). #RA_1kV_upf_raw.map #RA_1kV_upf.map # EM_extendf2.map give rise to "strange spots" -> lem4_1047_RA13.eps ### Electric field at SAMPLE space. Three possible field maps: Sample, G1 and G2 (closest to sample) # To create an arbitrary configuration, switch on all fields and set different potentials. # Field extension along z: 50 mm. Center of MCPV at z = -92.5 mm. Sample face at: z = 108.5 (4 mm thick - SAH2). # Position of the field: (-92.5 - 50/2) + (108.5 - 4/2) = -11 mm wrt. WORLD! => #*/musr/command globalfield Sample_field 0. 0. -11.0 fromfile 2DE sample_Erz.map log_MCPV 9.0 #*/musr/command globalfield Guard2_field 0. 0. -11.0 fromfile 2DE guard2_Erz.map log_MCPV 6.0 #*/musr/command globalfield Guard1_field 0. 0. -11.0 fromfile 2DE guard1_Erz.map log_MCPV 3.0 ### Magnetic field at SAMPLE space (use either a uniform field or a field map). # Use either DMCP or MCPV to apply a CONSTANT field strictly to the sample or also to the surroundings, resp.! #*/musr/command globalfield Magnet_field ? ? ? uniform 0. 0. 14.5 log_DMCP 0 0.005 0 0 0 0 # Use field map to set field to 20 G TF # Extended map has -100/100 cm z extension, field center at +70, original -85/85, center at +85 #######/musr/command globalfield Magnet_field 0. 0. -836.0 fromfile 2DB sample_Brz.map log_IPV 0.002 #*/musr/command globalfield Magnet_field 0. 0. -686.0 fromfile 2DB sample_Brz_ext.map log_L3VA 0.002 # Set parameters for particle tracking in an EM field /musr/command globalfield setparameter SetLargestAcceptableStep 5 /musr/command globalfield setparameter SetMinimumEpsilonStep 5e-5 /musr/command globalfield setparameter SetMaximumEpsilonStep 0.001 /musr/command globalfield setparameter SetDeltaOneStep 0.1 /musr/command globalfield setparameter SetDeltaIntersection 0.01 /musr/command globalfield printparameters ################################################################################################################ # -- Testing the ELECTRIC and MAGNETIC fields (OPTIONAL) -- ################################################################################################################ # FIELD CHECKS at different beam transport components (from trigg. to sample) # All distances in mm and in GLOBAL coordinates (preferably at field center) # The test points below are just some examples. Any point can be checked. # Trigger 0 /musr/command globalfield printFieldValueAtPoint 0. 0. -1149.15 # Trigger 1 /musr/command globalfield printFieldValueAtPoint 0. 0. -1140. # Trigger 2 /musr/command globalfield printFieldValueAtPoint 0. 0. -1089.75 # Trigger 3 /musr/command globalfield printFieldValueAtPoint 0. 0. -1038.0 # Einzel Lens 3 - L3 (center at -567.0, but max field at rel. +/-62 mm) /musr/command globalfield printFieldValueAtPoint 0. 0. -507.0 # Ring Anode - RA (center at -167.0, but max field at rel. -16/+132 mm) /musr/command globalfield printFieldValueAtPoint 0. 0. -35.0 # Sample space (center at -11.0, but max field at rel. +24 mm) /musr/command globalfield printFieldValueAtPoint 0. 0. 13.0 # Check magnetic field at sample space #*/musr/command globalfield printFieldValueAtPoint 10. 0. 13.0 # Check magnetic field at the lower field end limit #*/musr/command globalfield printFieldValueAtPoint 0. 20. -1680. ################################################################################### ######################### P H Y S I C S P R O C E S S E S ################## ################################################################################### # --- Low Energy (default) --- /musr/command process addDiscreteProcess gamma G4LowEnergyPhotoElectric /musr/command process addDiscreteProcess gamma G4LowEnergyCompton /musr/command process addDiscreteProcess gamma G4LowEnergyGammaConversion /musr/command process addDiscreteProcess gamma G4LowEnergyRayleigh /musr/command process addProcess e- G4MultipleScattering -1 1 1 #/musr/command process addDiscreteProcess e- G4CoulombScattering /musr/command process addProcess e- G4LowEnergyIonisation -1 2 2 /musr/command process addProcess e- G4LowEnergyBremsstrahlung -1 -1 3 /musr/command process addProcess e+ G4MultipleScattering -1 1 1 #/musr/command process addDiscreteProcess e+ G4CoulombScattering /musr/command process addProcess e+ G4eIonisation -1 2 2 /musr/command process addProcess e+ G4eBremsstrahlung -1 3 3 /musr/command process addProcess e+ G4eplusAnnihilation 0 -1 4 # # --- High Energy --- #/musr/command process addDiscreteProcess gamma G4PhotoElectricEffect #/musr/command process addDiscreteProcess gamma G4ComptonScattering #/musr/command process addDiscreteProcess gamma G4GammaConversion #/musr/command process addProcess e- G4MultipleScattering -1 1 1 ##/musr/command process addDiscreteProcess e- G4CoulombScattering #/musr/command process addProcess e- G4eIonisation -1 2 2 #/musr/command process addProcess e- G4eBremsstrahlung -1 3 3 #/musr/command process addProcess e+ G4MultipleScattering -1 1 1 ##/musr/command process addDiscreteProcess e+ G4CoulombScattering #/musr/command process addProcess e+ G4eIonisation -1 2 2 #/musr/command process addProcess e+ G4eBremsstrahlung -1 3 3 #/musr/command process addProcess e+ G4eplusAnnihilation 0 -1 4 # # --- Penelope --- #/musr/command process addDiscreteProcess gamma G4PenelopePhotoElectric #/musr/command process addDiscreteProcess gamma G4PenelopeCompton #/musr/command process addDiscreteProcess gamma G4PenelopeGammaConversion #/musr/command process addDiscreteProcess gamma G4PenelopeRayleigh #/musr/command process addProcess e- G4MultipleScattering -1 1 1 ##/musr/command process addDiscreteProcess e- G4CoulombScattering #/musr/command process addProcess e- G4PenelopeIonisation -1 2 2 #/musr/command process addProcess e- G4PenelopeBremsstrahlung -1 -1 3 #/musr/command process addProcess e+ G4MultipleScattering -1 1 1 ##/musr/command process addDiscreteProcess e+ G4CoulombScattering #/musr/command process addProcess e+ G4PenelopeIonisation, -1 2 2 #/musr/command process addProcess e+ G4PenelopeBremsstrahlung, -1 -1 3 #/musr/command process addProcess e+ G4PenelopeAnnihilation, 0 -1 4 # # --- Muons --- /musr/command process addProcess mu+ G4MultipleScattering -1 1 1 #/musr/command process addProcess mu+ MultipleAndCoulombScattering -1 1 1 goulombRegion #/musr/command process addDiscreteProcess mu+ G4CoulombScattering /musr/command process addProcess mu+ G4MuIonisation -1 2 2 /musr/command process addProcess mu+ G4MuBremsstrahlung -1 3 3 /musr/command process addProcess mu+ G4MuPairProduction -1 4 4 /musr/command process addProcess mu- G4MultipleScattering -1 1 1 #/musr/command process addDiscreteProcess mu- G4CoulombScattering /musr/command process addProcess mu- G4MuIonisation -1 2 2 /musr/command process addProcess mu- G4MuBremsstrahlung -1 3 3 /musr/command process addProcess mu- G4MuPairProduction -1 4 4 # --- Muonium --- /musr/command process addProcess mu+ musrMuFormation -1 -1 2 #cks - the following line not supported yet, has to be tested (at the moment, musrMuScatter is hard wired in the musrPhysicsList.cc): #/musr/command process addProcess Mu musrMuScatter -1 -1 1 ################################################################################### ######################### R O O T O U T P U T ############################## ################################################################################### #/musr/command rootOutput runID off #/musr/command rootOutput eventID off #/musr/command rootOutput weight off #/musr/command rootOutput BFieldAtDecay off #/musr/command rootOutput muIniPosX off #/musr/command rootOutput muIniPosY off #/musr/command rootOutput muIniPosZ off #/musr/command rootOutput muIniMomX off #/musr/command rootOutput muIniMomY off #/musr/command rootOutput muIniMomZ off #/musr/command rootOutput muIniPolX off #/musr/command rootOutput muIniPolY off #/musr/command rootOutput muIniPolZ off #/musr/command rootOutput muDecayDetID off #/musr/command rootOutput muDecayPosX off #/musr/command rootOutput muDecayPosY off #/musr/command rootOutput muDecayPosZ off #/musr/command rootOutput muDecayTime off #/musr/command rootOutput muDecayPolX off #/musr/command rootOutput muDecayPolY off #/musr/command rootOutput muDecayPolZ off #/musr/command rootOutput muTargetTime off #/musr/command rootOutput muTargetPolX off #/musr/command rootOutput muTargetPolY off #/musr/command rootOutput muTargetPolZ off #/musr/command rootOutput muM0Time off #/musr/command rootOutput muM0PolX off #/musr/command rootOutput muM0PolY off #/musr/command rootOutput muM0PolZ off /musr/command rootOutput muM1Time off /musr/command rootOutput muM1PolX off /musr/command rootOutput muM1PolY off /musr/command rootOutput muM1PolZ off /musr/command rootOutput muM2Time off /musr/command rootOutput muM2PolX off /musr/command rootOutput muM2PolY off /musr/command rootOutput muM2PolZ off #/musr/command rootOutput posIniMomX off #/musr/command rootOutput posIniMomY off #/musr/command rootOutput posIniMomZ off #/musr/command rootOutput fieldNomVal off #/musr/command rootOutput det_ID off #/musr/command rootOutput det_edep off #/musr/command rootOutput det_edep_el off #/musr/command rootOutput det_edep_pos off #/musr/command rootOutput det_edep_gam off #/musr/command rootOutput det_edep_mup off #/musr/command rootOutput det_nsteps off #/musr/command rootOutput det_length off #/musr/command rootOutput det_start off #/musr/command rootOutput det_end off #/musr/command rootOutput det_x off #/musr/command rootOutput det_y off #/musr/command rootOutput det_z off #/musr/command rootOutput det_kine off /musr/command rootOutput det_VrtxKine off /musr/command rootOutput det_VrtxX off /musr/command rootOutput det_VrtxY off /musr/command rootOutput det_VrtxZ off /musr/command rootOutput det_VrtxVolID off /musr/command rootOutput det_VrtxProcID off /musr/command rootOutput det_VrtxTrackID off /musr/command rootOutput det_VrtxParticleID off /musr/command rootOutput det_VvvKine off /musr/command rootOutput det_VvvX off /musr/command rootOutput det_VvvY off /musr/command rootOutput det_VvvZ off /musr/command rootOutput det_VvvVolID off /musr/command rootOutput det_VvvProcID off /musr/command rootOutput det_VvvTrackID off /musr/command rootOutput det_VvvParticleID off ### Root variables that are not written out by default, but can be switched on: #/musr/command rootOutput fieldIntegralBx on #/musr/command rootOutput fieldIntegralBy on #/musr/command rootOutput fieldIntegralBz on #/musr/command rootOutput fieldIntegralBz1 on #/musr/command rootOutput fieldIntegralBz2 on #/musr/command rootOutput fieldIntegralBz3 on # ################################################################################################################ # -- Setting simulation PARAMETERS -- ################################################################################################################ # Set the overall range cut (default 0.1 mm) #*/run/setCut 1 mm # Set the range cut on particular volumes (in mm) #/musr/command SetUserLimits log_CFoil 1e-8 -1 -1 -1 -1 #*/musr/command SetUserLimits log_target 0.01 -1 -1 -1 -1 #*/musr/command SetUserLimits log_targetscint 0.01 -1 -1 -1 -1 #*/musr/command SetUserLimits log_cryostatscint 0.01 -1 -1 -1 -1 # Set particle energy cuts on particular volumes (in MeV) #/musr/command SetUserLimits log_World ustepMax(mm) utrakMax(mm) utimeMax(ns) uekinMin(MeV) urangMin(mm) /musr/command SetUserLimits log_World -1 -1 -1 1e-7 -1 # Store ALL the events in a ROOT tree or just the interesting ones? (default is true) #*/musr/command storeOnlyEventsWithHits false # Set the minimum time separation between two subsequent signals in the same detector (in ns) /musr/command signalSeparationTime 0.1 # Override runID number #*/musr/run/runID 21 # Set the frequency of event printing /musr/run/howOftenToPrintEvent 1000 # RANDOM option choices: (specify the random number generator initialisation) # 0 ... no initialisation (default) # 1 ... use actual computer time to initialise now # 2 ... use event number to initialise at the beginning of each event # 3 ... read in the random no. initial values for each event from a file /musr/run/randomOption 2 # VISUALIZATION options # To enable or disable visualization uncomment one of these lines # To modify visualization options edit the file vis.mac /vis/disable #*/control/execute vis.mac ################################################################################################################ # -- Setting PARTICLE GUN parameters -- ################################################################################################################ # Default momentum direction: 001, i.e. 0z. # Default muon spin direction: 100, i.e. 0x. # Default particle type: mu+ (can be changed to Mu) # Set particle type #*/gun/particle Mu /gun/particle mu+ # Set beam vertex # CFoil at -1144 mm, acceleration starts at -1154.15 mm /gun/vertex 0. 0. -1155. mm # A point-like uniform beam #/gun/vertexsigma -0.1 -0.1 0 mm # Set beam transverse spread (default GAUSSIAN spread) # If FWHM = 10 mm ==> sigma = 10/2.354 = 4.2481 mm (last 0 is a dummy value) # Negative sigma values => random FLAT RECTANGULAR distribution (area 2x.2y) # Use vertexboundary with (vb < sigma_xy) to obtain a CIRCULAR beam spot # /gun/vertexsigma 0 0 0 mm ==> Very SLOW with mag. field ON and centered beam #*/gun/vertexsigma 42.5 42.5 0 mm /gun/vertexsigma -20 -20 0 mm /gun/vertexboundary 20 -1e6 1e6 mm # /gun/vertexboundary: rMaxAllowed, zMinAllowed, zMaxAllowed # Beam AND gating #*/gun/vertexboundary 7 -1314.4 -1305 mm # Without restrictions in z, but only on r: #*/gun/vertexboundary 3 -1e6 1e6 mm # Set beam momentum (USE only as an ALTERNATIVE to setting energy!) # /gun/momentum 0 0 29.79 MeV #*/gun/momentum 0 0 1.8 MeV # Energy loss at p = 1.2 MeV/c (E = 6.8 keV) => 1.23 +/- 0.2 keV # Energy loss at p = 1.8 MeV/c (E = 15.3 keV) => 1.25 +/- 0.3 keV # 1.2 MeV/c -> 6.8 keV, 1.8 MeV/c -> 15.3 keV # muon rest mass = 105.658 MeV/c2 # Set muon energy before hitting TD; a constant field in front of the C-foil accelerates the muons # to add 3.73 keV /gun/kenergy 15.0 keV # Set beam momentum direction /gun/direction 0.0 0.0 1.0 # Set muon spin direction /gun/muonPolarizVector 1 0 0 # Other useful test parameters: # # FWHM = 3% ==> sigma = 29.79*0.03/2.354 = 0.37965 MeV/c #*/gun/momentumsmearing 0.37965 MeV #---/gun/momentumboundary: pMinAllowed, pMaxAllowed, dummy #*/gun/momentumboundary 20 40 0 MeV #---/gun/tilt: xangle, yangle, dummy #*/gun/tilt 0 0.5 0 deg #---/gun/tiltsigma: xangleSigma, yangleSigma, dummy (1 degree at 1 m => 17 mm) #*/gun/tiltsigma 0.2 0.2 0 deg #*/gun/pitch 0.5 deg #---/gun/decaytimelimits: decayMin, decayMax, decayTime #*/gun/decaytimelimits 10400 10420 2197.03 ns # Selectively inactivate or activate sensitive detectors #*/hits/inactivate /musr/ScintSD # Only for code debugging! #/tracking/verbose 1 # BEAM ON #*/run/beamOn 1000000 #*/run/beamOn 2 /run/beamOn 1000