Added SiPixel templates and root macros

This commit is contained in:
2022-11-21 14:22:18 +01:00
parent 9bae289cb3
commit c4960c039d
28 changed files with 3386 additions and 22658 deletions

View File

@ -1,697 +0,0 @@
# 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_) #
###############################################################################################
# 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 105.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:
#*/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 75.0 1.5 0 360 MCPglass 0 0 114 log_MCPV norot musr/ScintSD 202 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 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_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.0000049 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 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 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 6.51
# 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 RngAnU_field 0. 0. -143.00 fromfile 3DE EM_3D_ext_gridf.map log_RA_U 8.26
/musr/command globalfield RngAnR_field 0. 0. -143.02 fromfile 3DE EM_3D_ext_gridf.map log_RA_R 8.26
/musr/command globalfield RngAnD_field 0. 0. -143.04 fromfile 3DE EM_3D_ext_gridf.map log_RA_D 8.26
/musr/command globalfield RngAnL_field 0. 0. -143.06 fromfile 3DE EM_3D_ext_gridf.map log_RA_L 8.26
### 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
################################################################################################################
# -- 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
#*/musr/command SetUserLimits log_target 0.01
#*/musr/command SetUserLimits log_targetscint 0.01
#*/musr/command SetUserLimits log_cryostatscint 0.01
# Set particle energy cuts on particular volumes (in MeV)
#/musr/command SetUserMinEkine log_World 0.1
#/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 # Pseudo-random numbers
# 2 ... use event number to initialise at the beginning of each event # Reproducible numbers
# 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 12.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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,611 +0,0 @@
301 1 2 1
1 X [LENGU]
2 Y [LENGU]
3 Z [LENGU]
4 HX [FIELU]
5 HZ [FIELU]
6 HMOD [FIELU]
fieldNormalisation 880.169809
0
0.0000000e+00 0 0 0 1.1361444e-03 0
0.0000000e+00 0 20 0 1.1361444e-03 0
1.0000000e+00 0 0 0 1.1362377e-03 0
1.0000000e+00 0 20 0 1.1362377e-03 0
2.0000000e+00 0 0 0 1.1365074e-03 0
2.0000000e+00 0 20 0 1.1365074e-03 0
3.0000000e+00 0 0 0 1.1369226e-03 0
3.0000000e+00 0 20 0 1.1369226e-03 0
4.0000000e+00 0 0 0 1.1374296e-03 0
4.0000000e+00 0 20 0 1.1374296e-03 0
5.0000000e+00 0 0 0 1.1379495e-03 0
5.0000000e+00 0 20 0 1.1379495e-03 0
6.0000000e+00 0 0 0 1.1383740e-03 0
6.0000000e+00 0 20 0 1.1383740e-03 0
7.0000000e+00 0 0 0 1.1385589e-03 0
7.0000000e+00 0 20 0 1.1385589e-03 0
8.0000000e+00 0 0 0 1.1383168e-03 0
8.0000000e+00 0 20 0 1.1383168e-03 0
9.0000000e+00 0 0 0 1.1374066e-03 0
9.0000000e+00 0 20 0 1.1374066e-03 0
1.0000000e+01 0 0 0 1.1355196e-03 0
1.0000000e+01 0 20 0 1.1355196e-03 0
1.1000000e+01 0 0 0 1.1322640e-03 0
1.1000000e+01 0 20 0 1.1322640e-03 0
1.2000000e+01 0 0 0 1.1271451e-03 0
1.2000000e+01 0 20 0 1.1271451e-03 0
1.3000000e+01 0 0 0 1.1195471e-03 0
1.3000000e+01 0 20 0 1.1195471e-03 0
1.4000000e+01 0 0 0 1.1087207e-03 0
1.4000000e+01 0 20 0 1.1087207e-03 0
1.5000000e+01 0 0 0 1.0937932e-03 0
1.5000000e+01 0 20 0 1.0937932e-03 0
1.6000000e+01 0 0 0 1.0738238e-03 0
1.6000000e+01 0 20 0 1.0738238e-03 0
1.7000000e+01 0 0 0 1.0479326e-03 0
1.7000000e+01 0 20 0 1.0479326e-03 0
1.8000000e+01 0 0 0 1.0155087e-03 0
1.8000000e+01 0 20 0 1.0155087e-03 0
1.9000000e+01 0 0 0 9.7642128e-04 0
1.9000000e+01 0 20 0 9.7642128e-04 0
2.0000000e+01 0 0 0 9.3109490e-04 0
2.0000000e+01 0 20 0 9.3109490e-04 0
2.1000000e+01 0 0 0 8.8037814e-04 0
2.1000000e+01 0 20 0 8.8037814e-04 0
2.2000000e+01 0 0 0 8.2530227e-04 0
2.2000000e+01 0 20 0 8.2530227e-04 0
2.3000000e+01 0 0 0 7.6687852e-04 0
2.3000000e+01 0 20 0 7.6687852e-04 0
2.4000000e+01 0 0 0 7.0599560e-04 0
2.4000000e+01 0 20 0 7.0599560e-04 0
2.5000000e+01 0 0 0 6.4339740e-04 0
2.5000000e+01 0 20 0 6.4339740e-04 0
2.6000000e+01 0 0 0 5.7970163e-04 0
2.6000000e+01 0 20 0 5.7970163e-04 0
2.7000000e+01 0 0 0 5.1543274e-04 0
2.7000000e+01 0 20 0 5.1543274e-04 0
2.8000000e+01 0 0 0 4.5105685e-04 0
2.8000000e+01 0 20 0 4.5105685e-04 0
2.9000000e+01 0 0 0 3.8701483e-04 0
2.9000000e+01 0 20 0 3.8701483e-04 0
3.0000000e+01 0 0 0 3.2375422e-04 0
3.0000000e+01 0 20 0 3.2375422e-04 0
3.1000000e+01 0 0 0 2.6176224e-04 0
3.1000000e+01 0 20 0 2.6176224e-04 0
3.2000000e+01 0 0 0 2.0160348e-04 0
3.2000000e+01 0 20 0 2.0160348e-04 0
3.3000000e+01 0 0 0 1.4396412e-04 0
3.3000000e+01 0 20 0 1.4396412e-04 0
3.4000000e+01 0 0 0 8.9697678e-05 0
3.4000000e+01 0 20 0 8.9697678e-05 0
3.5000000e+01 0 0 0 3.9848332e-05 0
3.5000000e+01 0 20 0 3.9848332e-05 0
3.6000000e+01 0 0 0 -4.4041645e-06 0
3.6000000e+01 0 20 0 -4.4041645e-06 0
3.7000000e+01 0 0 0 -4.1948665e-05 0
3.7000000e+01 0 20 0 -4.1948665e-05 0
3.8000000e+01 0 0 0 -7.2089079e-05 0
3.8000000e+01 0 20 0 -7.2089079e-05 0
3.9000000e+01 0 0 0 -9.4844419e-05 0
3.9000000e+01 0 20 0 -9.4844419e-05 0
4.0000000e+01 0 0 0 -1.1095290e-04 0
4.0000000e+01 0 20 0 -1.1095290e-04 0
4.1000000e+01 0 0 0 -1.2157438e-04 0
4.1000000e+01 0 20 0 -1.2157438e-04 0
4.2000000e+01 0 0 0 -1.2793545e-04 0
4.2000000e+01 0 20 0 -1.2793545e-04 0
4.3000000e+01 0 0 0 -1.3111042e-04 0
4.3000000e+01 0 20 0 -1.3111042e-04 0
4.4000000e+01 0 0 0 -1.3195272e-04 0
4.4000000e+01 0 20 0 -1.3195272e-04 0
4.5000000e+01 0 0 0 -1.3110933e-04 0
4.5000000e+01 0 20 0 -1.3110933e-04 0
4.6000000e+01 0 0 0 -1.2906196e-04 0
4.6000000e+01 0 20 0 -1.2906196e-04 0
4.7000000e+01 0 0 0 -1.2616788e-04 0
4.7000000e+01 0 20 0 -1.2616788e-04 0
4.8000000e+01 0 0 0 -1.2269274e-04 0
4.8000000e+01 0 20 0 -1.2269274e-04 0
4.9000000e+01 0 0 0 -1.1883471e-04 0
4.9000000e+01 0 20 0 -1.1883471e-04 0
5.0000000e+01 0 0 0 -1.1474199e-04 0
5.0000000e+01 0 20 0 -1.1474199e-04 0
5.1000000e+01 0 0 0 -1.1052536e-04 0
5.1000000e+01 0 20 0 -1.1052536e-04 0
5.2000000e+01 0 0 0 -1.0626737e-04 0
5.2000000e+01 0 20 0 -1.0626737e-04 0
5.3000000e+01 0 0 0 -1.0202909e-04 0
5.3000000e+01 0 20 0 -1.0202909e-04 0
5.4000000e+01 0 0 0 -9.7855223e-05 0
5.4000000e+01 0 20 0 -9.7855223e-05 0
5.5000000e+01 0 0 0 -9.3777888e-05 0
5.5000000e+01 0 20 0 -9.3777888e-05 0
5.6000000e+01 0 0 0 -8.9819586e-05 0
5.6000000e+01 0 20 0 -8.9819586e-05 0
5.7000000e+01 0 0 0 -8.5995449e-05 0
5.7000000e+01 0 20 0 -8.5995449e-05 0
5.8000000e+01 0 0 0 -8.2314978e-05 0
5.8000000e+01 0 20 0 -8.2314978e-05 0
5.9000000e+01 0 0 0 -7.8783399e-05 0
5.9000000e+01 0 20 0 -7.8783399e-05 0
6.0000000e+01 0 0 0 -7.5402713e-05 0
6.0000000e+01 0 20 0 -7.5402713e-05 0
6.1000000e+01 0 0 0 -7.2172507e-05 0
6.1000000e+01 0 20 0 -7.2172507e-05 0
6.2000000e+01 0 0 0 -6.9090590e-05 0
6.2000000e+01 0 20 0 -6.9090590e-05 0
6.3000000e+01 0 0 0 -6.6153484e-05 0
6.3000000e+01 0 20 0 -6.6153484e-05 0
6.4000000e+01 0 0 0 -6.3356805e-05 0
6.4000000e+01 0 20 0 -6.3356805e-05 0
6.5000000e+01 0 0 0 -6.0695551e-05 0
6.5000000e+01 0 20 0 -6.0695551e-05 0
6.6000000e+01 0 0 0 -5.8164335e-05 0
6.6000000e+01 0 20 0 -5.8164335e-05 0
6.7000000e+01 0 0 0 -5.5757548e-05 0
6.7000000e+01 0 20 0 -5.5757548e-05 0
6.8000000e+01 0 0 0 -5.3469496e-05 0
6.8000000e+01 0 20 0 -5.3469496e-05 0
6.9000000e+01 0 0 0 -5.1294495e-05 0
6.9000000e+01 0 20 0 -5.1294495e-05 0
7.0000000e+01 0 0 0 -4.9226940e-05 0
7.0000000e+01 0 20 0 -4.9226940e-05 0
7.1000000e+01 0 0 0 -4.7261364e-05 0
7.1000000e+01 0 20 0 -4.7261364e-05 0
7.2000000e+01 0 0 0 -4.5392469e-05 0
7.2000000e+01 0 20 0 -4.5392469e-05 0
7.3000000e+01 0 0 0 -4.3615153e-05 0
7.3000000e+01 0 20 0 -4.3615153e-05 0
7.4000000e+01 0 0 0 -4.1924529e-05 0
7.4000000e+01 0 20 0 -4.1924529e-05 0
7.5000000e+01 0 0 0 -4.0315927e-05 0
7.5000000e+01 0 20 0 -4.0315927e-05 0
7.6000000e+01 0 0 0 -3.8784905e-05 0
7.6000000e+01 0 20 0 -3.8784905e-05 0
7.7000000e+01 0 0 0 -3.7327244e-05 0
7.7000000e+01 0 20 0 -3.7327244e-05 0
7.8000000e+01 0 0 0 -3.5938946e-05 0
7.8000000e+01 0 20 0 -3.5938946e-05 0
7.9000000e+01 0 0 0 -3.4616230e-05 0
7.9000000e+01 0 20 0 -3.4616230e-05 0
8.0000000e+01 0 0 0 -3.3355521e-05 0
8.0000000e+01 0 20 0 -3.3355521e-05 0
8.1000000e+01 0 0 0 -3.2153447e-05 0
8.1000000e+01 0 20 0 -3.2153447e-05 0
8.2000000e+01 0 0 0 -3.1006827e-05 0
8.2000000e+01 0 20 0 -3.1006827e-05 0
8.3000000e+01 0 0 0 -2.9912663e-05 0
8.3000000e+01 0 20 0 -2.9912663e-05 0
8.4000000e+01 0 0 0 -2.8868131e-05 0
8.4000000e+01 0 20 0 -2.8868131e-05 0
8.5000000e+01 0 0 0 -2.7870571e-05 0
8.5000000e+01 0 20 0 -2.7870571e-05 0
8.6000000e+01 0 0 0 -2.6917478e-05 0
8.6000000e+01 0 20 0 -2.6917478e-05 0
8.7000000e+01 0 0 0 -2.6006495e-05 0
8.7000000e+01 0 20 0 -2.6006495e-05 0
8.8000000e+01 0 0 0 -2.5135405e-05 0
8.8000000e+01 0 20 0 -2.5135405e-05 0
8.9000000e+01 0 0 0 -2.4302117e-05 0
8.9000000e+01 0 20 0 -2.4302117e-05 0
9.0000000e+01 0 0 0 -2.3504665e-05 0
9.0000000e+01 0 20 0 -2.3504665e-05 0
9.1000000e+01 0 0 0 -2.2741199e-05 0
9.1000000e+01 0 20 0 -2.2741199e-05 0
9.2000000e+01 0 0 0 -2.2009975e-05 0
9.2000000e+01 0 20 0 -2.2009975e-05 0
9.3000000e+01 0 0 0 -2.1309350e-05 0
9.3000000e+01 0 20 0 -2.1309350e-05 0
9.4000000e+01 0 0 0 -2.0637779e-05 0
9.4000000e+01 0 20 0 -2.0637779e-05 0
9.5000000e+01 0 0 0 -1.9993803e-05 0
9.5000000e+01 0 20 0 -1.9993803e-05 0
9.6000000e+01 0 0 0 -1.9376048e-05 0
9.6000000e+01 0 20 0 -1.9376048e-05 0
9.7000000e+01 0 0 0 -1.8783220e-05 0
9.7000000e+01 0 20 0 -1.8783220e-05 0
9.8000000e+01 0 0 0 -1.8214096e-05 0
9.8000000e+01 0 20 0 -1.8214096e-05 0
9.9000000e+01 0 0 0 -1.7667524e-05 0
9.9000000e+01 0 20 0 -1.7667524e-05 0
1.0000000e+02 0 0 0 -1.7142415e-05 0
1.0000000e+02 0 20 0 -1.7142415e-05 0
1.0100000e+02 0 0 0 -1.6637742e-05 0
1.0100000e+02 0 20 0 -1.6637742e-05 0
1.0200000e+02 0 0 0 -1.6152534e-05 0
1.0200000e+02 0 20 0 -1.6152534e-05 0
1.0300000e+02 0 0 0 -1.5685876e-05 0
1.0300000e+02 0 20 0 -1.5685876e-05 0
1.0400000e+02 0 0 0 -1.5236899e-05 0
1.0400000e+02 0 20 0 -1.5236899e-05 0
1.0500000e+02 0 0 0 -1.4804785e-05 0
1.0500000e+02 0 20 0 -1.4804785e-05 0
1.0600000e+02 0 0 0 -1.4388759e-05 0
1.0600000e+02 0 20 0 -1.4388759e-05 0
1.0700000e+02 0 0 0 -1.3988086e-05 0
1.0700000e+02 0 20 0 -1.3988086e-05 0
1.0800000e+02 0 0 0 -1.3602072e-05 0
1.0800000e+02 0 20 0 -1.3602072e-05 0
1.0900000e+02 0 0 0 -1.3230060e-05 0
1.0900000e+02 0 20 0 -1.3230060e-05 0
1.1000000e+02 0 0 0 -1.2871425e-05 0
1.1000000e+02 0 20 0 -1.2871425e-05 0
1.1100000e+02 0 0 0 -1.2525578e-05 0
1.1100000e+02 0 20 0 -1.2525578e-05 0
1.1200000e+02 0 0 0 -1.2191958e-05 0
1.1200000e+02 0 20 0 -1.2191958e-05 0
1.1300000e+02 0 0 0 -1.1870033e-05 0
1.1300000e+02 0 20 0 -1.1870033e-05 0
1.1400000e+02 0 0 0 -1.1559300e-05 0
1.1400000e+02 0 20 0 -1.1559300e-05 0
1.1500000e+02 0 0 0 -1.1259280e-05 0
1.1500000e+02 0 20 0 -1.1259280e-05 0
1.1600000e+02 0 0 0 -1.0969518e-05 0
1.1600000e+02 0 20 0 -1.0969518e-05 0
1.1700000e+02 0 0 0 -1.0689581e-05 0
1.1700000e+02 0 20 0 -1.0689581e-05 0
1.1800000e+02 0 0 0 -1.0419061e-05 0
1.1800000e+02 0 20 0 -1.0419061e-05 0
1.1900000e+02 0 0 0 -1.0157566e-05 0
1.1900000e+02 0 20 0 -1.0157566e-05 0
1.2000000e+02 0 0 0 -9.9047248e-06 0
1.2000000e+02 0 20 0 -9.9047248e-06 0
1.2100000e+02 0 0 0 -9.6601849e-06 0
1.2100000e+02 0 20 0 -9.6601849e-06 0
1.2200000e+02 0 0 0 -9.4236097e-06 0
1.2200000e+02 0 20 0 -9.4236097e-06 0
1.2300000e+02 0 0 0 -9.1946792e-06 0
1.2300000e+02 0 20 0 -9.1946792e-06 0
1.2400000e+02 0 0 0 -8.9730884e-06 0
1.2400000e+02 0 20 0 -8.9730884e-06 0
1.2500000e+02 0 0 0 -8.7585467e-06 0
1.2500000e+02 0 20 0 -8.7585467e-06 0
1.2600000e+02 0 0 0 -8.5507773e-06 0
1.2600000e+02 0 20 0 -8.5507773e-06 0
1.2700000e+02 0 0 0 -8.3495160e-06 0
1.2700000e+02 0 20 0 -8.3495160e-06 0
1.2800000e+02 0 0 0 -8.1545110e-06 0
1.2800000e+02 0 20 0 -8.1545110e-06 0
1.2900000e+02 0 0 0 -7.9655218e-06 0
1.2900000e+02 0 20 0 -7.9655218e-06 0
1.3000000e+02 0 0 0 -7.7823191e-06 0
1.3000000e+02 0 20 0 -7.7823191e-06 0
1.3100000e+02 0 0 0 -7.6046838e-06 0
1.3100000e+02 0 20 0 -7.6046838e-06 0
1.3200000e+02 0 0 0 -7.4324065e-06 0
1.3200000e+02 0 20 0 -7.4324065e-06 0
1.3300000e+02 0 0 0 -7.2652875e-06 0
1.3300000e+02 0 20 0 -7.2652875e-06 0
1.3400000e+02 0 0 0 -7.1031356e-06 0
1.3400000e+02 0 20 0 -7.1031356e-06 0
1.3500000e+02 0 0 0 -6.9457681e-06 0
1.3500000e+02 0 20 0 -6.9457681e-06 0
1.3600000e+02 0 0 0 -6.7930102e-06 0
1.3600000e+02 0 20 0 -6.7930102e-06 0
1.3700000e+02 0 0 0 -6.6446950e-06 0
1.3700000e+02 0 20 0 -6.6446950e-06 0
1.3800000e+02 0 0 0 -6.5006623e-06 0
1.3800000e+02 0 20 0 -6.5006623e-06 0
1.3900000e+02 0 0 0 -6.3607590e-06 0
1.3900000e+02 0 20 0 -6.3607590e-06 0
1.4000000e+02 0 0 0 -6.2248386e-06 0
1.4000000e+02 0 20 0 -6.2248386e-06 0
1.4100000e+02 0 0 0 -6.0927605e-06 0
1.4100000e+02 0 20 0 -6.0927605e-06 0
1.4200000e+02 0 0 0 -5.9643902e-06 0
1.4200000e+02 0 20 0 -5.9643902e-06 0
1.4300000e+02 0 0 0 -5.8395988e-06 0
1.4300000e+02 0 20 0 -5.8395988e-06 0
1.4400000e+02 0 0 0 -5.7182625e-06 0
1.4400000e+02 0 20 0 -5.7182625e-06 0
1.4500000e+02 0 0 0 -5.6002629e-06 0
1.4500000e+02 0 20 0 -5.6002629e-06 0
1.4600000e+02 0 0 0 -5.4854861e-06 0
1.4600000e+02 0 20 0 -5.4854861e-06 0
1.4700000e+02 0 0 0 -5.3738232e-06 0
1.4700000e+02 0 20 0 -5.3738232e-06 0
1.4800000e+02 0 0 0 -5.2651692e-06 0
1.4800000e+02 0 20 0 -5.2651692e-06 0
1.4900000e+02 0 0 0 -5.1594237e-06 0
1.4900000e+02 0 20 0 -5.1594237e-06 0
1.5000000e+02 0 0 0 -5.0564902e-06 0
1.5000000e+02 0 20 0 -5.0564902e-06 0
1.5100000e+02 0 0 0 -4.9562759e-06 0
1.5100000e+02 0 20 0 -4.9562759e-06 0
1.5200000e+02 0 0 0 -4.8586917e-06 0
1.5200000e+02 0 20 0 -4.8586917e-06 0
1.5300000e+02 0 0 0 -4.7636519e-06 0
1.5300000e+02 0 20 0 -4.7636519e-06 0
1.5400000e+02 0 0 0 -4.6710744e-06 0
1.5400000e+02 0 20 0 -4.6710744e-06 0
1.5500000e+02 0 0 0 -4.5808798e-06 0
1.5500000e+02 0 20 0 -4.5808798e-06 0
1.5600000e+02 0 0 0 -4.4929922e-06 0
1.5600000e+02 0 20 0 -4.4929922e-06 0
1.5700000e+02 0 0 0 -4.4073382e-06 0
1.5700000e+02 0 20 0 -4.4073382e-06 0
1.5800000e+02 0 0 0 -4.3238475e-06 0
1.5800000e+02 0 20 0 -4.3238475e-06 0
1.5900000e+02 0 0 0 -4.2424522e-06 0
1.5900000e+02 0 20 0 -4.2424522e-06 0
1.6000000e+02 0 0 0 -4.1630870e-06 0
1.6000000e+02 0 20 0 -4.1630870e-06 0
1.6100000e+02 0 0 0 -4.0856892e-06 0
1.6100000e+02 0 20 0 -4.0856892e-06 0
1.6200000e+02 0 0 0 -4.0101980e-06 0
1.6200000e+02 0 20 0 -4.0101980e-06 0
1.6300000e+02 0 0 0 -3.9365553e-06 0
1.6300000e+02 0 20 0 -3.9365553e-06 0
1.6400000e+02 0 0 0 -3.8647049e-06 0
1.6400000e+02 0 20 0 -3.8647049e-06 0
1.6500000e+02 0 0 0 -3.7945925e-06 0
1.6500000e+02 0 20 0 -3.7945925e-06 0
1.6600000e+02 0 0 0 -3.7261659e-06 0
1.6600000e+02 0 20 0 -3.7261659e-06 0
1.6700000e+02 0 0 0 -3.6593749e-06 0
1.6700000e+02 0 20 0 -3.6593749e-06 0
1.6800000e+02 0 0 0 -3.5941708e-06 0
1.6800000e+02 0 20 0 -3.5941708e-06 0
1.6900000e+02 0 0 0 -3.5305069e-06 0
1.6900000e+02 0 20 0 -3.5305069e-06 0
1.7000000e+02 0 0 0 -3.4683379e-06 0
1.7000000e+02 0 20 0 -3.4683379e-06 0
1.7100000e+02 0 0 0 -3.4076203e-06 0
1.7100000e+02 0 20 0 -3.4076203e-06 0
1.7200000e+02 0 0 0 -3.3483118e-06 0
1.7200000e+02 0 20 0 -3.3483118e-06 0
1.7300000e+02 0 0 0 -3.2903720e-06 0
1.7300000e+02 0 20 0 -3.2903720e-06 0
1.7400000e+02 0 0 0 -3.2337616e-06 0
1.7400000e+02 0 20 0 -3.2337616e-06 0
1.7500000e+02 0 0 0 -3.1784426e-06 0
1.7500000e+02 0 20 0 -3.1784426e-06 0
1.7600000e+02 0 0 0 -3.1243785e-06 0
1.7600000e+02 0 20 0 -3.1243785e-06 0
1.7700000e+02 0 0 0 -3.0715338e-06 0
1.7700000e+02 0 20 0 -3.0715338e-06 0
1.7800000e+02 0 0 0 -3.0198745e-06 0
1.7800000e+02 0 20 0 -3.0198745e-06 0
1.7900000e+02 0 0 0 -2.9693674e-06 0
1.7900000e+02 0 20 0 -2.9693674e-06 0
1.8000000e+02 0 0 0 -2.9199807e-06 0
1.8000000e+02 0 20 0 -2.9199807e-06 0
1.8100000e+02 0 0 0 -2.8716834e-06 0
1.8100000e+02 0 20 0 -2.8716834e-06 0
1.8200000e+02 0 0 0 -2.8244456e-06 0
1.8200000e+02 0 20 0 -2.8244456e-06 0
1.8300000e+02 0 0 0 -2.7782385e-06 0
1.8300000e+02 0 20 0 -2.7782385e-06 0
1.8400000e+02 0 0 0 -2.7330342e-06 0
1.8400000e+02 0 20 0 -2.7330342e-06 0
1.8500000e+02 0 0 0 -2.6888054e-06 0
1.8500000e+02 0 20 0 -2.6888054e-06 0
1.8600000e+02 0 0 0 -2.6455262e-06 0
1.8600000e+02 0 20 0 -2.6455262e-06 0
1.8700000e+02 0 0 0 -2.6031711e-06 0
1.8700000e+02 0 20 0 -2.6031711e-06 0
1.8800000e+02 0 0 0 -2.5617156e-06 0
1.8800000e+02 0 20 0 -2.5617156e-06 0
1.8900000e+02 0 0 0 -2.5211360e-06 0
1.8900000e+02 0 20 0 -2.5211360e-06 0
1.9000000e+02 0 0 0 -2.4814092e-06 0
1.9000000e+02 0 20 0 -2.4814092e-06 0
1.9100000e+02 0 0 0 -2.4425130e-06 0
1.9100000e+02 0 20 0 -2.4425130e-06 0
1.9200000e+02 0 0 0 -2.4044257e-06 0
1.9200000e+02 0 20 0 -2.4044257e-06 0
1.9300000e+02 0 0 0 -2.3671265e-06 0
1.9300000e+02 0 20 0 -2.3671265e-06 0
1.9400000e+02 0 0 0 -2.3305950e-06 0
1.9400000e+02 0 20 0 -2.3305950e-06 0
1.9500000e+02 0 0 0 -2.2948117e-06 0
1.9500000e+02 0 20 0 -2.2948117e-06 0
1.9600000e+02 0 0 0 -2.2597574e-06 0
1.9600000e+02 0 20 0 -2.2597574e-06 0
1.9700000e+02 0 0 0 -2.2254136e-06 0
1.9700000e+02 0 20 0 -2.2254136e-06 0
1.9800000e+02 0 0 0 -2.1917626e-06 0
1.9800000e+02 0 20 0 -2.1917626e-06 0
1.9900000e+02 0 0 0 -2.1587868e-06 0
1.9900000e+02 0 20 0 -2.1587868e-06 0
2.0000000e+02 0 0 0 -2.1264695e-06 0
2.0000000e+02 0 20 0 -2.1264695e-06 0
2.0100000e+02 0 0 0 -2.0947942e-06 0
2.0100000e+02 0 20 0 -2.0947942e-06 0
2.0200000e+02 0 0 0 -2.0637452e-06 0
2.0200000e+02 0 20 0 -2.0637452e-06 0
2.0300000e+02 0 0 0 -2.0333069e-06 0
2.0300000e+02 0 20 0 -2.0333069e-06 0
2.0400000e+02 0 0 0 -2.0034646e-06 0
2.0400000e+02 0 20 0 -2.0034646e-06 0
2.0500000e+02 0 0 0 -1.9742035e-06 0
2.0500000e+02 0 20 0 -1.9742035e-06 0
2.0600000e+02 0 0 0 -1.9455098e-06 0
2.0600000e+02 0 20 0 -1.9455098e-06 0
2.0700000e+02 0 0 0 -1.9173696e-06 0
2.0700000e+02 0 20 0 -1.9173696e-06 0
2.0800000e+02 0 0 0 -1.8897697e-06 0
2.0800000e+02 0 20 0 -1.8897697e-06 0
2.0900000e+02 0 0 0 -1.8626972e-06 0
2.0900000e+02 0 20 0 -1.8626972e-06 0
2.1000000e+02 0 0 0 -1.8361395e-06 0
2.1000000e+02 0 20 0 -1.8361395e-06 0
2.1100000e+02 0 0 0 -1.8100845e-06 0
2.1100000e+02 0 20 0 -1.8100845e-06 0
2.1200000e+02 0 0 0 -1.7845203e-06 0
2.1200000e+02 0 20 0 -1.7845203e-06 0
2.1300000e+02 0 0 0 -1.7594355e-06 0
2.1300000e+02 0 20 0 -1.7594355e-06 0
2.1400000e+02 0 0 0 -1.7348188e-06 0
2.1400000e+02 0 20 0 -1.7348188e-06 0
2.1500000e+02 0 0 0 -1.7106593e-06 0
2.1500000e+02 0 20 0 -1.7106593e-06 0
2.1600000e+02 0 0 0 -1.6869465e-06 0
2.1600000e+02 0 20 0 -1.6869465e-06 0
2.1700000e+02 0 0 0 -1.6636702e-06 0
2.1700000e+02 0 20 0 -1.6636702e-06 0
2.1800000e+02 0 0 0 -1.6408202e-06 0
2.1800000e+02 0 20 0 -1.6408202e-06 0
2.1900000e+02 0 0 0 -1.6183870e-06 0
2.1900000e+02 0 20 0 -1.6183870e-06 0
2.2000000e+02 0 0 0 -1.5963610e-06 0
2.2000000e+02 0 20 0 -1.5963610e-06 0
2.2100000e+02 0 0 0 -1.5747331e-06 0
2.2100000e+02 0 20 0 -1.5747331e-06 0
2.2200000e+02 0 0 0 -1.5534942e-06 0
2.2200000e+02 0 20 0 -1.5534942e-06 0
2.2300000e+02 0 0 0 -1.5326357e-06 0
2.2300000e+02 0 20 0 -1.5326357e-06 0
2.2400000e+02 0 0 0 -1.5121491e-06 0
2.2400000e+02 0 20 0 -1.5121491e-06 0
2.2500000e+02 0 0 0 -1.4920261e-06 0
2.2500000e+02 0 20 0 -1.4920261e-06 0
2.2600000e+02 0 0 0 -1.4722587e-06 0
2.2600000e+02 0 20 0 -1.4722587e-06 0
2.2700000e+02 0 0 0 -1.4528392e-06 0
2.2700000e+02 0 20 0 -1.4528392e-06 0
2.2800000e+02 0 0 0 -1.4337598e-06 0
2.2800000e+02 0 20 0 -1.4337598e-06 0
2.2900000e+02 0 0 0 -1.4150131e-06 0
2.2900000e+02 0 20 0 -1.4150131e-06 0
2.3000000e+02 0 0 0 -1.3965920e-06 0
2.3000000e+02 0 20 0 -1.3965920e-06 0
2.3100000e+02 0 0 0 -1.3784893e-06 0
2.3100000e+02 0 20 0 -1.3784893e-06 0
2.3200000e+02 0 0 0 -1.3606983e-06 0
2.3200000e+02 0 20 0 -1.3606983e-06 0
2.3300000e+02 0 0 0 -1.3432122e-06 0
2.3300000e+02 0 20 0 -1.3432122e-06 0
2.3400000e+02 0 0 0 -1.3260246e-06 0
2.3400000e+02 0 20 0 -1.3260246e-06 0
2.3500000e+02 0 0 0 -1.3091291e-06 0
2.3500000e+02 0 20 0 -1.3091291e-06 0
2.3600000e+02 0 0 0 -1.2925195e-06 0
2.3600000e+02 0 20 0 -1.2925195e-06 0
2.3700000e+02 0 0 0 -1.2761899e-06 0
2.3700000e+02 0 20 0 -1.2761899e-06 0
2.3800000e+02 0 0 0 -1.2601342e-06 0
2.3800000e+02 0 20 0 -1.2601342e-06 0
2.3900000e+02 0 0 0 -1.2443469e-06 0
2.3900000e+02 0 20 0 -1.2443469e-06 0
2.4000000e+02 0 0 0 -1.2288222e-06 0
2.4000000e+02 0 20 0 -1.2288222e-06 0
2.4100000e+02 0 0 0 -1.2135549e-06 0
2.4100000e+02 0 20 0 -1.2135549e-06 0
2.4200000e+02 0 0 0 -1.1985395e-06 0
2.4200000e+02 0 20 0 -1.1985395e-06 0
2.4300000e+02 0 0 0 -1.1837709e-06 0
2.4300000e+02 0 20 0 -1.1837709e-06 0
2.4400000e+02 0 0 0 -1.1692440e-06 0
2.4400000e+02 0 20 0 -1.1692440e-06 0
2.4500000e+02 0 0 0 -1.1549539e-06 0
2.4500000e+02 0 20 0 -1.1549539e-06 0
2.4600000e+02 0 0 0 -1.1408959e-06 0
2.4600000e+02 0 20 0 -1.1408959e-06 0
2.4700000e+02 0 0 0 -1.1270652e-06 0
2.4700000e+02 0 20 0 -1.1270652e-06 0
2.4800000e+02 0 0 0 -1.1134572e-06 0
2.4800000e+02 0 20 0 -1.1134572e-06 0
2.4900000e+02 0 0 0 -1.1000674e-06 0
2.4900000e+02 0 20 0 -1.1000674e-06 0
2.5000000e+02 0 0 0 -1.0868916e-06 0
2.5000000e+02 0 20 0 -1.0868916e-06 0
2.5100000e+02 0 0 0 -1.0739254e-06 0
2.5100000e+02 0 20 0 -1.0739254e-06 0
2.5200000e+02 0 0 0 -1.0611648e-06 0
2.5200000e+02 0 20 0 -1.0611648e-06 0
2.5300000e+02 0 0 0 -1.0486055e-06 0
2.5300000e+02 0 20 0 -1.0486055e-06 0
2.5400000e+02 0 0 0 -1.0362438e-06 0
2.5400000e+02 0 20 0 -1.0362438e-06 0
2.5500000e+02 0 0 0 -1.0240757e-06 0
2.5500000e+02 0 20 0 -1.0240757e-06 0
2.5600000e+02 0 0 0 -1.0120974e-06 0
2.5600000e+02 0 20 0 -1.0120974e-06 0
2.5700000e+02 0 0 0 -1.0003052e-06 0
2.5700000e+02 0 20 0 -1.0003052e-06 0
2.5800000e+02 0 0 0 -9.8869563e-07 0
2.5800000e+02 0 20 0 -9.8869563e-07 0
2.5900000e+02 0 0 0 -9.7726506e-07 0
2.5900000e+02 0 20 0 -9.7726506e-07 0
2.6000000e+02 0 0 0 -9.6601007e-07 0
2.6000000e+02 0 20 0 -9.6601007e-07 0
2.6100000e+02 0 0 0 -9.5492732e-07 0
2.6100000e+02 0 20 0 -9.5492732e-07 0
2.6200000e+02 0 0 0 -9.4401351e-07 0
2.6200000e+02 0 20 0 -9.4401351e-07 0
2.6300000e+02 0 0 0 -9.3326544e-07 0
2.6300000e+02 0 20 0 -9.3326544e-07 0
2.6400000e+02 0 0 0 -9.2267997e-07 0
2.6400000e+02 0 20 0 -9.2267997e-07 0
2.6500000e+02 0 0 0 -9.1225405e-07 0
2.6500000e+02 0 20 0 -9.1225405e-07 0
2.6600000e+02 0 0 0 -9.0198466e-07 0
2.6600000e+02 0 20 0 -9.0198466e-07 0
2.6700000e+02 0 0 0 -8.9186889e-07 0
2.6700000e+02 0 20 0 -8.9186889e-07 0
2.6800000e+02 0 0 0 -8.8190387e-07 0
2.6800000e+02 0 20 0 -8.8190387e-07 0
2.6900000e+02 0 0 0 -8.7208681e-07 0
2.6900000e+02 0 20 0 -8.7208681e-07 0
2.7000000e+02 0 0 0 -8.6241497e-07 0
2.7000000e+02 0 20 0 -8.6241497e-07 0
2.7100000e+02 0 0 0 -8.5288566e-07 0
2.7100000e+02 0 20 0 -8.5288566e-07 0
2.7200000e+02 0 0 0 -8.4349629e-07 0
2.7200000e+02 0 20 0 -8.4349629e-07 0
2.7300000e+02 0 0 0 -8.3424427e-07 0
2.7300000e+02 0 20 0 -8.3424427e-07 0
2.7400000e+02 0 0 0 -8.2512712e-07 0
2.7400000e+02 0 20 0 -8.2512712e-07 0
2.7500000e+02 0 0 0 -8.1614239e-07 0
2.7500000e+02 0 20 0 -8.1614239e-07 0
2.7600000e+02 0 0 0 -8.0728767e-07 0
2.7600000e+02 0 20 0 -8.0728767e-07 0
2.7700000e+02 0 0 0 -7.9856062e-07 0
2.7700000e+02 0 20 0 -7.9856062e-07 0
2.7800000e+02 0 0 0 -7.8995895e-07 0
2.7800000e+02 0 20 0 -7.8995895e-07 0
2.7900000e+02 0 0 0 -7.8148042e-07 0
2.7900000e+02 0 20 0 -7.8148042e-07 0
2.8000000e+02 0 0 0 -7.7312283e-07 0
2.8000000e+02 0 20 0 -7.7312283e-07 0
2.8100000e+02 0 0 0 -7.6488402e-07 0
2.8100000e+02 0 20 0 -7.6488402e-07 0
2.8200000e+02 0 0 0 -7.5676191e-07 0
2.8200000e+02 0 20 0 -7.5676191e-07 0
2.8300000e+02 0 0 0 -7.4875442e-07 0
2.8300000e+02 0 20 0 -7.4875442e-07 0
2.8400000e+02 0 0 0 -7.4085954e-07 0
2.8400000e+02 0 20 0 -7.4085954e-07 0
2.8500000e+02 0 0 0 -7.3307530e-07 0
2.8500000e+02 0 20 0 -7.3307530e-07 0
2.8600000e+02 0 0 0 -7.2539977e-07 0
2.8600000e+02 0 20 0 -7.2539977e-07 0
2.8700000e+02 0 0 0 -7.1783106e-07 0
2.8700000e+02 0 20 0 -7.1783106e-07 0
2.8800000e+02 0 0 0 -7.1036730e-07 0
2.8800000e+02 0 20 0 -7.1036730e-07 0
2.8900000e+02 0 0 0 -7.0300670e-07 0
2.8900000e+02 0 20 0 -7.0300670e-07 0
2.9000000e+02 0 0 0 -6.9574747e-07 0
2.9000000e+02 0 20 0 -6.9574747e-07 0
2.9100000e+02 0 0 0 -6.8858787e-07 0
2.9100000e+02 0 20 0 -6.8858787e-07 0
2.9200000e+02 0 0 0 -6.8152620e-07 0
2.9200000e+02 0 20 0 -6.8152620e-07 0
2.9300000e+02 0 0 0 -6.7456080e-07 0
2.9300000e+02 0 20 0 -6.7456080e-07 0
2.9400000e+02 0 0 0 -6.6769001e-07 0
2.9400000e+02 0 20 0 -6.6769001e-07 0
2.9500000e+02 0 0 0 -6.6091226e-07 0
2.9500000e+02 0 20 0 -6.6091226e-07 0
2.9600000e+02 0 0 0 -6.5422595e-07 0
2.9600000e+02 0 20 0 -6.5422595e-07 0
2.9700000e+02 0 0 0 -6.4762956e-07 0
2.9700000e+02 0 20 0 -6.4762956e-07 0
2.9800000e+02 0 0 0 -6.4112159e-07 0
2.9800000e+02 0 20 0 -6.4112159e-07 0
2.9900000e+02 0 0 0 -6.3470054e-07 0
2.9900000e+02 0 20 0 -6.3470054e-07 0
3.0000000e+02 0 0 0 -6.2836498e-07 0
3.0000000e+02 0 20 0 -6.2836498e-07 0

File diff suppressed because it is too large Load Diff

315
run/SiPixel/1020.mac Normal file
View File

@ -0,0 +1,315 @@
#-----------------------------------------------------------------------
# Macro file for muSR instrument simulations
# GPS Mark-II template
# Unless specified otherwises, the default units are mm, ns, MeV, MeV/c.
# Lines starting with star "#" are comments.
#
###################################################################################
############################# G E O M E T R Y ###################################
###################################################################################
#
#=============================
# ROTATION MATRIXES:
/musr/command rotation matrix1 0 0 45
/musr/command rotation matrix2 0 180 0
/musr/command rotation matrix3 0 270 0
# Inner ring rotations - 8 segments, 0 deg tilt
/musr/command rotation matlti1 0 1 0 -45
/musr/command rotation matlti2 0 1 0 0
/musr/command rotation matlti3 0 1 0 45
/musr/command rotation matlti4 0 1 0 90
/musr/command rotation matlti5 0 1 0 135
/musr/command rotation matlti6 0 1 0 180
/musr/command rotation matlti7 0 1 0 225
/musr/command rotation matlti8 0 1 0 270
# Outer ring rotations - 10 segments, 0 deg tilt
/musr/command rotation matlto1 0 1 0 -45
/musr/command rotation matlto2 0 1 0 -9
/musr/command rotation matlto3 0 1 0 27
/musr/command rotation matlto4 0 1 0 63
/musr/command rotation matlto5 0 1 0 99
/musr/command rotation matlto6 0 1 0 135
/musr/command rotation matlto7 0 1 0 171
/musr/command rotation matlto8 0 1 0 -153
/musr/command rotation matlto9 0 1 0 -117
/musr/command rotation matlto10 0 1 0 -81
#
#=============================
# WORLD VOLUME
#
/musr/command construct box World 30 30 30 G4_Galactic 0 0 0 no_logical_volume norot dead -1
#
#############Remove here to test in GPS#####################
#/musr/command construct tubs tube 35.45 38.05 315 0 360 Steel 0 0 -613 log_World norot dead 8201
#/musr/command construct tubs tube_a 0 35.45 315 0 360 G4_Galactic 0 0 -613 log_World norot dead 8251
#
#=============================
# SECOND COLLIMATOR
#
#/musr/command construct tubs shield_collimA2 10 35 25 0 360 G4_Cu 0 0 290 log_tube_a norot dead 341
#
#=============================
# OLD ALC DESIGN: MSR 20.05.083 Flange
#
#/musr/command construct tubs flange 38.05 90 6 0 360 Steel 0 0 -934 log_World norot dead 8301
#
##############End of Removed to test in GPS################
#=============================
# POSITRON COUNTERS FORWARD BACKWARD UP DOWN RIGHT LEFT
#
#/musr/command construct GPSbackward forwardCounter 25 25 2.5 9.1 11.9 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 1
#/musr/command construct GPSbackward backwardCounter 30 30 2.5 8.80 7.64 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -30.0 log_World norot musr/ScintSD 2
#/musr/command construct box up 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE 57.5 0 0 log_World norot musr/ScintSD 3
#/musr/command construct box down 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE -57.5 0 0 log_World norot musr/ScintSD 4
#/musr/command construct box right1 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 -38 log_World norot musr/ScintSD 5
#/musr/command construct box right2 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 38 log_World norot musr/ScintSD 6
#/musr/command construct box right3 35 2.5 20 G4_PLASTIC_SC_VINYLTOLUENE 0 -51.25 0 log_World norot musr/ScintSD 7
#/musr/command construct box left1 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 -48.3 log_World norot musr/ScintSD 8
#/musr/command construct box left2 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 48.3 log_World norot musr/ScintSD 9
# FORWARD VETO
#/musr/command construct GPSbackwardVeto forwVetoA 9. 11.8 9. 11.8 2.5 6.25 6.7 6.25 6.7 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 51
#/musr/command construct GPSbackwardVeto forwVetoB 11.8 18.9 11.8 18.9 15 6.7 13.8 6.7 13.8 G4_PLASTIC_SC_VINYLTOLUENE 0 0 44.0 log_World norot musr/ScintSD 51
#/musr/command construct box forwVetoD 18.9 18.9 2.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 61.5 log_World norot musr/ScintSD 51
# BACKWARD VETO
#/musr/command construct GPSbackwardVeto backwardVeto 35.13 7.63 35.13 7.63 60 31 3.5 31 3.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -87.5 log_World norot musr/ScintSD 52
#=============================
# Pixel detectors
#
# /musr/command construct box name_of_pixel xlen ylen zlen G4_SI_SC xcoor ycoor zcoor log_World rot_mat musr/ScintSD 5??
# Inner set of pixel detectors
/musr/command construct box pixeli1 10 10 0.025 G4_Si 0.0 0.0 -10.0 log_World norot musr/ScintSD 501
/musr/command construct box pixeli2 10 10 0.025 G4_Si 0.0 0.0 10.0 log_World norot musr/ScintSD 502
/musr/command construct box pixeli3 10 0.025 10 G4_Si 0.0 -10.0 0.0 log_World norot musr/ScintSD 503
/musr/command construct box pixeli4 10 0.025 10 G4_Si 0.0 10.0 0.0 log_World norot musr/ScintSD 504
# Outer set of pixel detectors
/musr/command construct box pixelo1 20 20 0.025 G4_Si 0.0 0.0 -20.0 log_World norot musr/ScintSD 601
/musr/command construct box pixelo2 20 20 0.025 G4_Si 0.0 0.0 20.0 log_World norot musr/ScintSD 602
/musr/command construct box pixelo3 20 0.025 20 G4_Si 0.0 -20.0 0.0 log_World norot musr/ScintSD 603
/musr/command construct box pixelo4 20 0.025 20 G4_Si 0.0 20.0 0.0 log_World norot musr/ScintSD 604
#
#=============================
# OUTER SHIELD
#/musr/command construct tubeWithWindows tube1 20 21 33.5 14.5 33.5 14.5 33.5 G4_Cu 0 0 0 log_World matrix3 dead 401
#/musr/command construct tubs bottom1 0 20 0.5 0 360 G4_Cu 0 -33.0 0 log_World matrix3 dead 402
#/musr/command construct tubs window1 21 21.010 15 0 360 G4_Cu 0 0 0 log_World matrix3 dead 403
#/musr/command construct tubs bottom1a 0 20 0.5 0 360 G4_Cu 0 33.0 0 log_World matrix3 dead 404
# INNER SHIELD
#/musr/command construct tubeWithWindows tube2 11.5 12.5 21.5 7.5 21.5 10. 21.5 G4_Cu 0 0 0 log_World matrix3 dead 411
#/musr/command construct tubs bottom2 0 11.5 3.0 0 360 G4_Cu 0 -21.5 0 log_World matrix3 dead 412
#/musr/command construct tubs window2 12.5 12.510 8 0 360 G4_Cu 0 0 0 log_World matrix3 dead 413
#/musr/command construct tubs bottom2a 0 11.5 3.0 0 360 G4_Cu 0 21.5 0 log_World matrix3 dead 414
# HEATER
#/musr/command construct tubs heater 16 16.3 7.5 0 360 G4_Cu 0 -18.5 0 log_World matrix3 dead 415
#=============================
#
#=============================
# M COUNTERS AND M COUNTER HOLDER
#/musr/command construct tubs M0 0 7.5 0.15 0 360 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -25.0 log_World norot musr/ScintSD 102
#=============================
#
#=============================
# TARGET
/musr/command construct tubs target 0 10.0 0.215 0 360 G4_Ag 0 0 0 log_World norot dead 201
/musr/command construct tubs saveTarget 0 10.0 0.1 0 360 G4_Galactic 0 0 0 log_World norot dead 253
#/musr/command construct tubs targetFieldVol 0 0.5 0.015 0 360 G4_Ag 0 0 0 log_target norot dead 202
#=============================
#
#=============================
/musr/command visattributes G4_PLASTIC_SC_VINYLTOLUENE invisible
/musr/command visattributes G4_PLEXIGLASS yellow
/musr/command visattributes G4_Pb blue
/musr/command visattributes G4_Ag red
/musr/command visattributes log_World invisible
/musr/command visattributes log_target red
/musr/command visattributes G4_Si blue
#
###################################################################################
######################### M A G N E T I C F I E L D #########################
###################################################################################
# Set magnetic field (set field intensity in T and sigma in mm)
# syntax for magneticfield: fromfile filename fieldValue
# uniform fieldValue
# gaussian fieldValue sigma
#
#/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 3DBOpera GPS_WEP_xyz_Sym_2_from_000_cgs.table log_targetFieldVol 0.005
#/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 2D GPS_6kG_yAx_xRad_cgs.table log_targetFieldVol 0.300
/musr/command globalfield setparameter SetLargestAcceptableStep 2
/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
/musr/command globalfield printFieldValueAtPoint 0 0 0
/musr/command globalfield printFieldValueAtPoint 0 0 4
/musr/command globalfield printFieldValueAtPoint 0 0 8
/musr/command globalfield printFieldValueAtPoint 0 0 12
/musr/command globalfield printFieldValueAtPoint 0 0 16
/musr/command globalfield printFieldValueAtPoint 0 0 20
/musr/command globalfield printFieldValueAtPoint 4 0 0
/musr/command globalfield printFieldValueAtPoint 0 4 0
/musr/command globalfield printFieldValueAtPoint 80 80 200
#
###################################################################################
######################### P H Y S I C S P R O C E S S E S ##################
###################################################################################
# Geant 4.9.3
/musr/command process addDiscreteProcess gamma G4PhotoElectricEffect
/musr/command process addDiscreteProcess gamma G4ComptonScattering
/musr/command process addDiscreteProcess gamma G4GammaConversion
/musr/command process addDiscreteProcess gamma G4RayleighScattering
/musr/command process addProcess e- G4eMultipleScattering -1 1 1
/musr/command process addProcess e- G4eIonisation -1 2 2
/musr/command process addProcess e- G4eBremsstrahlung -1 3 3
/musr/command process addProcess e+ G4eMultipleScattering -1 1 1
/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
/musr/command process addProcess mu- G4MuMultipleScattering -1 1 1
/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+ G4MuMultipleScattering -1 1 1
#/musr/command process addModel mu+ G4MuMultipleScattering G4UrbanMscModel92 0
/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
#
#
#/home/install/geant4.9.3/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc
######## /process/msc/StepLimit Minimal | UseDistanceToBoundary | UseSafety
/process/msc/StepLimit UseSafety
#/process/msc/LateralDisplacement
/process/msc/RangeFactor 0.04
/process/msc/GeomFactor 2.5
#/process/msc/FactorForAngleLimit
/process/msc/Skin 3.0
#/process/msc/ThetaLimit 0.2 rad
#
###################################################################################
################## S O M E O T H E R P A R A M E T E R S ##################
###################################################################################
# Set the overall range cut
#/run/setCut 1 mm
# Set the range cut on a particular volumes (in mm)
/musr/command SetUserLimits log_target 0.01
#/musr/command SetUserLimits log_targetscint 0.01
#/musr/command SetUserLimits log_M0 0.01
# Store all events into the ROOT tree or just the interesting ones ? (true is default)
#/musr/command storeOnlyEventsWithHits false
# Set the minimum time separation between two subsequent signals in the same detector (in ns)
/musr/command signalSeparationTime 0.1
#
/musr/run/howOftenToPrintEvent 1000
/musr/command maximumRunTimeAllowed 86000
/musr/run/randomOption 2
###################################################################################
######################### R O O T O U T P U T ##############################
###################################################################################
#
#/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_time_end 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
/musr/command rootOutput odet_ID off
/musr/command rootOutput odet_nPhot off
/musr/command rootOutput odet_timeFirst off
/musr/command rootOutput odet_timeSecond off
/musr/command rootOutput odet_timeThird off
/musr/command rootOutput odet_timeA off
/musr/command rootOutput odet_timeB off
/musr/command rootOutput odet_timeC off
/musr/command rootOutput odet_timeD off
/musr/command rootOutput odet_timeMean off
/musr/command rootOutput odet_timeLast off
/musr/command rootOutput odet_timeCFD off
/musr/command rootOutput odet_amplCFD off
/musr/command rootOutput nOptPhot off
#
###################################################################################
######################### V I S U A L I S A T I O N ##############################
###################################################################################
#/vis/disable
/control/execute visVRML.mac
#/control/execute visFromToni.mac
#/control/execute visDawn50001.mac
#/vis/open VRML2FILE
#/vis/open DAWNFILE
### (if too many tracks cause core dump => storeTrajectory 0)
#/vis/scene/create
#
#/tracking/storeTrajectory 1
#/vis/viewer/set/viewpointThetaPhi 90 0
##/vis/viewer/set/globalLineWidthScale 3
#/vis/viewer/zoom 30
###/vis/scene/add/trajectories
#/vis/drawVolume
#/vis/viewer/flush
####/hits/verbose 2
#
###################################################################################
######################### P A R T I C L E G U N #################################
###################################################################################
#
/gun/vertex 0 0 -29 mm
# FWHM 10mm ==> sigma = 10/2.354 = 4.2481mm
#####################
/gun/vertexsigma 0 0 0 mm
#/gun/vertexsigma 0.5 0.5 0 mm
#####################
#---/gun/vertexboundary: rMaxAllowed, zMinAllowed, zMaxAllowed
/gun/vertexboundary 128 -999999 999999 mm
#####################
/gun/momentum 27.0 MeV
#####################
# sigma = 3% ==> sigma 27*0.03 = 0.81
/gun/momentumsmearing 0.81 MeV
#---/gun/momentumboundary: pMinAllowed, pMaxAllowed, dummy
#/gun/momentumboundary 20 40 0 MeV
# TURTLE
#/gun/turtlefilename FOR061_2008_04_22.DAT
#/gun/turtlefilename FOR070_2008_10_17_XXII.DAT
#/gun/turtlefilename FOR077_pie3_HiField_d05_x30.dat
#/gun/turtlefilename FOR077_reggiani_Jan2010_NEW.dat
#######################/gun/turtlefilename FOR077_reggiani_Feb2010.dat
#/gun/turtleZ0position -900 mm
#---/gun/tilt: xangle, yangle, dummy
#/gun/tilt 0 0.5 0 deg
#---/gun/tiltsigma: xangleSigma, yangleSigma, dummy (1 degree on 1 meter ~ 17mm)
#/gun/tiltsigma 0.2 0.2 0 deg
#/gun/pitch 0.5 deg
# Spin rotated by 50 degrees upwards:
#/gun/muonPolarizVector 0.173648 0. -0.98480775
/gun/muonPolarizVector 0. 0. -1.0
#---/gun/decaytimelimits: decayMin, decayMax, decayTime
#/gun/decaytimelimits 400 410 2197.03 ns
/gun/decaytimelimits -1 -1 2197.03 ns
#
#
###################################################################################
######################## B E A M O N #########################################
###################################################################################
#
#/run/beamOn 3000000
#/run/beamOn 100000
/run/beamOn 100

315
run/SiPixel/1021.mac Normal file
View File

@ -0,0 +1,315 @@
#-----------------------------------------------------------------------
# Macro file for muSR instrument simulations
# GPS Mark-II template
# Unless specified otherwises, the default units are mm, ns, MeV, MeV/c.
# Lines starting with star "#" are comments.
#
###################################################################################
############################# G E O M E T R Y ###################################
###################################################################################
#
#=============================
# ROTATION MATRIXES:
/musr/command rotation matrix1 0 0 45
/musr/command rotation matrix2 0 180 0
/musr/command rotation matrix3 0 270 0
# Inner ring rotations - 8 segments, 0 deg tilt
/musr/command rotation matlti1 0 1 0 -45
/musr/command rotation matlti2 0 1 0 0
/musr/command rotation matlti3 0 1 0 45
/musr/command rotation matlti4 0 1 0 90
/musr/command rotation matlti5 0 1 0 135
/musr/command rotation matlti6 0 1 0 180
/musr/command rotation matlti7 0 1 0 225
/musr/command rotation matlti8 0 1 0 270
# Outer ring rotations - 10 segments, 0 deg tilt
/musr/command rotation matlto1 0 1 0 -45
/musr/command rotation matlto2 0 1 0 -9
/musr/command rotation matlto3 0 1 0 27
/musr/command rotation matlto4 0 1 0 63
/musr/command rotation matlto5 0 1 0 99
/musr/command rotation matlto6 0 1 0 135
/musr/command rotation matlto7 0 1 0 171
/musr/command rotation matlto8 0 1 0 -153
/musr/command rotation matlto9 0 1 0 -117
/musr/command rotation matlto10 0 1 0 -81
#
#=============================
# WORLD VOLUME
#
/musr/command construct box World 30 30 30 G4_Galactic 0 0 0 no_logical_volume norot dead -1
#
#############Remove here to test in GPS#####################
#/musr/command construct tubs tube 35.45 38.05 315 0 360 Steel 0 0 -613 log_World norot dead 8201
#/musr/command construct tubs tube_a 0 35.45 315 0 360 G4_Galactic 0 0 -613 log_World norot dead 8251
#
#=============================
# SECOND COLLIMATOR
#
#/musr/command construct tubs shield_collimA2 10 35 25 0 360 G4_Cu 0 0 290 log_tube_a norot dead 341
#
#=============================
# OLD ALC DESIGN: MSR 20.05.083 Flange
#
#/musr/command construct tubs flange 38.05 90 6 0 360 Steel 0 0 -934 log_World norot dead 8301
#
##############End of Removed to test in GPS################
#=============================
# POSITRON COUNTERS FORWARD BACKWARD UP DOWN RIGHT LEFT
#
#/musr/command construct GPSbackward forwardCounter 25 25 2.5 9.1 11.9 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 1
#/musr/command construct GPSbackward backwardCounter 30 30 2.5 8.80 7.64 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -30.0 log_World norot musr/ScintSD 2
#/musr/command construct box up 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE 57.5 0 0 log_World norot musr/ScintSD 3
#/musr/command construct box down 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE -57.5 0 0 log_World norot musr/ScintSD 4
#/musr/command construct box right1 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 -38 log_World norot musr/ScintSD 5
#/musr/command construct box right2 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 38 log_World norot musr/ScintSD 6
#/musr/command construct box right3 35 2.5 20 G4_PLASTIC_SC_VINYLTOLUENE 0 -51.25 0 log_World norot musr/ScintSD 7
#/musr/command construct box left1 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 -48.3 log_World norot musr/ScintSD 8
#/musr/command construct box left2 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 48.3 log_World norot musr/ScintSD 9
# FORWARD VETO
#/musr/command construct GPSbackwardVeto forwVetoA 9. 11.8 9. 11.8 2.5 6.25 6.7 6.25 6.7 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 51
#/musr/command construct GPSbackwardVeto forwVetoB 11.8 18.9 11.8 18.9 15 6.7 13.8 6.7 13.8 G4_PLASTIC_SC_VINYLTOLUENE 0 0 44.0 log_World norot musr/ScintSD 51
#/musr/command construct box forwVetoD 18.9 18.9 2.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 61.5 log_World norot musr/ScintSD 51
# BACKWARD VETO
#/musr/command construct GPSbackwardVeto backwardVeto 35.13 7.63 35.13 7.63 60 31 3.5 31 3.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -87.5 log_World norot musr/ScintSD 52
#=============================
# Pixel detectors
#
# /musr/command construct box name_of_pixel xlen ylen zlen G4_SI_SC xcoor ycoor zcoor log_World rot_mat musr/ScintSD 5??
# Inner set of pixel detectors
/musr/command construct box pixeli1 10 10 0.025 G4_Si 0.0 0.0 -10.0 log_World norot musr/ScintSD 501
/musr/command construct box pixeli2 10 10 0.025 G4_Si 0.0 0.0 10.0 log_World norot musr/ScintSD 502
/musr/command construct box pixeli3 10 0.025 10 G4_Si 0.0 -10.0 0.0 log_World norot musr/ScintSD 503
/musr/command construct box pixeli4 10 0.025 10 G4_Si 0.0 10.0 0.0 log_World norot musr/ScintSD 504
# Outer set of pixel detectors
/musr/command construct box pixelo1 20 20 0.025 G4_Si 0.0 0.0 -20.0 log_World norot musr/ScintSD 601
/musr/command construct box pixelo2 20 20 0.025 G4_Si 0.0 0.0 20.0 log_World norot musr/ScintSD 602
/musr/command construct box pixelo3 20 0.025 20 G4_Si 0.0 -20.0 0.0 log_World norot musr/ScintSD 603
/musr/command construct box pixelo4 20 0.025 20 G4_Si 0.0 20.0 0.0 log_World norot musr/ScintSD 604
#
#=============================
# OUTER SHIELD
#/musr/command construct tubeWithWindows tube1 20 21 33.5 14.5 33.5 14.5 33.5 G4_Cu 0 0 0 log_World matrix3 dead 401
#/musr/command construct tubs bottom1 0 20 0.5 0 360 G4_Cu 0 -33.0 0 log_World matrix3 dead 402
#/musr/command construct tubs window1 21 21.010 15 0 360 G4_Cu 0 0 0 log_World matrix3 dead 403
#/musr/command construct tubs bottom1a 0 20 0.5 0 360 G4_Cu 0 33.0 0 log_World matrix3 dead 404
# INNER SHIELD
#/musr/command construct tubeWithWindows tube2 11.5 12.5 21.5 7.5 21.5 10. 21.5 G4_Cu 0 0 0 log_World matrix3 dead 411
#/musr/command construct tubs bottom2 0 11.5 3.0 0 360 G4_Cu 0 -21.5 0 log_World matrix3 dead 412
#/musr/command construct tubs window2 12.5 12.510 8 0 360 G4_Cu 0 0 0 log_World matrix3 dead 413
#/musr/command construct tubs bottom2a 0 11.5 3.0 0 360 G4_Cu 0 21.5 0 log_World matrix3 dead 414
# HEATER
#/musr/command construct tubs heater 16 16.3 7.5 0 360 G4_Cu 0 -18.5 0 log_World matrix3 dead 415
#=============================
#
#=============================
# M COUNTERS AND M COUNTER HOLDER
#/musr/command construct tubs M0 0 7.5 0.15 0 360 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -25.0 log_World norot musr/ScintSD 102
#=============================
#
#=============================
# TARGET
/musr/command construct tubs target 0 10.0 0.215 0 360 G4_Ag 0 0 0 log_World norot dead 201
/musr/command construct tubs saveTarget 0 10.0 0.01 0 360 G4_Galactic 0 0 -0.5 log_World norot dead 253
#/musr/command construct tubs targetFieldVol 0 0.5 0.015 0 360 G4_Ag 0 0 0 log_target norot dead 202
#=============================
#
#=============================
/musr/command visattributes G4_PLASTIC_SC_VINYLTOLUENE invisible
/musr/command visattributes G4_PLEXIGLASS yellow
/musr/command visattributes G4_Pb blue
/musr/command visattributes G4_Ag red
/musr/command visattributes log_World invisible
/musr/command visattributes log_target red
/musr/command visattributes G4_Si blue
#
###################################################################################
######################### M A G N E T I C F I E L D #########################
###################################################################################
# Set magnetic field (set field intensity in T and sigma in mm)
# syntax for magneticfield: fromfile filename fieldValue
# uniform fieldValue
# gaussian fieldValue sigma
#
#/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 3DBOpera GPS_WEP_xyz_Sym_2_from_000_cgs.table log_targetFieldVol 0.005
#/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 2D GPS_6kG_yAx_xRad_cgs.table log_targetFieldVol 0.300
/musr/command globalfield setparameter SetLargestAcceptableStep 2
/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
/musr/command globalfield printFieldValueAtPoint 0 0 0
/musr/command globalfield printFieldValueAtPoint 0 0 4
/musr/command globalfield printFieldValueAtPoint 0 0 8
/musr/command globalfield printFieldValueAtPoint 0 0 12
/musr/command globalfield printFieldValueAtPoint 0 0 16
/musr/command globalfield printFieldValueAtPoint 0 0 20
/musr/command globalfield printFieldValueAtPoint 4 0 0
/musr/command globalfield printFieldValueAtPoint 0 4 0
/musr/command globalfield printFieldValueAtPoint 80 80 200
#
###################################################################################
######################### P H Y S I C S P R O C E S S E S ##################
###################################################################################
# Geant 4.9.3
/musr/command process addDiscreteProcess gamma G4PhotoElectricEffect
/musr/command process addDiscreteProcess gamma G4ComptonScattering
/musr/command process addDiscreteProcess gamma G4GammaConversion
/musr/command process addDiscreteProcess gamma G4RayleighScattering
/musr/command process addProcess e- G4eMultipleScattering -1 1 1
/musr/command process addProcess e- G4eIonisation -1 2 2
/musr/command process addProcess e- G4eBremsstrahlung -1 3 3
/musr/command process addProcess e+ G4eMultipleScattering -1 1 1
/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
/musr/command process addProcess mu- G4MuMultipleScattering -1 1 1
/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+ G4MuMultipleScattering -1 1 1
#/musr/command process addModel mu+ G4MuMultipleScattering G4UrbanMscModel92 0
/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
#
#
#/home/install/geant4.9.3/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc
######## /process/msc/StepLimit Minimal | UseDistanceToBoundary | UseSafety
/process/msc/StepLimit UseSafety
#/process/msc/LateralDisplacement
/process/msc/RangeFactor 0.04
/process/msc/GeomFactor 2.5
#/process/msc/FactorForAngleLimit
/process/msc/Skin 3.0
#/process/msc/ThetaLimit 0.2 rad
#
###################################################################################
################## S O M E O T H E R P A R A M E T E R S ##################
###################################################################################
# Set the overall range cut
#/run/setCut 1 mm
# Set the range cut on a particular volumes (in mm)
/musr/command SetUserLimits log_target 0.01
#/musr/command SetUserLimits log_targetscint 0.01
#/musr/command SetUserLimits log_M0 0.01
# Store all events into the ROOT tree or just the interesting ones ? (true is default)
#/musr/command storeOnlyEventsWithHits false
# Set the minimum time separation between two subsequent signals in the same detector (in ns)
/musr/command signalSeparationTime 0.1
#
/musr/run/howOftenToPrintEvent 1000
/musr/command maximumRunTimeAllowed 86000
/musr/run/randomOption 2
###################################################################################
######################### R O O T O U T P U T ##############################
###################################################################################
#
#/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_time_end 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
/musr/command rootOutput odet_ID off
/musr/command rootOutput odet_nPhot off
/musr/command rootOutput odet_timeFirst off
/musr/command rootOutput odet_timeSecond off
/musr/command rootOutput odet_timeThird off
/musr/command rootOutput odet_timeA off
/musr/command rootOutput odet_timeB off
/musr/command rootOutput odet_timeC off
/musr/command rootOutput odet_timeD off
/musr/command rootOutput odet_timeMean off
/musr/command rootOutput odet_timeLast off
/musr/command rootOutput odet_timeCFD off
/musr/command rootOutput odet_amplCFD off
/musr/command rootOutput nOptPhot off
#
###################################################################################
######################### V I S U A L I S A T I O N ##############################
###################################################################################
#/vis/disable
#/control/execute visVRML.mac
#/control/execute visFromToni.mac
#/control/execute visDawn50001.mac
#/vis/open VRML2FILE
#/vis/open DAWNFILE
### (if too many tracks cause core dump => storeTrajectory 0)
#/vis/scene/create
#
#/tracking/storeTrajectory 1
#/vis/viewer/set/viewpointThetaPhi 90 0
##/vis/viewer/set/globalLineWidthScale 3
#/vis/viewer/zoom 30
###/vis/scene/add/trajectories
#/vis/drawVolume
#/vis/viewer/flush
####/hits/verbose 2
#
###################################################################################
######################### P A R T I C L E G U N #################################
###################################################################################
#
/gun/vertex 0 0 -29 mm
# FWHM 10mm ==> sigma = 10/2.354 = 4.2481mm
#####################
/gun/vertexsigma 0 0 0 mm
#/gun/vertexsigma 0.5 0.5 0 mm
#####################
#---/gun/vertexboundary: rMaxAllowed, zMinAllowed, zMaxAllowed
/gun/vertexboundary 128 -999999 999999 mm
#####################
/gun/momentum 27.0 MeV
#####################
# sigma = 3% ==> sigma 27*0.03 = 0.81
/gun/momentumsmearing 0.81 MeV
#---/gun/momentumboundary: pMinAllowed, pMaxAllowed, dummy
#/gun/momentumboundary 20 40 0 MeV
# TURTLE
#/gun/turtlefilename FOR061_2008_04_22.DAT
#/gun/turtlefilename FOR070_2008_10_17_XXII.DAT
#/gun/turtlefilename FOR077_pie3_HiField_d05_x30.dat
#/gun/turtlefilename FOR077_reggiani_Jan2010_NEW.dat
#######################/gun/turtlefilename FOR077_reggiani_Feb2010.dat
#/gun/turtleZ0position -900 mm
#---/gun/tilt: xangle, yangle, dummy
#/gun/tilt 0 0.5 0 deg
#---/gun/tiltsigma: xangleSigma, yangleSigma, dummy (1 degree on 1 meter ~ 17mm)
#/gun/tiltsigma 0.2 0.2 0 deg
#/gun/pitch 0.5 deg
# Spin rotated by 50 degrees upwards:
#/gun/muonPolarizVector 0.173648 0. -0.98480775
/gun/muonPolarizVector 0. 0. -1.0
#---/gun/decaytimelimits: decayMin, decayMax, decayTime
#/gun/decaytimelimits 400 410 2197.03 ns
/gun/decaytimelimits -1 -1 2197.03 ns
#
#
###################################################################################
######################## B E A M O N #########################################
###################################################################################
#
#/run/beamOn 3000000
#/run/beamOn 100000
/run/beamOn 10000

315
run/SiPixel/1022.mac Normal file
View File

@ -0,0 +1,315 @@
#-----------------------------------------------------------------------
# Macro file for muSR instrument simulations
# GPS Mark-II template
# Unless specified otherwises, the default units are mm, ns, MeV, MeV/c.
# Lines starting with star "#" are comments.
#
###################################################################################
############################# G E O M E T R Y ###################################
###################################################################################
#
#=============================
# ROTATION MATRIXES:
/musr/command rotation matrix1 0 0 45
/musr/command rotation matrix2 0 180 0
/musr/command rotation matrix3 0 270 0
# Inner ring rotations - 8 segments, 0 deg tilt
/musr/command rotation matlti1 0 1 0 -45
/musr/command rotation matlti2 0 1 0 0
/musr/command rotation matlti3 0 1 0 45
/musr/command rotation matlti4 0 1 0 90
/musr/command rotation matlti5 0 1 0 135
/musr/command rotation matlti6 0 1 0 180
/musr/command rotation matlti7 0 1 0 225
/musr/command rotation matlti8 0 1 0 270
# Outer ring rotations - 10 segments, 0 deg tilt
/musr/command rotation matlto1 0 1 0 -45
/musr/command rotation matlto2 0 1 0 -9
/musr/command rotation matlto3 0 1 0 27
/musr/command rotation matlto4 0 1 0 63
/musr/command rotation matlto5 0 1 0 99
/musr/command rotation matlto6 0 1 0 135
/musr/command rotation matlto7 0 1 0 171
/musr/command rotation matlto8 0 1 0 -153
/musr/command rotation matlto9 0 1 0 -117
/musr/command rotation matlto10 0 1 0 -81
#
#=============================
# WORLD VOLUME
#
/musr/command construct box World 30 30 30 G4_Galactic 0 0 0 no_logical_volume norot dead -1
#
#############Remove here to test in GPS#####################
#/musr/command construct tubs tube 35.45 38.05 315 0 360 Steel 0 0 -613 log_World norot dead 8201
#/musr/command construct tubs tube_a 0 35.45 315 0 360 G4_Galactic 0 0 -613 log_World norot dead 8251
#
#=============================
# SECOND COLLIMATOR
#
#/musr/command construct tubs shield_collimA2 10 35 25 0 360 G4_Cu 0 0 290 log_tube_a norot dead 341
#
#=============================
# OLD ALC DESIGN: MSR 20.05.083 Flange
#
#/musr/command construct tubs flange 38.05 90 6 0 360 Steel 0 0 -934 log_World norot dead 8301
#
##############End of Removed to test in GPS################
#=============================
# POSITRON COUNTERS FORWARD BACKWARD UP DOWN RIGHT LEFT
#
#/musr/command construct GPSbackward forwardCounter 25 25 2.5 9.1 11.9 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 1
#/musr/command construct GPSbackward backwardCounter 30 30 2.5 8.80 7.64 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -30.0 log_World norot musr/ScintSD 2
#/musr/command construct box up 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE 57.5 0 0 log_World norot musr/ScintSD 3
#/musr/command construct box down 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE -57.5 0 0 log_World norot musr/ScintSD 4
#/musr/command construct box right1 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 -38 log_World norot musr/ScintSD 5
#/musr/command construct box right2 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 38 log_World norot musr/ScintSD 6
#/musr/command construct box right3 35 2.5 20 G4_PLASTIC_SC_VINYLTOLUENE 0 -51.25 0 log_World norot musr/ScintSD 7
#/musr/command construct box left1 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 -48.3 log_World norot musr/ScintSD 8
#/musr/command construct box left2 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 48.3 log_World norot musr/ScintSD 9
# FORWARD VETO
#/musr/command construct GPSbackwardVeto forwVetoA 9. 11.8 9. 11.8 2.5 6.25 6.7 6.25 6.7 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 51
#/musr/command construct GPSbackwardVeto forwVetoB 11.8 18.9 11.8 18.9 15 6.7 13.8 6.7 13.8 G4_PLASTIC_SC_VINYLTOLUENE 0 0 44.0 log_World norot musr/ScintSD 51
#/musr/command construct box forwVetoD 18.9 18.9 2.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 61.5 log_World norot musr/ScintSD 51
# BACKWARD VETO
#/musr/command construct GPSbackwardVeto backwardVeto 35.13 7.63 35.13 7.63 60 31 3.5 31 3.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -87.5 log_World norot musr/ScintSD 52
#=============================
# Pixel detectors
#
# /musr/command construct box name_of_pixel xlen ylen zlen G4_SI_SC xcoor ycoor zcoor log_World rot_mat musr/ScintSD 5??
# Inner set of pixel detectors
/musr/command construct box pixeli1 10 10 0.025 G4_Si 0.0 0.0 -10.0 log_World norot musr/ScintSD 501
/musr/command construct box pixeli2 10 10 0.025 G4_Si 0.0 0.0 10.0 log_World norot musr/ScintSD 502
/musr/command construct box pixeli3 0.025 10 10 G4_Si -10.0 0.0 0.0 log_World norot musr/ScintSD 503
/musr/command construct box pixeli4 0.025 10 10 G4_Si 10.0 0.0 0.0 log_World norot musr/ScintSD 504
# Outer set of pixel detectors
/musr/command construct box pixelo1 20 20 0.025 G4_Si 0.0 0.0 -20.0 log_World norot musr/ScintSD 601
/musr/command construct box pixelo2 20 20 0.025 G4_Si 0.0 0.0 20.0 log_World norot musr/ScintSD 602
/musr/command construct box pixelo3 0.025 20 20 G4_Si -20.0 0.0 0.0 log_World norot musr/ScintSD 603
/musr/command construct box pixelo4 0.025 20 20 G4_Si 20.0 0.0 0.0 log_World norot musr/ScintSD 604
#
#=============================
# OUTER SHIELD
#/musr/command construct tubeWithWindows tube1 20 21 33.5 14.5 33.5 14.5 33.5 G4_Cu 0 0 0 log_World matrix3 dead 401
#/musr/command construct tubs bottom1 0 20 0.5 0 360 G4_Cu 0 -33.0 0 log_World matrix3 dead 402
#/musr/command construct tubs window1 21 21.010 15 0 360 G4_Cu 0 0 0 log_World matrix3 dead 403
#/musr/command construct tubs bottom1a 0 20 0.5 0 360 G4_Cu 0 33.0 0 log_World matrix3 dead 404
# INNER SHIELD
#/musr/command construct tubeWithWindows tube2 11.5 12.5 21.5 7.5 21.5 10. 21.5 G4_Cu 0 0 0 log_World matrix3 dead 411
#/musr/command construct tubs bottom2 0 11.5 3.0 0 360 G4_Cu 0 -21.5 0 log_World matrix3 dead 412
#/musr/command construct tubs window2 12.5 12.510 8 0 360 G4_Cu 0 0 0 log_World matrix3 dead 413
#/musr/command construct tubs bottom2a 0 11.5 3.0 0 360 G4_Cu 0 21.5 0 log_World matrix3 dead 414
# HEATER
#/musr/command construct tubs heater 16 16.3 7.5 0 360 G4_Cu 0 -18.5 0 log_World matrix3 dead 415
#=============================
#
#=============================
# M COUNTERS AND M COUNTER HOLDER
#/musr/command construct tubs M0 0 7.5 0.15 0 360 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -25.0 log_World norot musr/ScintSD 102
#=============================
#
#=============================
# TARGET
/musr/command construct tubs target 0 10.0 0.215 0 360 G4_Ag 0 0 0 log_World norot dead 201
/musr/command construct tubs saveTarget 0 10.0 0.01 0 360 G4_Galactic 0 0 -0.5 log_World norot dead 253
#/musr/command construct tubs targetFieldVol 0 0.5 0.015 0 360 G4_Ag 0 0 0 log_target norot dead 202
#=============================
#
#=============================
/musr/command visattributes G4_PLASTIC_SC_VINYLTOLUENE invisible
/musr/command visattributes G4_PLEXIGLASS yellow
/musr/command visattributes G4_Pb blue
/musr/command visattributes G4_Ag red
/musr/command visattributes log_World invisible
/musr/command visattributes log_target red
/musr/command visattributes G4_Si blue
#
###################################################################################
######################### M A G N E T I C F I E L D #########################
###################################################################################
# Set magnetic field (set field intensity in T and sigma in mm)
# syntax for magneticfield: fromfile filename fieldValue
# uniform fieldValue
# gaussian fieldValue sigma
#
#/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 3DBOpera GPS_WEP_xyz_Sym_2_from_000_cgs.table log_targetFieldVol 0.005
#/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 2D GPS_6kG_yAx_xRad_cgs.table log_targetFieldVol 0.300
/musr/command globalfield setparameter SetLargestAcceptableStep 2
/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
/musr/command globalfield printFieldValueAtPoint 0 0 0
/musr/command globalfield printFieldValueAtPoint 0 0 4
/musr/command globalfield printFieldValueAtPoint 0 0 8
/musr/command globalfield printFieldValueAtPoint 0 0 12
/musr/command globalfield printFieldValueAtPoint 0 0 16
/musr/command globalfield printFieldValueAtPoint 0 0 20
/musr/command globalfield printFieldValueAtPoint 4 0 0
/musr/command globalfield printFieldValueAtPoint 0 4 0
/musr/command globalfield printFieldValueAtPoint 80 80 200
#
###################################################################################
######################### P H Y S I C S P R O C E S S E S ##################
###################################################################################
# Geant 4.9.3
/musr/command process addDiscreteProcess gamma G4PhotoElectricEffect
/musr/command process addDiscreteProcess gamma G4ComptonScattering
/musr/command process addDiscreteProcess gamma G4GammaConversion
/musr/command process addDiscreteProcess gamma G4RayleighScattering
/musr/command process addProcess e- G4eMultipleScattering -1 1 1
/musr/command process addProcess e- G4eIonisation -1 2 2
/musr/command process addProcess e- G4eBremsstrahlung -1 3 3
/musr/command process addProcess e+ G4eMultipleScattering -1 1 1
/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
/musr/command process addProcess mu- G4MuMultipleScattering -1 1 1
/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+ G4MuMultipleScattering -1 1 1
#/musr/command process addModel mu+ G4MuMultipleScattering G4UrbanMscModel92 0
/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
#
#
#/home/install/geant4.9.3/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc
######## /process/msc/StepLimit Minimal | UseDistanceToBoundary | UseSafety
/process/msc/StepLimit UseSafety
#/process/msc/LateralDisplacement
/process/msc/RangeFactor 0.04
/process/msc/GeomFactor 2.5
#/process/msc/FactorForAngleLimit
/process/msc/Skin 3.0
#/process/msc/ThetaLimit 0.2 rad
#
###################################################################################
################## S O M E O T H E R P A R A M E T E R S ##################
###################################################################################
# Set the overall range cut
#/run/setCut 1 mm
# Set the range cut on a particular volumes (in mm)
/musr/command SetUserLimits log_target 0.01
#/musr/command SetUserLimits log_targetscint 0.01
#/musr/command SetUserLimits log_M0 0.01
# Store all events into the ROOT tree or just the interesting ones ? (true is default)
#/musr/command storeOnlyEventsWithHits false
# Set the minimum time separation between two subsequent signals in the same detector (in ns)
/musr/command signalSeparationTime 0.1
#
/musr/run/howOftenToPrintEvent 1000
/musr/command maximumRunTimeAllowed 86000
/musr/run/randomOption 2
###################################################################################
######################### R O O T O U T P U T ##############################
###################################################################################
#
#/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_time_end 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
/musr/command rootOutput odet_ID off
/musr/command rootOutput odet_nPhot off
/musr/command rootOutput odet_timeFirst off
/musr/command rootOutput odet_timeSecond off
/musr/command rootOutput odet_timeThird off
/musr/command rootOutput odet_timeA off
/musr/command rootOutput odet_timeB off
/musr/command rootOutput odet_timeC off
/musr/command rootOutput odet_timeD off
/musr/command rootOutput odet_timeMean off
/musr/command rootOutput odet_timeLast off
/musr/command rootOutput odet_timeCFD off
/musr/command rootOutput odet_amplCFD off
/musr/command rootOutput nOptPhot off
#
###################################################################################
######################### V I S U A L I S A T I O N ##############################
###################################################################################
#/vis/disable
#/control/execute visVRML.mac
#/control/execute visFromToni.mac
#/control/execute visDawn50001.mac
#/vis/open VRML2FILE
#/vis/open DAWNFILE
### (if too many tracks cause core dump => storeTrajectory 0)
#/vis/scene/create
#
#/tracking/storeTrajectory 1
#/vis/viewer/set/viewpointThetaPhi 90 0
##/vis/viewer/set/globalLineWidthScale 3
#/vis/viewer/zoom 30
###/vis/scene/add/trajectories
#/vis/drawVolume
#/vis/viewer/flush
####/hits/verbose 2
#
###################################################################################
######################### P A R T I C L E G U N #################################
###################################################################################
#
/gun/vertex 0 0 -29 mm
# FWHM 10mm ==> sigma = 10/2.354 = 4.2481mm
#####################
/gun/vertexsigma 0 0 0 mm
#/gun/vertexsigma 0.5 0.5 0 mm
#####################
#---/gun/vertexboundary: rMaxAllowed, zMinAllowed, zMaxAllowed
/gun/vertexboundary 128 -999999 999999 mm
#####################
/gun/momentum 27.0 MeV
#####################
# sigma = 3% ==> sigma 27*0.03 = 0.81
/gun/momentumsmearing 0.81 MeV
#---/gun/momentumboundary: pMinAllowed, pMaxAllowed, dummy
#/gun/momentumboundary 20 40 0 MeV
# TURTLE
#/gun/turtlefilename FOR061_2008_04_22.DAT
#/gun/turtlefilename FOR070_2008_10_17_XXII.DAT
#/gun/turtlefilename FOR077_pie3_HiField_d05_x30.dat
#/gun/turtlefilename FOR077_reggiani_Jan2010_NEW.dat
#######################/gun/turtlefilename FOR077_reggiani_Feb2010.dat
#/gun/turtleZ0position -900 mm
#---/gun/tilt: xangle, yangle, dummy
#/gun/tilt 0 0.5 0 deg
#---/gun/tiltsigma: xangleSigma, yangleSigma, dummy (1 degree on 1 meter ~ 17mm)
#/gun/tiltsigma 0.2 0.2 0 deg
#/gun/pitch 0.5 deg
# Spin rotated by 50 degrees upwards:
#/gun/muonPolarizVector 0.173648 0. -0.98480775
/gun/muonPolarizVector 0. 0. -1.0
#---/gun/decaytimelimits: decayMin, decayMax, decayTime
#/gun/decaytimelimits 400 410 2197.03 ns
/gun/decaytimelimits -1 -1 2197.03 ns
#
#
###################################################################################
######################## B E A M O N #########################################
###################################################################################
#
#/run/beamOn 3000000
#/run/beamOn 100000
/run/beamOn 100000

316
run/SiPixel/1023.mac Normal file
View File

@ -0,0 +1,316 @@
#-----------------------------------------------------------------------
# Macro file for muSR instrument simulations
# GPS Mark-II template
# Unless specified otherwises, the default units are mm, ns, MeV, MeV/c.
# Lines starting with star "#" are comments.
#
###################################################################################
############################# G E O M E T R Y ###################################
###################################################################################
#
#=============================
# ROTATION MATRIXES:
/musr/command rotation matrix1 0 0 45
/musr/command rotation matrix2 0 180 0
/musr/command rotation matrix3 0 270 0
# Inner ring rotations - 8 segments, 0 deg tilt
/musr/command rotation matlti1 0 1 0 -45
/musr/command rotation matlti2 0 1 0 0
/musr/command rotation matlti3 0 1 0 45
/musr/command rotation matlti4 0 1 0 90
/musr/command rotation matlti5 0 1 0 135
/musr/command rotation matlti6 0 1 0 180
/musr/command rotation matlti7 0 1 0 225
/musr/command rotation matlti8 0 1 0 270
# Outer ring rotations - 10 segments, 0 deg tilt
/musr/command rotation matlto1 0 1 0 -45
/musr/command rotation matlto2 0 1 0 -9
/musr/command rotation matlto3 0 1 0 27
/musr/command rotation matlto4 0 1 0 63
/musr/command rotation matlto5 0 1 0 99
/musr/command rotation matlto6 0 1 0 135
/musr/command rotation matlto7 0 1 0 171
/musr/command rotation matlto8 0 1 0 -153
/musr/command rotation matlto9 0 1 0 -117
/musr/command rotation matlto10 0 1 0 -81
#
#=============================
# WORLD VOLUME
#
/musr/command construct box World 30 30 30 G4_Galactic 0 0 0 no_logical_volume norot dead -1
#
#############Remove here to test in GPS#####################
#/musr/command construct tubs tube 35.45 38.05 315 0 360 Steel 0 0 -613 log_World norot dead 8201
#/musr/command construct tubs tube_a 0 35.45 315 0 360 G4_Galactic 0 0 -613 log_World norot dead 8251
#
#=============================
# SECOND COLLIMATOR
#
#/musr/command construct tubs shield_collimA2 10 35 25 0 360 G4_Cu 0 0 290 log_tube_a norot dead 341
#
#=============================
# OLD ALC DESIGN: MSR 20.05.083 Flange
#
#/musr/command construct tubs flange 38.05 90 6 0 360 Steel 0 0 -934 log_World norot dead 8301
#
##############End of Removed to test in GPS################
#=============================
# POSITRON COUNTERS FORWARD BACKWARD UP DOWN RIGHT LEFT
#
#/musr/command construct GPSbackward forwardCounter 25 25 2.5 9.1 11.9 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 1
#/musr/command construct GPSbackward backwardCounter 30 30 2.5 8.80 7.64 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -30.0 log_World norot musr/ScintSD 2
#/musr/command construct box up 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE 57.5 0 0 log_World norot musr/ScintSD 3
#/musr/command construct box down 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE -57.5 0 0 log_World norot musr/ScintSD 4
#/musr/command construct box right1 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 -38 log_World norot musr/ScintSD 5
#/musr/command construct box right2 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 38 log_World norot musr/ScintSD 6
#/musr/command construct box right3 35 2.5 20 G4_PLASTIC_SC_VINYLTOLUENE 0 -51.25 0 log_World norot musr/ScintSD 7
#/musr/command construct box left1 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 -48.3 log_World norot musr/ScintSD 8
#/musr/command construct box left2 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 48.3 log_World norot musr/ScintSD 9
# FORWARD VETO
#/musr/command construct GPSbackwardVeto forwVetoA 9. 11.8 9. 11.8 2.5 6.25 6.7 6.25 6.7 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 51
#/musr/command construct GPSbackwardVeto forwVetoB 11.8 18.9 11.8 18.9 15 6.7 13.8 6.7 13.8 G4_PLASTIC_SC_VINYLTOLUENE 0 0 44.0 log_World norot musr/ScintSD 51
#/musr/command construct box forwVetoD 18.9 18.9 2.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 61.5 log_World norot musr/ScintSD 51
# BACKWARD VETO
#/musr/command construct GPSbackwardVeto backwardVeto 35.13 7.63 35.13 7.63 60 31 3.5 31 3.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -87.5 log_World norot musr/ScintSD 52
#=============================
# Pixel detectors
#
# /musr/command construct box name_of_pixel xlen ylen zlen G4_SI_SC xcoor ycoor zcoor log_World rot_mat musr/ScintSD 5??
# Inner set of pixel detectors
/musr/command construct box pixeli1 10 10 0.025 G4_Si 0.0 0.0 -10.0 log_World norot musr/ScintSD 501
/musr/command construct box pixeli2 10 10 0.025 G4_Si 0.0 0.0 10.0 log_World norot musr/ScintSD 502
/musr/command construct box pixeli3 0.025 10 10 G4_Si -10.0 0.0 0.0 log_World norot musr/ScintSD 503
/musr/command construct box pixeli4 0.025 10 10 G4_Si 10.0 0.0 0.0 log_World norot musr/ScintSD 504
# Outer set of pixel detectors
/musr/command construct box pixelo1 20 20 0.025 G4_Si 0.0 0.0 -20.0 log_World norot musr/ScintSD 601
/musr/command construct box pixelo2 20 20 0.025 G4_Si 0.0 0.0 20.0 log_World norot musr/ScintSD 602
/musr/command construct box pixelo3 0.025 20 20 G4_Si -20.0 0.0 0.0 log_World norot musr/ScintSD 603
/musr/command construct box pixelo4 0.025 20 20 G4_Si 20.0 0.0 0.0 log_World norot musr/ScintSD 604
#
#=============================
# OUTER SHIELD
#/musr/command construct tubeWithWindows tube1 20 21 33.5 14.5 33.5 14.5 33.5 G4_Cu 0 0 0 log_World matrix3 dead 401
#/musr/command construct tubs bottom1 0 20 0.5 0 360 G4_Cu 0 -33.0 0 log_World matrix3 dead 402
#/musr/command construct tubs window1 21 21.010 15 0 360 G4_Cu 0 0 0 log_World matrix3 dead 403
#/musr/command construct tubs bottom1a 0 20 0.5 0 360 G4_Cu 0 33.0 0 log_World matrix3 dead 404
# INNER SHIELD
#/musr/command construct tubeWithWindows tube2 11.5 12.5 21.5 7.5 21.5 10. 21.5 G4_Cu 0 0 0 log_World matrix3 dead 411
#/musr/command construct tubs bottom2 0 11.5 3.0 0 360 G4_Cu 0 -21.5 0 log_World matrix3 dead 412
#/musr/command construct tubs window2 12.5 12.510 8 0 360 G4_Cu 0 0 0 log_World matrix3 dead 413
#/musr/command construct tubs bottom2a 0 11.5 3.0 0 360 G4_Cu 0 21.5 0 log_World matrix3 dead 414
# HEATER
#/musr/command construct tubs heater 16 16.3 7.5 0 360 G4_Cu 0 -18.5 0 log_World matrix3 dead 415
#=============================
#
#=============================
# M COUNTERS AND M COUNTER HOLDER
#/musr/command construct tubs M0 0 7.5 0.15 0 360 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -25.0 log_World norot musr/ScintSD 102
#=============================
#
#=============================
# TARGET
/musr/command construct tubs target 0 10.0 0.215 0 360 G4_Ag 0 0 0 log_World norot dead 201
/musr/command construct tubs saveTarget 0 10.0 0.01 0 360 G4_Galactic 0 0 -0.5 log_World norot dead 253
/musr/command construct tubs targetFieldVol 0 0.5 0.015 0 360 G4_Ag 0 0 0 log_target norot dead 202
#=============================
#
#=============================
/musr/command visattributes G4_PLASTIC_SC_VINYLTOLUENE invisible
/musr/command visattributes G4_PLEXIGLASS yellow
/musr/command visattributes G4_Pb blue
/musr/command visattributes G4_Ag red
/musr/command visattributes log_World invisible
/musr/command visattributes log_target red
/musr/command visattributes G4_Si blue
#
###################################################################################
######################### M A G N E T I C F I E L D #########################
###################################################################################
# Set magnetic field (set field intensity in T and sigma in mm)
# syntax for magneticfield: fromfile filename fieldValue
# uniform fieldValue
# gaussian fieldValue sigma
#
#/musr/command globalfield centralSolenoidField 10. 10. 10. uniform 0. 0. 0. log_targetFieldVol 0.005 0.0 0.0 0.0 0.0 0.0
/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 3DBOpera GPS_WEP_xyz_Sym_2_from_000_cgs.table log_targetFieldVol 0.005
#/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 2D GPS_6kG_yAx_xRad_cgs.table log_targetFieldVol 0.300
/musr/command globalfield setparameter SetLargestAcceptableStep 2
/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
/musr/command globalfield printFieldValueAtPoint 0 0 0
/musr/command globalfield printFieldValueAtPoint 0 0 4
/musr/command globalfield printFieldValueAtPoint 0 0 8
/musr/command globalfield printFieldValueAtPoint 0 0 12
/musr/command globalfield printFieldValueAtPoint 0 0 16
/musr/command globalfield printFieldValueAtPoint 0 0 20
/musr/command globalfield printFieldValueAtPoint 4 0 0
/musr/command globalfield printFieldValueAtPoint 0 4 0
/musr/command globalfield printFieldValueAtPoint 80 80 200
#
###################################################################################
######################### P H Y S I C S P R O C E S S E S ##################
###################################################################################
# Geant 4.9.3
/musr/command process addDiscreteProcess gamma G4PhotoElectricEffect
/musr/command process addDiscreteProcess gamma G4ComptonScattering
/musr/command process addDiscreteProcess gamma G4GammaConversion
/musr/command process addDiscreteProcess gamma G4RayleighScattering
/musr/command process addProcess e- G4eMultipleScattering -1 1 1
/musr/command process addProcess e- G4eIonisation -1 2 2
/musr/command process addProcess e- G4eBremsstrahlung -1 3 3
/musr/command process addProcess e+ G4eMultipleScattering -1 1 1
/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
/musr/command process addProcess mu- G4MuMultipleScattering -1 1 1
/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+ G4MuMultipleScattering -1 1 1
#/musr/command process addModel mu+ G4MuMultipleScattering G4UrbanMscModel92 0
/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
#
#
#/home/install/geant4.9.3/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc
######## /process/msc/StepLimit Minimal | UseDistanceToBoundary | UseSafety
/process/msc/StepLimit UseSafety
#/process/msc/LateralDisplacement
/process/msc/RangeFactor 0.04
/process/msc/GeomFactor 2.5
#/process/msc/FactorForAngleLimit
/process/msc/Skin 3.0
#/process/msc/ThetaLimit 0.2 rad
#
###################################################################################
################## S O M E O T H E R P A R A M E T E R S ##################
###################################################################################
# Set the overall range cut
#/run/setCut 1 mm
# Set the range cut on a particular volumes (in mm)
/musr/command SetUserLimits log_target 0.01
#/musr/command SetUserLimits log_targetscint 0.01
#/musr/command SetUserLimits log_M0 0.01
# Store all events into the ROOT tree or just the interesting ones ? (true is default)
#/musr/command storeOnlyEventsWithHits false
# Set the minimum time separation between two subsequent signals in the same detector (in ns)
/musr/command signalSeparationTime 0.1
#
/musr/run/howOftenToPrintEvent 1000
/musr/command maximumRunTimeAllowed 86000
/musr/run/randomOption 2
###################################################################################
######################### R O O T O U T P U T ##############################
###################################################################################
#
#/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_time_end 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
/musr/command rootOutput odet_ID off
/musr/command rootOutput odet_nPhot off
/musr/command rootOutput odet_timeFirst off
/musr/command rootOutput odet_timeSecond off
/musr/command rootOutput odet_timeThird off
/musr/command rootOutput odet_timeA off
/musr/command rootOutput odet_timeB off
/musr/command rootOutput odet_timeC off
/musr/command rootOutput odet_timeD off
/musr/command rootOutput odet_timeMean off
/musr/command rootOutput odet_timeLast off
/musr/command rootOutput odet_timeCFD off
/musr/command rootOutput odet_amplCFD off
/musr/command rootOutput nOptPhot off
#
###################################################################################
######################### V I S U A L I S A T I O N ##############################
###################################################################################
#/vis/disable
#/control/execute visVRML.mac
#/control/execute visFromToni.mac
#/control/execute visDawn50001.mac
#/vis/open VRML2FILE
#/vis/open DAWNFILE
### (if too many tracks cause core dump => storeTrajectory 0)
#/vis/scene/create
#
#/tracking/storeTrajectory 1
#/vis/viewer/set/viewpointThetaPhi 90 0
##/vis/viewer/set/globalLineWidthScale 3
#/vis/viewer/zoom 30
###/vis/scene/add/trajectories
#/vis/drawVolume
#/vis/viewer/flush
####/hits/verbose 2
#
###################################################################################
######################### P A R T I C L E G U N #################################
###################################################################################
#
/gun/vertex 0 0 -29 mm
# FWHM 10mm ==> sigma = 10/2.354 = 4.2481mm
#####################
/gun/vertexsigma 0 0 0 mm
#/gun/vertexsigma 0.5 0.5 0 mm
#####################
#---/gun/vertexboundary: rMaxAllowed, zMinAllowed, zMaxAllowed
/gun/vertexboundary 128 -999999 999999 mm
#####################
/gun/momentum 27.0 MeV
#####################
# sigma = 3% ==> sigma 27*0.03 = 0.81
/gun/momentumsmearing 0.81 MeV
#---/gun/momentumboundary: pMinAllowed, pMaxAllowed, dummy
#/gun/momentumboundary 20 40 0 MeV
# TURTLE
#/gun/turtlefilename FOR061_2008_04_22.DAT
#/gun/turtlefilename FOR070_2008_10_17_XXII.DAT
#/gun/turtlefilename FOR077_pie3_HiField_d05_x30.dat
#/gun/turtlefilename FOR077_reggiani_Jan2010_NEW.dat
#######################/gun/turtlefilename FOR077_reggiani_Feb2010.dat
#/gun/turtleZ0position -900 mm
#---/gun/tilt: xangle, yangle, dummy
#/gun/tilt 0 0.5 0 deg
#---/gun/tiltsigma: xangleSigma, yangleSigma, dummy (1 degree on 1 meter ~ 17mm)
#/gun/tiltsigma 0.2 0.2 0 deg
#/gun/pitch 0.5 deg
# Spin rotated by 50 degrees upwards:
#/gun/muonPolarizVector 0.173648 0. -0.98480775
/gun/muonPolarizVector 0. 0. -1.0
#---/gun/decaytimelimits: decayMin, decayMax, decayTime
#/gun/decaytimelimits 400 410 2197.03 ns
/gun/decaytimelimits -1 -1 2197.03 ns
#
#
###################################################################################
######################## B E A M O N #########################################
###################################################################################
#
#/run/beamOn 3000000
#/run/beamOn 100000
/run/beamOn 100000

315
run/SiPixel/1024.mac Normal file
View File

@ -0,0 +1,315 @@
#-----------------------------------------------------------------------
# Macro file for muSR instrument simulations
# GPS Mark-II template
# Unless specified otherwises, the default units are mm, ns, MeV, MeV/c.
# Lines starting with star "#" are comments.
#
###################################################################################
############################# G E O M E T R Y ###################################
###################################################################################
#
#=============================
# ROTATION MATRIXES:
/musr/command rotation matrix1 0 0 45
/musr/command rotation matrix2 0 180 0
/musr/command rotation matrix3 0 270 0
# Inner ring rotations - 8 segments, 0 deg tilt
/musr/command rotation matlti1 0 1 0 -45
/musr/command rotation matlti2 0 1 0 0
/musr/command rotation matlti3 0 1 0 45
/musr/command rotation matlti4 0 1 0 90
/musr/command rotation matlti5 0 1 0 135
/musr/command rotation matlti6 0 1 0 180
/musr/command rotation matlti7 0 1 0 225
/musr/command rotation matlti8 0 1 0 270
# Outer ring rotations - 10 segments, 0 deg tilt
/musr/command rotation matlto1 0 1 0 -45
/musr/command rotation matlto2 0 1 0 -9
/musr/command rotation matlto3 0 1 0 27
/musr/command rotation matlto4 0 1 0 63
/musr/command rotation matlto5 0 1 0 99
/musr/command rotation matlto6 0 1 0 135
/musr/command rotation matlto7 0 1 0 171
/musr/command rotation matlto8 0 1 0 -153
/musr/command rotation matlto9 0 1 0 -117
/musr/command rotation matlto10 0 1 0 -81
#
#=============================
# WORLD VOLUME
#
/musr/command construct box World 30 30 30 G4_Galactic 0 0 0 no_logical_volume norot dead -1
#
#############Remove here to test in GPS#####################
#/musr/command construct tubs tube 35.45 38.05 315 0 360 Steel 0 0 -613 log_World norot dead 8201
#/musr/command construct tubs tube_a 0 35.45 315 0 360 G4_Galactic 0 0 -613 log_World norot dead 8251
#
#=============================
# SECOND COLLIMATOR
#
#/musr/command construct tubs shield_collimA2 10 35 25 0 360 G4_Cu 0 0 290 log_tube_a norot dead 341
#
#=============================
# OLD ALC DESIGN: MSR 20.05.083 Flange
#
#/musr/command construct tubs flange 38.05 90 6 0 360 Steel 0 0 -934 log_World norot dead 8301
#
##############End of Removed to test in GPS################
#=============================
# POSITRON COUNTERS FORWARD BACKWARD UP DOWN RIGHT LEFT
#
#/musr/command construct GPSbackward forwardCounter 25 25 2.5 9.1 11.9 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 1
#/musr/command construct GPSbackward backwardCounter 30 30 2.5 8.80 7.64 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -30.0 log_World norot musr/ScintSD 2
#/musr/command construct box up 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE 57.5 0 0 log_World norot musr/ScintSD 3
#/musr/command construct box down 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE -57.5 0 0 log_World norot musr/ScintSD 4
#/musr/command construct box right1 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 -38 log_World norot musr/ScintSD 5
#/musr/command construct box right2 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 38 log_World norot musr/ScintSD 6
#/musr/command construct box right3 35 2.5 20 G4_PLASTIC_SC_VINYLTOLUENE 0 -51.25 0 log_World norot musr/ScintSD 7
#/musr/command construct box left1 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 -48.3 log_World norot musr/ScintSD 8
#/musr/command construct box left2 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 48.3 log_World norot musr/ScintSD 9
# FORWARD VETO
#/musr/command construct GPSbackwardVeto forwVetoA 9. 11.8 9. 11.8 2.5 6.25 6.7 6.25 6.7 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 51
#/musr/command construct GPSbackwardVeto forwVetoB 11.8 18.9 11.8 18.9 15 6.7 13.8 6.7 13.8 G4_PLASTIC_SC_VINYLTOLUENE 0 0 44.0 log_World norot musr/ScintSD 51
#/musr/command construct box forwVetoD 18.9 18.9 2.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 61.5 log_World norot musr/ScintSD 51
# BACKWARD VETO
#/musr/command construct GPSbackwardVeto backwardVeto 35.13 7.63 35.13 7.63 60 31 3.5 31 3.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -87.5 log_World norot musr/ScintSD 52
#=============================
# Pixel detectors
#
# /musr/command construct box name_of_pixel xlen ylen zlen G4_SI_SC xcoor ycoor zcoor log_World rot_mat musr/ScintSD 5??
# Inner set of pixel detectors
/musr/command construct box pixeli1 10 10 0.025 G4_Si 0.0 0.0 -10.0 log_World norot musr/ScintSD 501
/musr/command construct box pixeli2 10 10 0.025 G4_Si 0.0 0.0 10.0 log_World norot musr/ScintSD 502
/musr/command construct box pixeli3 0.025 10 10 G4_Si -10.0 0.0 0.0 log_World norot musr/ScintSD 503
/musr/command construct box pixeli4 0.025 10 10 G4_Si 10.0 0.0 0.0 log_World norot musr/ScintSD 504
# Outer set of pixel detectors
/musr/command construct box pixelo1 20 20 0.025 G4_Si 0.0 0.0 -20.0 log_World norot musr/ScintSD 601
/musr/command construct box pixelo2 20 20 0.025 G4_Si 0.0 0.0 20.0 log_World norot musr/ScintSD 602
/musr/command construct box pixelo3 0.025 20 20 G4_Si -20.0 0.0 0.0 log_World norot musr/ScintSD 603
/musr/command construct box pixelo4 0.025 20 20 G4_Si 20.0 0.0 0.0 log_World norot musr/ScintSD 604
#
#=============================
# OUTER SHIELD
#/musr/command construct tubeWithWindows tube1 20 21 33.5 14.5 33.5 14.5 33.5 G4_Cu 0 0 0 log_World matrix3 dead 401
#/musr/command construct tubs bottom1 0 20 0.5 0 360 G4_Cu 0 -33.0 0 log_World matrix3 dead 402
#/musr/command construct tubs window1 21 21.010 15 0 360 G4_Cu 0 0 0 log_World matrix3 dead 403
#/musr/command construct tubs bottom1a 0 20 0.5 0 360 G4_Cu 0 33.0 0 log_World matrix3 dead 404
# INNER SHIELD
#/musr/command construct tubeWithWindows tube2 11.5 12.5 21.5 7.5 21.5 10. 21.5 G4_Cu 0 0 0 log_World matrix3 dead 411
#/musr/command construct tubs bottom2 0 11.5 3.0 0 360 G4_Cu 0 -21.5 0 log_World matrix3 dead 412
#/musr/command construct tubs window2 12.5 12.510 8 0 360 G4_Cu 0 0 0 log_World matrix3 dead 413
#/musr/command construct tubs bottom2a 0 11.5 3.0 0 360 G4_Cu 0 21.5 0 log_World matrix3 dead 414
# HEATER
#/musr/command construct tubs heater 16 16.3 7.5 0 360 G4_Cu 0 -18.5 0 log_World matrix3 dead 415
#=============================
#
#=============================
# M COUNTERS AND M COUNTER HOLDER
#/musr/command construct tubs M0 0 7.5 0.15 0 360 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -25.0 log_World norot musr/ScintSD 102
#=============================
#
#=============================
# TARGET
/musr/command construct tubs target 0 5.0 0.215 0 360 G4_Ag 0 0 0 log_World norot dead 201
/musr/command construct tubs saveTarget 0 10.0 0.01 0 360 G4_Galactic 0 0 -0.5 log_World norot dead 253
#/musr/command construct tubs targetFieldVol 0 0.5 0.015 0 360 G4_Ag 0 0 0 log_target norot dead 202
#=============================
#
#=============================
/musr/command visattributes G4_PLASTIC_SC_VINYLTOLUENE invisible
/musr/command visattributes G4_PLEXIGLASS yellow
/musr/command visattributes G4_Pb blue
/musr/command visattributes G4_Ag red
/musr/command visattributes log_World invisible
/musr/command visattributes log_target red
/musr/command visattributes G4_Si blue
#
###################################################################################
######################### M A G N E T I C F I E L D #########################
###################################################################################
# Set magnetic field (set field intensity in T and sigma in mm)
# syntax for magneticfield: fromfile filename fieldValue
# uniform fieldValue
# gaussian fieldValue sigma
#
#/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 3DBOpera GPS_WEP_xyz_Sym_2_from_000_cgs.table log_targetFieldVol 0.005
#/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 2D GPS_6kG_yAx_xRad_cgs.table log_targetFieldVol 0.300
/musr/command globalfield setparameter SetLargestAcceptableStep 2
/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
/musr/command globalfield printFieldValueAtPoint 0 0 0
/musr/command globalfield printFieldValueAtPoint 0 0 4
/musr/command globalfield printFieldValueAtPoint 0 0 8
/musr/command globalfield printFieldValueAtPoint 0 0 12
/musr/command globalfield printFieldValueAtPoint 0 0 16
/musr/command globalfield printFieldValueAtPoint 0 0 20
/musr/command globalfield printFieldValueAtPoint 4 0 0
/musr/command globalfield printFieldValueAtPoint 0 4 0
/musr/command globalfield printFieldValueAtPoint 80 80 200
#
###################################################################################
######################### P H Y S I C S P R O C E S S E S ##################
###################################################################################
# Geant 4.9.3
/musr/command process addDiscreteProcess gamma G4PhotoElectricEffect
/musr/command process addDiscreteProcess gamma G4ComptonScattering
/musr/command process addDiscreteProcess gamma G4GammaConversion
/musr/command process addDiscreteProcess gamma G4RayleighScattering
/musr/command process addProcess e- G4eMultipleScattering -1 1 1
/musr/command process addProcess e- G4eIonisation -1 2 2
/musr/command process addProcess e- G4eBremsstrahlung -1 3 3
/musr/command process addProcess e+ G4eMultipleScattering -1 1 1
/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
/musr/command process addProcess mu- G4MuMultipleScattering -1 1 1
/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+ G4MuMultipleScattering -1 1 1
#/musr/command process addModel mu+ G4MuMultipleScattering G4UrbanMscModel92 0
/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
#
#
#/home/install/geant4.9.3/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc
######## /process/msc/StepLimit Minimal | UseDistanceToBoundary | UseSafety
/process/msc/StepLimit UseSafety
#/process/msc/LateralDisplacement
/process/msc/RangeFactor 0.04
/process/msc/GeomFactor 2.5
#/process/msc/FactorForAngleLimit
/process/msc/Skin 3.0
#/process/msc/ThetaLimit 0.2 rad
#
###################################################################################
################## S O M E O T H E R P A R A M E T E R S ##################
###################################################################################
# Set the overall range cut
#/run/setCut 1 mm
# Set the range cut on a particular volumes (in mm)
/musr/command SetUserLimits log_target 0.01
#/musr/command SetUserLimits log_targetscint 0.01
#/musr/command SetUserLimits log_M0 0.01
# Store all events into the ROOT tree or just the interesting ones ? (true is default)
#/musr/command storeOnlyEventsWithHits false
# Set the minimum time separation between two subsequent signals in the same detector (in ns)
/musr/command signalSeparationTime 0.1
#
/musr/run/howOftenToPrintEvent 1000
/musr/command maximumRunTimeAllowed 86000
/musr/run/randomOption 2
###################################################################################
######################### R O O T O U T P U T ##############################
###################################################################################
#
#/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_time_end 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
/musr/command rootOutput odet_ID off
/musr/command rootOutput odet_nPhot off
/musr/command rootOutput odet_timeFirst off
/musr/command rootOutput odet_timeSecond off
/musr/command rootOutput odet_timeThird off
/musr/command rootOutput odet_timeA off
/musr/command rootOutput odet_timeB off
/musr/command rootOutput odet_timeC off
/musr/command rootOutput odet_timeD off
/musr/command rootOutput odet_timeMean off
/musr/command rootOutput odet_timeLast off
/musr/command rootOutput odet_timeCFD off
/musr/command rootOutput odet_amplCFD off
/musr/command rootOutput nOptPhot off
#
###################################################################################
######################### V I S U A L I S A T I O N ##############################
###################################################################################
#/vis/disable
#/control/execute visVRML.mac
#/control/execute visFromToni.mac
#/control/execute visDawn50001.mac
#/vis/open VRML2FILE
#/vis/open DAWNFILE
### (if too many tracks cause core dump => storeTrajectory 0)
#/vis/scene/create
#
#/tracking/storeTrajectory 1
#/vis/viewer/set/viewpointThetaPhi 90 0
##/vis/viewer/set/globalLineWidthScale 3
#/vis/viewer/zoom 30
###/vis/scene/add/trajectories
#/vis/drawVolume
#/vis/viewer/flush
####/hits/verbose 2
#
###################################################################################
######################### P A R T I C L E G U N #################################
###################################################################################
#
/gun/vertex 0 0 -29 mm
# FWHM 10mm ==> sigma = 10/2.354 = 4.2481mm
#####################
/gun/vertexsigma 0 0 0 mm
#/gun/vertexsigma 0.5 0.5 0 mm
#####################
#---/gun/vertexboundary: rMaxAllowed, zMinAllowed, zMaxAllowed
/gun/vertexboundary 128 -999999 999999 mm
#####################
/gun/momentum 27.0 MeV
#####################
# sigma = 3% ==> sigma 27*0.03 = 0.81
/gun/momentumsmearing 0.81 MeV
#---/gun/momentumboundary: pMinAllowed, pMaxAllowed, dummy
#/gun/momentumboundary 20 40 0 MeV
# TURTLE
#/gun/turtlefilename FOR061_2008_04_22.DAT
#/gun/turtlefilename FOR070_2008_10_17_XXII.DAT
#/gun/turtlefilename FOR077_pie3_HiField_d05_x30.dat
#/gun/turtlefilename FOR077_reggiani_Jan2010_NEW.dat
#######################/gun/turtlefilename FOR077_reggiani_Feb2010.dat
#/gun/turtleZ0position -900 mm
#---/gun/tilt: xangle, yangle, dummy
#/gun/tilt 0 0.5 0 deg
#---/gun/tiltsigma: xangleSigma, yangleSigma, dummy (1 degree on 1 meter ~ 17mm)
#/gun/tiltsigma 0.2 0.2 0 deg
#/gun/pitch 0.5 deg
# Spin rotated by 50 degrees upwards:
#/gun/muonPolarizVector 0.173648 0. -0.98480775
/gun/muonPolarizVector 0. 0. -1.0
#---/gun/decaytimelimits: decayMin, decayMax, decayTime
#/gun/decaytimelimits 400 410 2197.03 ns
/gun/decaytimelimits -1 -1 2197.03 ns
#
#
###################################################################################
######################## B E A M O N #########################################
###################################################################################
#
#/run/beamOn 3000000
#/run/beamOn 100000
/run/beamOn 100000

315
run/SiPixel/1025.mac Normal file
View File

@ -0,0 +1,315 @@
#-----------------------------------------------------------------------
# Macro file for muSR instrument simulations
# GPS Mark-II template
# Unless specified otherwises, the default units are mm, ns, MeV, MeV/c.
# Lines starting with star "#" are comments.
#
###################################################################################
############################# G E O M E T R Y ###################################
###################################################################################
#
#=============================
# ROTATION MATRIXES:
/musr/command rotation matrix1 0 0 45
/musr/command rotation matrix2 0 180 0
/musr/command rotation matrix3 0 270 0
# Inner ring rotations - 8 segments, 0 deg tilt
/musr/command rotation matlti1 0 1 0 -45
/musr/command rotation matlti2 0 1 0 0
/musr/command rotation matlti3 0 1 0 45
/musr/command rotation matlti4 0 1 0 90
/musr/command rotation matlti5 0 1 0 135
/musr/command rotation matlti6 0 1 0 180
/musr/command rotation matlti7 0 1 0 225
/musr/command rotation matlti8 0 1 0 270
# Outer ring rotations - 10 segments, 0 deg tilt
/musr/command rotation matlto1 0 1 0 -45
/musr/command rotation matlto2 0 1 0 -9
/musr/command rotation matlto3 0 1 0 27
/musr/command rotation matlto4 0 1 0 63
/musr/command rotation matlto5 0 1 0 99
/musr/command rotation matlto6 0 1 0 135
/musr/command rotation matlto7 0 1 0 171
/musr/command rotation matlto8 0 1 0 -153
/musr/command rotation matlto9 0 1 0 -117
/musr/command rotation matlto10 0 1 0 -81
#
#=============================
# WORLD VOLUME
#
/musr/command construct box World 30 30 30 G4_Galactic 0 0 0 no_logical_volume norot dead -1
#
#############Remove here to test in GPS#####################
#/musr/command construct tubs tube 35.45 38.05 315 0 360 Steel 0 0 -613 log_World norot dead 8201
#/musr/command construct tubs tube_a 0 35.45 315 0 360 G4_Galactic 0 0 -613 log_World norot dead 8251
#
#=============================
# SECOND COLLIMATOR
#
#/musr/command construct tubs shield_collimA2 10 35 25 0 360 G4_Cu 0 0 290 log_tube_a norot dead 341
#
#=============================
# OLD ALC DESIGN: MSR 20.05.083 Flange
#
#/musr/command construct tubs flange 38.05 90 6 0 360 Steel 0 0 -934 log_World norot dead 8301
#
##############End of Removed to test in GPS################
#=============================
# POSITRON COUNTERS FORWARD BACKWARD UP DOWN RIGHT LEFT
#
#/musr/command construct GPSbackward forwardCounter 25 25 2.5 9.1 11.9 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 1
#/musr/command construct GPSbackward backwardCounter 30 30 2.5 8.80 7.64 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -30.0 log_World norot musr/ScintSD 2
#/musr/command construct box up 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE 57.5 0 0 log_World norot musr/ScintSD 3
#/musr/command construct box down 2.5 53 53 G4_PLASTIC_SC_VINYLTOLUENE -57.5 0 0 log_World norot musr/ScintSD 4
#/musr/command construct box right1 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 -38 log_World norot musr/ScintSD 5
#/musr/command construct box right2 53 2.5 14 G4_PLASTIC_SC_VINYLTOLUENE 0 -56.25 38 log_World norot musr/ScintSD 6
#/musr/command construct box right3 35 2.5 20 G4_PLASTIC_SC_VINYLTOLUENE 0 -51.25 0 log_World norot musr/ScintSD 7
#/musr/command construct box left1 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 -48.3 log_World norot musr/ScintSD 8
#/musr/command construct box left2 53 2.5 19.3 G4_PLASTIC_SC_VINYLTOLUENE 0 72.5 48.3 log_World norot musr/ScintSD 9
# FORWARD VETO
#/musr/command construct GPSbackwardVeto forwVetoA 9. 11.8 9. 11.8 2.5 6.25 6.7 6.25 6.7 G4_PLASTIC_SC_VINYLTOLUENE 0 0 26.5 log_World norot musr/ScintSD 51
#/musr/command construct GPSbackwardVeto forwVetoB 11.8 18.9 11.8 18.9 15 6.7 13.8 6.7 13.8 G4_PLASTIC_SC_VINYLTOLUENE 0 0 44.0 log_World norot musr/ScintSD 51
#/musr/command construct box forwVetoD 18.9 18.9 2.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 61.5 log_World norot musr/ScintSD 51
# BACKWARD VETO
#/musr/command construct GPSbackwardVeto backwardVeto 35.13 7.63 35.13 7.63 60 31 3.5 31 3.5 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -87.5 log_World norot musr/ScintSD 52
#=============================
# Pixel detectors
#
# /musr/command construct box name_of_pixel xlen ylen zlen G4_SI_SC xcoor ycoor zcoor log_World rot_mat musr/ScintSD 5??
# Inner set of pixel detectors
/musr/command construct box pixeli1 10 10 0.025 G4_Si 0.0 0.0 -10.0 log_World norot musr/ScintSD 501
/musr/command construct box pixeli2 10 10 0.025 G4_Si 0.0 0.0 10.0 log_World norot musr/ScintSD 502
/musr/command construct box pixeli3 0.025 10 10 G4_Si -10.0 0.0 0.0 log_World norot musr/ScintSD 503
/musr/command construct box pixeli4 0.025 10 10 G4_Si 10.0 0.0 0.0 log_World norot musr/ScintSD 504
# Outer set of pixel detectors
/musr/command construct box pixelo1 20 20 0.025 G4_Si 0.0 0.0 -20.0 log_World norot musr/ScintSD 601
/musr/command construct box pixelo2 20 20 0.025 G4_Si 0.0 0.0 20.0 log_World norot musr/ScintSD 602
/musr/command construct box pixelo3 0.025 20 20 G4_Si -20.0 0.0 0.0 log_World norot musr/ScintSD 603
/musr/command construct box pixelo4 0.025 20 20 G4_Si 20.0 0.0 0.0 log_World norot musr/ScintSD 604
#
#=============================
# OUTER SHIELD
#/musr/command construct tubeWithWindows tube1 20 21 33.5 14.5 33.5 14.5 33.5 G4_Cu 0 0 0 log_World matrix3 dead 401
#/musr/command construct tubs bottom1 0 20 0.5 0 360 G4_Cu 0 -33.0 0 log_World matrix3 dead 402
#/musr/command construct tubs window1 21 21.010 15 0 360 G4_Cu 0 0 0 log_World matrix3 dead 403
#/musr/command construct tubs bottom1a 0 20 0.5 0 360 G4_Cu 0 33.0 0 log_World matrix3 dead 404
# INNER SHIELD
#/musr/command construct tubeWithWindows tube2 11.5 12.5 21.5 7.5 21.5 10. 21.5 G4_Cu 0 0 0 log_World matrix3 dead 411
#/musr/command construct tubs bottom2 0 11.5 3.0 0 360 G4_Cu 0 -21.5 0 log_World matrix3 dead 412
#/musr/command construct tubs window2 12.5 12.510 8 0 360 G4_Cu 0 0 0 log_World matrix3 dead 413
#/musr/command construct tubs bottom2a 0 11.5 3.0 0 360 G4_Cu 0 21.5 0 log_World matrix3 dead 414
# HEATER
#/musr/command construct tubs heater 16 16.3 7.5 0 360 G4_Cu 0 -18.5 0 log_World matrix3 dead 415
#=============================
#
#=============================
# M COUNTERS AND M COUNTER HOLDER
#/musr/command construct tubs M0 0 7.5 0.15 0 360 G4_PLASTIC_SC_VINYLTOLUENE 0 0 -25.0 log_World norot musr/ScintSD 102
#=============================
#
#=============================
# TARGET
/musr/command construct tubs target 0 5.0 0.215 0 360 G4_Ag 0 0 0 log_World norot dead 201
/musr/command construct tubs saveTarget 0 10.0 0.01 0 360 G4_Galactic 0 0 -0.5 log_World norot dead 253
#/musr/command construct tubs targetFieldVol 0 0.5 0.015 0 360 G4_Ag 0 0 0 log_target norot dead 202
#=============================
#
#=============================
/musr/command visattributes G4_PLASTIC_SC_VINYLTOLUENE invisible
/musr/command visattributes G4_PLEXIGLASS yellow
/musr/command visattributes G4_Pb blue
/musr/command visattributes G4_Ag red
/musr/command visattributes log_World invisible
/musr/command visattributes log_target red
/musr/command visattributes G4_Si blue
#
###################################################################################
######################### M A G N E T I C F I E L D #########################
###################################################################################
# Set magnetic field (set field intensity in T and sigma in mm)
# syntax for magneticfield: fromfile filename fieldValue
# uniform fieldValue
# gaussian fieldValue sigma
#
#/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 3DBOpera GPS_WEP_xyz_Sym_2_from_000_cgs.table log_targetFieldVol 0.005
#/musr/command globalfield centralSolenoidField 0. 0. 0. fromfile 2D GPS_6kG_yAx_xRad_cgs.table log_targetFieldVol 0.300
/musr/command globalfield setparameter SetLargestAcceptableStep 2
/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
/musr/command globalfield printFieldValueAtPoint 0 0 0
/musr/command globalfield printFieldValueAtPoint 0 0 4
/musr/command globalfield printFieldValueAtPoint 0 0 8
/musr/command globalfield printFieldValueAtPoint 0 0 12
/musr/command globalfield printFieldValueAtPoint 0 0 16
/musr/command globalfield printFieldValueAtPoint 0 0 20
/musr/command globalfield printFieldValueAtPoint 4 0 0
/musr/command globalfield printFieldValueAtPoint 0 4 0
/musr/command globalfield printFieldValueAtPoint 80 80 200
#
###################################################################################
######################### P H Y S I C S P R O C E S S E S ##################
###################################################################################
# Geant 4.9.3
/musr/command process addDiscreteProcess gamma G4PhotoElectricEffect
/musr/command process addDiscreteProcess gamma G4ComptonScattering
/musr/command process addDiscreteProcess gamma G4GammaConversion
/musr/command process addDiscreteProcess gamma G4RayleighScattering
/musr/command process addProcess e- G4eMultipleScattering -1 1 1
/musr/command process addProcess e- G4eIonisation -1 2 2
/musr/command process addProcess e- G4eBremsstrahlung -1 3 3
/musr/command process addProcess e+ G4eMultipleScattering -1 1 1
/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
/musr/command process addProcess mu- G4MuMultipleScattering -1 1 1
/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+ G4MuMultipleScattering -1 1 1
#/musr/command process addModel mu+ G4MuMultipleScattering G4UrbanMscModel92 0
/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
#
#
#/home/install/geant4.9.3/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc
######## /process/msc/StepLimit Minimal | UseDistanceToBoundary | UseSafety
/process/msc/StepLimit UseSafety
#/process/msc/LateralDisplacement
/process/msc/RangeFactor 0.04
/process/msc/GeomFactor 2.5
#/process/msc/FactorForAngleLimit
/process/msc/Skin 3.0
#/process/msc/ThetaLimit 0.2 rad
#
###################################################################################
################## S O M E O T H E R P A R A M E T E R S ##################
###################################################################################
# Set the overall range cut
#/run/setCut 1 mm
# Set the range cut on a particular volumes (in mm)
/musr/command SetUserLimits log_target 0.01
#/musr/command SetUserLimits log_targetscint 0.01
#/musr/command SetUserLimits log_M0 0.01
# Store all events into the ROOT tree or just the interesting ones ? (true is default)
#/musr/command storeOnlyEventsWithHits false
# Set the minimum time separation between two subsequent signals in the same detector (in ns)
/musr/command signalSeparationTime 0.1
#
/musr/run/howOftenToPrintEvent 1000
/musr/command maximumRunTimeAllowed 86000
/musr/run/randomOption 2
###################################################################################
######################### R O O T O U T P U T ##############################
###################################################################################
#
#/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_time_end 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
/musr/command rootOutput odet_ID off
/musr/command rootOutput odet_nPhot off
/musr/command rootOutput odet_timeFirst off
/musr/command rootOutput odet_timeSecond off
/musr/command rootOutput odet_timeThird off
/musr/command rootOutput odet_timeA off
/musr/command rootOutput odet_timeB off
/musr/command rootOutput odet_timeC off
/musr/command rootOutput odet_timeD off
/musr/command rootOutput odet_timeMean off
/musr/command rootOutput odet_timeLast off
/musr/command rootOutput odet_timeCFD off
/musr/command rootOutput odet_amplCFD off
/musr/command rootOutput nOptPhot off
#
###################################################################################
######################### V I S U A L I S A T I O N ##############################
###################################################################################
#/vis/disable
#/control/execute visVRML.mac
#/control/execute visFromToni.mac
#/control/execute visDawn50001.mac
#/vis/open VRML2FILE
#/vis/open DAWNFILE
### (if too many tracks cause core dump => storeTrajectory 0)
#/vis/scene/create
#
#/tracking/storeTrajectory 1
#/vis/viewer/set/viewpointThetaPhi 90 0
##/vis/viewer/set/globalLineWidthScale 3
#/vis/viewer/zoom 30
###/vis/scene/add/trajectories
#/vis/drawVolume
#/vis/viewer/flush
####/hits/verbose 2
#
###################################################################################
######################### P A R T I C L E G U N #################################
###################################################################################
#
/gun/vertex 0 0 -29 mm
# FWHM 10mm ==> sigma = 10/2.354 = 4.2481mm
#####################
/gun/vertexsigma 0 0 0 mm
#/gun/vertexsigma 0.5 0.5 0 mm
#####################
#---/gun/vertexboundary: rMaxAllowed, zMinAllowed, zMaxAllowed
/gun/vertexboundary 128 -999999 999999 mm
#####################
/gun/momentum 27.0 MeV
#####################
# sigma = 3% ==> sigma 27*0.03 = 0.81
/gun/momentumsmearing 0.81 MeV
#---/gun/momentumboundary: pMinAllowed, pMaxAllowed, dummy
#/gun/momentumboundary 20 40 0 MeV
# TURTLE
#/gun/turtlefilename FOR061_2008_04_22.DAT
#/gun/turtlefilename FOR070_2008_10_17_XXII.DAT
#/gun/turtlefilename FOR077_pie3_HiField_d05_x30.dat
#/gun/turtlefilename FOR077_reggiani_Jan2010_NEW.dat
#######################/gun/turtlefilename FOR077_reggiani_Feb2010.dat
#/gun/turtleZ0position -900 mm
#---/gun/tilt: xangle, yangle, dummy
#/gun/tilt 0 0.5 0 deg
#---/gun/tiltsigma: xangleSigma, yangleSigma, dummy (1 degree on 1 meter ~ 17mm)
#/gun/tiltsigma 0.2 0.2 0 deg
#/gun/pitch 0.5 deg
# Spin rotated by 50 degrees upwards:
#/gun/muonPolarizVector 0.173648 0. -0.98480775
/gun/muonPolarizVector 0. 0. -1.0
#---/gun/decaytimelimits: decayMin, decayMax, decayTime
#/gun/decaytimelimits 400 410 2197.03 ns
/gun/decaytimelimits -1 -1 2197.03 ns
#
#
###################################################################################
######################## B E A M O N #########################################
###################################################################################
#
#/run/beamOn 3000000
#/run/beamOn 100000
/run/beamOn 100000

342
run/SiPixel/SiPixel.C Normal file
View File

@ -0,0 +1,342 @@
// To run root without logon screen and script use: root -l -n
// To run a named macro in root use:
//.L SiPixel_tr.C
// muSpot("data/musr_1100.root", 868)
#include <string>
void muSpot(const char* fname, int saveID)
{
TString cutStr;
TH1D *pol_x, *pol_z, *xisect, *yisect, *xfsect, *yfsect;
TH2D *ini_hist, *bspot_hist, *bspot_hist1;
TTree *t1;
TFile* f1 = new TFile(fname);
t1 = (TTree*) gDirectory->FindObjectAny("t1");
// Get muon (particleID == -13) hits in saveID
cutStr.Form("save_detID== %3i &&save_particleID==-13",saveID);
// Get positron (particleID == 22) hits in saveID
//sprintf(poscutStr,"save_detID== %3i &&save_particleID==22",saveID);
gStyle->SetPalette(1,0);
TCanvas* c1 = new TCanvas("c1","Beam Spot",60,60,600,600);
c1->Divide(2,2);
c1->SetGridx();
c1->SetGridy();
// Initial beam spot
c1->cd(1)->SetGridx();c1->cd(1)->SetGridy();
t1->Draw("muIniPosY[0]:muIniPosX[0]>>ini_hist(60,-20, 20,60,-20,20)");
ini_hist = (TH2D*) gDirectory->Get("ini_hist");
ini_hist->SetTitle("Muon initial beam cross section [mm]");
ini_hist->Draw();
ini_hist->Draw("cont0 same");
ini_hist->ProjectionX("xisect");
ini_hist->ProjectionY("yisect");
// Resulting beam spot
c1->cd(2)->SetGridx();c1->cd(2)->SetGridy();
// Muons decay position (on target)
//t1->Draw("muDecayPosX:muDecayPosY>>bspot_hist(60,-20,20,60,-20,20)");
// Muons passing through save_detID
t1->Draw("save_y:save_x>>bspot_hist(60,-20,20,60,-20,20)",cutStr);
bspot_hist = (TH2D*) gDirectory->Get("bspot_hist");
bspot_hist->SetTitle("Muon beam cross section [mm]");
bspot_hist->Draw();
bspot_hist->Draw("cont0 same");
bspot_hist->ProjectionX("xfsect");
bspot_hist->ProjectionY("yfsect");
// Initial beam spot cross section
c1->cd(3);
c1->cd(3)->SetGridx();c1->cd(3)->SetGridy();
xisect = (TH1D*) gDirectory->Get("xisect");
xisect->SetTitle("x initial cross section [mm]");
xisect->SetFillStyle(1001);
xisect->SetFillColor(45);
xisect->Draw();
// Resulting beam spot cross section
c1->cd(4);
c1->cd(4)->SetGridx();c1->cd(4)->SetGridy();
xfsect = (TH1D*) gDirectory->Get("xfsect");
xfsect->SetTitle("x muon cross section [mm]");
xfsect->SetFillStyle(1001);
xfsect->SetFillColor(45);
xfsect->Draw();
// yfsect = (TH1D*) gDirectory->Get("yfsect");
// yfsect->SetTitle("x muon cross section [mm]");
// yfsect->SetFillStyle(1001);
// yfsect->SetFillColor(46);
// yfsect->Draw();
// bspot_hist1 = (TH2D*) gDirectory->Get("bspot_hist1");
// bspot_hist1->SetTitle("Muon beam cross section [mm]");
// bspot_hist1->GetXaxis()->SetTitle("x (mm)");
// bspot_hist1->GetYaxis()->SetTitle("y (mm)");
// bspot_hist1->Draw();
// bspot_hist1->Draw("cont0 same");
// cout << "Mean x, Mean y, RMS x, RMS y: " << bspot_hist1->GetMean(1) << ", " << bspot_hist1->GetMean(2) << ", " << bspot_hist1->GetRMS(1) << ", " << bspot_hist1->GetRMS(2) << ", " << endl;
// cout << "Fraction in [-10.,10.]: " << bspot_hist1->Integral(21,60,21,60)/bspot_hist1->Integral(1,80,1,80) << endl;
// cout << "Fraction in [-12.5,12.5]: " << bspot_hist1->Integral(16,65,16,65)/bspot_hist1->Integral(1,80,1,80) << endl;
// cout << "Fraction in [-5.0,5.0]: " << bspot_hist1->Integral(31,50,31,50)/bspot_hist1->Integral(1,80,1,80) << endl;
// cout << "Fraction in [-2.5,2.5]: " << bspot_hist1->Integral(36,45,36,45)/bspot_hist1->Integral(1,80,1,80) << endl;
// cout << "N[-20,20]: " << bspot_hist1->Integral(1,80,1,80) << endl;
}
void phase_space(const char* fname)
{
TH1D *pol_x, *pol_z, *xisect, *yisect, *xfsect, *yfsect;
TH2D *ini_hist, *bspot_hist, *bspot_hist1;
TTree *t1;
TFile* f1 = new TFile(fname);
t1 = (TTree*) gDirectory->FindObjectAny("t1");
gStyle->SetPalette(1,0);
TCanvas* c1 = new TCanvas("c1","Phase Space",60,40,600,800);
c1->Divide(2,2);
c1->SetGridx();
c1->SetGridy();
// Resulting phase space px,py
c1->cd(1);
t1->Draw("muIniMomY[0]:muIniMomX[0]>>ini_hist(64,-40,40,64,-40,40)","muIniPolX > -2");
ini_hist->SetTitle("Muon initial beam phase space []");
ini_hist->Draw();
ini_hist->Draw("cont0 same");
ini_hist->ProjectionX("xisect",31,33);
ini_hist->ProjectionY("yisect",31,33);
// Resulting polarization in the z direction
c1->cd(2);
t1->Draw("muTargetPosY[0]:muTargetPosX[0]>>bspot_hist(64,-40,40,64,-40,40)","muTargetPolX > -2");
bspot_hist->SetTitle("Muon beam cross section [mm]");
bspot_hist->Draw();
bspot_hist->Draw("cont0 same");
bspot_hist->ProjectionX("xfsect",31,33);
bspot_hist->ProjectionY("yfsect",31,33);
// Initial beam spot
c1->cd(3)->SetGridx();c1->cd(3)->SetGridy(); // c2->cd(3);
t1->Draw("muIniPosY[0]:muIniPosX[0]>>ini_hist(64,-40,40,64,-40,40)","muIniPolX > -2");
ini_hist->SetTitle("Muon initial beam cross section [mm]");
ini_hist->Draw();
ini_hist->Draw("cont0 same");
ini_hist->ProjectionX("xisect",31,33);
ini_hist->ProjectionY("yisect",31,33);
// Resulting beam spot
c1->cd(4)->SetGridx();c1->cd(4)->SetGridy(); // c1->cd(3);
t1->Draw("muTargetPosY[0]:muTargetPosX[0]>>bspot_hist(64,-40,40,64,-40,40)","muTargetPolX > -2");
bspot_hist->SetTitle("Muon beam cross section [mm]");
bspot_hist->Draw();
bspot_hist->Draw("cont0 same");
bspot_hist->ProjectionX("xfsect",31,33);
bspot_hist->ProjectionY("yfsect",31,33);
}
void Slice(const char* fname, Int_t SliceID)
{
TH1D *pol_x, *pol_z, *xisect, *yisect, *xfsect, *yfsect, *zhist;
TH2D *ini_hist, *bspot_hist;
TTree *t1;
TFile* f1 = new TFile(fname);
TString Cond,Title;
Double_t zSlice;
t1 = (TTree*) gDirectory->FindObjectAny("t1");
gStyle->SetPalette(1,0);
TCanvas* c1 = new TCanvas("c1","Polarization and Transmission",60,40,600,800);
//c1->Divide(2,3);
c1->SetGridx();
c1->SetGridy();
// Resulting polarization in the x direction
c1->cd(1);
// Cond.Form("save_detID== %04d&&save_particleID==-13",SliceID);
Cond.Form("save_detID== %04d",SliceID);
t1->Draw("save_polx >> pol_x(64,-1,1)",Cond); //0, 2
pol_x->SetTitle("Polarization X");
pol_x->GetXaxis()->SetNdivisions(405);
pol_x->GetYaxis()->SetNdivisions(406);
pol_x->GetXaxis()->SetTickLength(0.018);
pol_x->GetYaxis()->SetTickLength(0.018);
pol_x->Draw("F");
pol_x->SetFillStyle(1001);
pol_x->SetFillColor(kGreen-5);
pol_x->Draw();
//c1->SaveAs("data/sr_bspot_0.eps");
// Resulting polarization in the z direction
// c1->cd(2);
// t1->Draw("save_polz >> pol_z(64,-1,1)",Cond); //-1., 1
// pol_z->SetTitle("Polarization Z");
// pol_z->GetXaxis()->SetNdivisions(405);
// pol_z->GetYaxis()->SetNdivisions(406);
// pol_z->GetXaxis()->SetTickLength(0.018);
// pol_z->GetYaxis()->SetTickLength(0.018);
// pol_z->Draw("F");
// pol_z->SetFillStyle(1001);
// pol_z->SetFillColor(38);
// pol_z->Draw();
// Initial beam spot
// c1->cd(3)->SetGridx();c1->cd(3)->SetGridy(); // c2->cd(3);
// t1->Draw("muIniPosZ[0]:muIniPosY[0]>>ini_hist(64,-40,40,64,-1710,-1646)","muIniPolZ > -2");
// ini_hist->SetTitle("Muon initial beam cross section [mm]");
// ini_hist->Draw();
// ini_hist->Draw("cont0 same");
// ini_hist->ProjectionX("xisect",31,33);
// ini_hist->ProjectionY("yisect",31,33);
// Resulting beam spot
// c1->cd(4)->SetGridx();c1->cd(4)->SetGridy(); // c1->cd(3);
// t1->Draw("save_z>>zhist",Cond);
// zSlice=zhist->GetMean(1);
// t1->Draw("save_y:save_x>>bspot_hist(64,-40,40,64,-40,40)",Cond);
// Title.Form("Muon beam cross section [mm], z=%g [mm]",zSlice);
// bspot_hist->SetTitle(Title);
// bspot_hist->Draw();
// bspot_hist->Draw("cont0 same");
// bspot_hist->ProjectionX("xfsect",31,33);
// bspot_hist->ProjectionY("yfsect",31,33);
// Initial beam spot cross section
// c1->cd(5);
// xisect->SetTitle("x initial cross section [mm]");
// xisect->SetFillStyle(1001);
// xisect->SetFillColor(45);
// xisect->Draw();
// Resulting beam spot cross section
// c1->cd(6);
// xfsect->SetTitle("x cross section [mm]");
// xfsect->SetFillStyle(1001);
// xfsect->SetFillColor(45);
// xfsect->Draw();
}
void VarSlice(const char* fname, char* Var, Int_t Slice, Int_t SubPlot)
{
TH1D *histo;
TTree *t1;
TFile* f1 = new TFile(fname);
t1 = (TTree*) gDirectory->FindObjectAny("t1");
TString Cond,Title,Histo;
Double_t zSlice;
gStyle->SetPalette(1,0);
TCanvas* c1 = new TCanvas("c1", Var);
// c1->Divide(3,5);
c1->cd(SubPlot);
Cond.Form("save_detID== %04d&&save_particleID==-13",Slice);
Histo.Form("%s >> histo",Var);
t1->Draw(Histo,Cond);
histo->SetTitle(Var);
histo->Draw("F");
histo->SetFillStyle(1001);
histo->SetFillColor(kGreen-5);
histo->Draw();
}
void VarxySlice(const char* fname, char* Varx, char* Vary, Int_t Slice, Int_t SubPlot)
{
TH1D *histo;
TTree *t1;
TFile* f1 = new TFile(fname);
TString Cond,Title,Histo;
Double_t zSlice;
t1 = (TTree*) gDirectory->FindObjectAny("t1");
gStyle->SetPalette(1,0);
TCanvas* c1 = new TCanvas("c1", Varx);
// c1->Divide(3,5);
c1->cd(SubPlot);
Cond.Form("save_detID== %04d&&save_particleID==-13",Slice);
Histo.Form("%s:%s >> histo",Vary,Varx);
t1->Draw(Histo,Cond);
histo->SetTitle(Histo);
histo->Draw();
histo->Draw("cont0 same");
}
void Beam_Env(const char* fname, Int_t iSlice, Int_t fSlice)
{
TH2D *bspot_hist;
TTree *t1;
TFile* f1 = new TFile(fname);
TString Cond,Title;
Double_t zSlice,Xrms,Yrms,Xavg,Yavg,Nbins;
Int_t i;
t1 = (TTree*) gDirectory->FindObjectAny("t1");
gStyle->SetPalette(1,0);
TCanvas* c1 = new TCanvas("c1","Polarization and Transmission");
// Initial beam spot
// t1->Draw("muIniPosZ[0]:muIniPosY[0]:muIniPosX[0]>>ini_hist(64,-40,40,64,-40,40)","muIniPolX > -2");
// ini_hist->SetTitle("Muon initial beam cross section [mm]");
// ini_hist->Draw();
// ini_hist->Draw("cont0 same");
// ini_hist->ProjectionX("xisect",31,33);
// ini_hist->ProjectionY("yisect",31,33);
printf("SliceID \t Z \t Xrms \t Yrms \t Xavg \t Yavg \t N\n");
for (i=iSlice; i<=fSlice; i++)
{
// Resulting beam spot
Cond.Form("save_detID==%d&&save_particleID==-13",i);
// Cond.Form("save_detID==%d&& (save_particleID!=22) ",i);
t1->Draw("save_z:save_y:save_x>>bspot_hist(100,-100,100,100,-100,100,100,-2600,1500)",Cond);
// t1->Draw("save_z:save_y:save_x>>bspot_hist(64,-40,40,64,-40,40,100,-290,290)",Cond);
bspot_hist = (TH2D*) gDirectory->Get("bspot_hist");
// Get properties of slice
zSlice=bspot_hist->GetMean(3);
Xrms=bspot_hist->GetRMS(1);
Yrms=bspot_hist->GetRMS(2);
Xavg=bspot_hist->GetMean(1);
Yavg=bspot_hist->GetMean(2);
Nbins=bspot_hist->Integral();
printf("%d\t%10.1f\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%g\n",i,zSlice,Xrms,Yrms,Xavg,Yavg,Nbins);
// delete bspot_hist;
}
// t1->Draw("save_z:save_y:save_x>>bspot_hist(64,-40,40,64,-40,40,100,-290,290)","save_particleID==-13");
// t1->Draw("save_z:save_y:save_x>>bspot_hist(64,-40,40,64,-40,40,100,-2600,300)","save_particleID==-13");
// bspot_hist->Draw("Iso");
}
void ToF(const char* fname,Int_t SaveID)
{
TTree *t1;
TFile* f1 = new TFile(fname);
TString Cond;
t1 = (TTree*) gDirectory->FindObjectAny("t1");
Cond.Form("save_detID== %03d&&save_particleID==-13",SaveID);
t1->Draw("save_time>>tof",Cond);
// t1->Draw("save_y:save_x>>bspot_hist(64,-40,40,64,-40,40)",Cond);
// f1->Close();
}

586
run/SiPixel/SiSpect.C Normal file
View File

@ -0,0 +1,586 @@
#define SiSpect_cxx
#include "SiSpect.h"
#include <TH2.h>
#include <TStyle.h>
#include <TCanvas.h>
#include <string>
#include <TROOT.h>
#include <TKey.h>
#include <TFile.h>
#include <TSystem.h>
#include <TTree.h>
/*
To use
TFile* fin=new TFile("data/musr_1021.root");
.L SiSpect.C
SiSpect t
t.CreateIO(1,0.0)
*/
void SiSpect::Loop()
{
}
void SiSpect::CreateIO( Bool_t FigFlag, Double_t eCut )
{
// Double_t eCut = 0.7; //minimum energy deposition in scintillators [MeV]
Bool_t tofFlag = 0;
if (fChain == 0) return;
//DEFINE HISTOGRAMS
TH1F* hEdeposited = new TH1F("hEdeposited","Energy spectrum; E [MeV]", 250,0.,0.5);
TH1F* hEdepositMuI = new TH1F("hEdepositMuI","Energy spectrum Mu/Pos; E [MeV]", 250,0.,0.5);
TH1F* hEdepositMuO = new TH1F("hEdepositMuO","Energy spectrum Mu/Pos; E [MeV]", 250,0.,0.5);
TH1F* hEdepositCF = new TH1F("hEdepositCF","Energy spectrum; E [keV]", 500,0.,20.0);
TH1F* hEdepTrig = new TH1F("hEdepTrig", "Radioactive electron kin. energy",250,0.,2.5);
TH1F* hEdepoTest = new TH1F("hEdepoTest", "Number of events in coincidence", 100,0.,1.);
TH1F* hTof = new TH1F("hTof", "time-of-flight (#mus)", 1000, 0., 1.);
TH2F* hBeamSpot = new TH2F("hBeamSpot", " x,y", 40, -40., 40., 40, -40., 40.);
TH1F* hDetz = new TH1F("hDetz", "z detector [mm]", 100, -40., 40.);
TH1F* hDetzI = new TH1F("hDetzI", "z I detector [mm]", 100, -40., 40.);
TH1F* hDetzO = new TH1F("hDetzO", "z O detector [mm]", 100, -40., 40.);
TH1F* hEventID = new TH1F("hEventID", "Event ID", 10001, -0.5, 10000.5);
// Back inner histogram (501)
TH1F* hBackI = new TH1F("hBackI","Back I (#mus)",1300,0.,13.);
// Forward inner histogram (502)
TH1F* hForwI = new TH1F("hForwI","Forw I (#mus)",1300,0.,13.);
// Top inner histogram (503)
TH1F* hTopI = new TH1F("hTopI","Top I (#mus)",1300,0.,13.);
// Down inner histogram (504)
TH1F* hDownI = new TH1F("hDownI","Down I (#mus)",1300,0.,13.);
// Back outer histogram (601)
TH1F* hBackO = new TH1F("hBackO","Back O (#mus)",1300,0.,13.);
// Forward outer histogram (602)
TH1F* hForwO = new TH1F("hForwO","Forw O (#mus)",1300,0.,13.);
// Top outer histogram (603)
TH1F* hTopO = new TH1F("hTopO","Top O (#mus)",1300,0.,13.);
// Down outer histogram (604)
TH1F* hDownO = new TH1F("hDownO","Down O (#mus)",1300,0.,13.);
Long64_t NFI,NFO,NBI,NBO,NTI,NTO,NDI,NDO;
hEdeposited->Sumw2();
hEdepositCF->Sumw2();
hEdepTrig->Sumw2();
Long64_t nentries = fChain->GetEntriesFast();
//nentries=1000;
printf("nentries = %lld\n",nentries);
Long64_t nbytes = 0, nb = 0;
for (Long64_t jentry=0; jentry<nentries;jentry++) {
tofFlag = 0;
/* Long64_t ientry = LoadTree(jentry);
if (ientry < 0) break;*/
nb = fChain->GetEntry(jentry); nbytes += nb;
// FILL IN HISTOGRAMS
hEdepositCF->Fill(save_ke[0]/1000.);
hBeamSpot->Fill(save_x[0], save_y[0]);
//for (Int_t i=0; i<det_n; i++)
// { if (det_ID[i]==623) { hEdeposited->Fill(save_ke[i]);}
// }
hTof->Fill(muTargetTime);
if (muTargetTime>0.23) tofFlag = 1;
//tofFlag = 1.;
for (Int_t i=0; i<det_n; i++) {
// Only positrons
if (det_ID[i] == 501 && save_particleID[i]==-13) {
hEdepositMuI->Fill(det_edep[i]);
break; //fill only once
}
}
for (Int_t i=0; i<det_n; i++) {
// Only positrons
if (det_ID[i] == 601 && save_particleID[i]==-13) {
hEdepositMuO->Fill(det_edep[i]);
break; //fill only once
}
}
// Hist in Back I detector (501)
for (Int_t i=0; i<det_n; i++) {
// Only positrons
if (det_ID[i] == 501 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
if (det_edep[i]>eCut){
hBackI->Fill(det_time_start[i]);
hDetz->Fill(det_z[i]);
hDetzI->Fill(det_z[i]);
hEventID->Fill(eventID);
break; //fill only once
}
}
}
// Hist in Forw I detector (502)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i] == 502 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
if (det_edep[i]>eCut){
hForwI->Fill(det_time_start[i]);
hDetz->Fill(det_z[i]);
hDetzI->Fill(det_z[i]);
hEventID->Fill(eventID);
break; //fill only once
}
}
}
// Hist in Top I detector (503)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i] == 503 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
if (det_edep[i]>eCut){
hTopI->Fill(det_time_start[i]);
hDetz->Fill(det_z[i]);
hDetzI->Fill(det_z[i]);
hEventID->Fill(eventID);
break; //fill only once
}
}
}
// Hist in Down I detector (504)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i] == 504 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
if (det_edep[i]>eCut){
hDownI->Fill(det_time_start[i]);
hDetz->Fill(det_z[i]);
hDetzI->Fill(det_z[i]);
hEventID->Fill(eventID);
break; //fill only once
}
}
}
// Hist in Back O detector (601)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i] == 601 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
// Only positrons
if (det_edep[i]>eCut){
hBackO->Fill(det_time_start[i]);
hDetz->Fill(det_z[i]);
hDetzO->Fill(det_z[i]);
hEventID->Fill(eventID);
break; //fill only once
}
}
}
// Hist in Forw O detector (602)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i] == 602 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
if (det_edep[i]>eCut){
hForwO->Fill(det_time_start[i]);
hDetz->Fill(det_z[i]);
hDetzO->Fill(det_z[i]);
hEventID->Fill(eventID);
break; //fill only once
}
}
}
// Hist in Top O detector (603)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i] == 603 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
if (det_edep[i]>eCut){
hTopO->Fill(det_time_start[i]);
hDetz->Fill(det_z[i]);
hDetzO->Fill(det_z[i]);
hEventID->Fill(eventID);
break; //fill only once
}
}
}
// Hist in Down O detector (604)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i] == 604 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
if (det_edep[i]>eCut){
hDownO->Fill(det_time_start[i]);
hDetz->Fill(det_z[i]);
hDetzO->Fill(det_z[i]);
hEventID->Fill(eventID);
break; //fill only once
}
}
}
}
// Calculate Asymmetry
// Temporary F and B histograms
TH1F *hFtemp = (TH1F*) hForwI->Clone(); hFtemp->SetName("hFtemp");
TH1F *hBtemp = (TH1F*) hBackI->Clone(); hBtemp->SetName("hBtemp");
// Sum and difference F and B
TH1F *hSumFB = (TH1F*) hForwI->Clone(); hSumFB->SetName("hSumFB");
hSumFB->Sumw2();
TH1F *hDifFB = (TH1F*) hForwI->Clone(); hDifFB->SetName("hDifFB");
hDifFB->Sumw2();
// Asymmetry histograms!
TH1F *hAsyFB = (TH1F*) hForwI->Clone(); hAsyFB->SetName("hAsyFB");
hAsyFB->SetTitle("Muon decay asymmetry F-B; Time (#mus); Asymmetry");
hAsyFB->Sumw2();
// Calculate difference and sum, then divide
hDifFB->Add(hFtemp,hBtemp,1.,-1.);
hSumFB->Add(hFtemp,hBtemp,1., 1.);
hAsyFB->Divide(hDifFB,hSumFB,1.,1.);
if (FigFlag) {
TCanvas* c1= new TCanvas("c1","canvas 1");
c1->Divide(3,2);
c1->cd(1);
hForwI->Draw();
hForwI->SetLineColor(kBlack);
hBackI->Draw("sames");
hBackI->SetLineColor(kRed);
// hBackI->SetX1NDC(10);
// hBackI->SetX2NDC(20);
hTopI->Draw("sames");
hTopI->SetLineColor(kGreen);
hDownI->Draw("sames");
hDownI->SetLineColor(kBlue);
gStyle->SetOptStat("ne");
c1->cd(2);
hForwO->Draw();
hForwO->SetLineColor(kBlack);
hBackO->Draw("sames");
hBackO->SetLineColor(kRed);
hTopO->Draw("sames");
hTopO->SetLineColor(kGreen);
hDownO->Draw("sames");
hDownO->SetLineColor(kBlue);
gStyle->SetOptStat("ne");
c1->cd(3);
hAsyFB->Draw();
hAsyFB -> Fit("pol0","Q","",0.6, 13.);
gStyle->SetOptStat(1001111);
gStyle->SetOptFit(0001);
gStyle->SetLineColor(2);
c1->cd(4);
hEdeposited->Draw();
hEdepositMuO->Draw("sames");
hEdepositMuO->SetLineColor(kRed);
hEdepositMuI->Draw("sames");
hEdeposited->SetLineColor(kGreen);
//gStyle->SetOptStat("nemr");
c1->cd(5);
hDetz->Draw();
hDetzI->Draw("sames");
hDetzI->SetLineColor(kRed);
hDetzO->Draw("sames");
hDetzO->SetLineColor(kGreen);
} else {
hAsyFB -> Fit("pol0","NQ","",0.6, 13.);
}
TF1 *pol0;
pol0 = (TF1*)gROOT->GetListOfFunctions()->FindObject("pol0");
Double_t chi2=pol0->GetChisquare();
Double_t p1=pol0->GetParameter(0);
Double_t e1=pol0->GetParError(0);
// printf("Chi=%g\tP1=%g +/- %g\n",chi2,p1,e1);
printf("%g\t%g\t%g\n",p1,e1,chi2);
}
void SiSpect::CoinIO( Bool_t FigFlag, Double_t eCut )
{
// Double_t eCut = 0.7; //minimum energy deposition in scintillators [MeV]
Bool_t tofFlag = 0;
if (fChain == 0) return;
//DEFINE HISTOGRAMS
TH1F* hEdeposited = new TH1F("hEdeposited","Energy spectrum; E [MeV]", 250,0.,0.5);
TH1F* hEdepositMu = new TH1F("hEdepositMuI","Energy spectrum Mu/Pos; E [MeV]", 250,0.,0.5);
TH1F* hEdepositCF = new TH1F("hEdepositCF","Energy spectrum; E [keV]", 500,0.,20.0);
TH1F* hEdepTrig = new TH1F("hEdepTrig", "Radioactive electron kin. energy",250,0.,2.5);
TH1F* hEdepoTest = new TH1F("hEdepoTest", "Number of events in coincidence", 100,0.,1.);
TH1F* hTof = new TH1F("hTof", "time-of-flight (#mus)", 1000, 0., 1.);
TH2F* hBeamSpot = new TH2F("hBeamSpot", " x,y", 40, -40., 40., 40, -40., 40.);
TH1F* hDetz = new TH1F("hDetz", "z detector [mm]", 100, -40., 40.);
TH1F* hEventID = new TH1F("hEventID", "Event ID", 10001, -0.5, 10000.5);
TH2F* hMuIxy = new TH2F("hMuIxy", " x,y", 40, -40., 40., 40, -40., 40.);
TH2F* hMuOxy = new TH2F("hMuOxy", " x,y", 40, -40., 40., 40, -40., 40.);
TH2F* hMuIOxy = new TH2F("hMuIOxy", " x,y", 40, -40., 40., 40, -40., 40.);
TH2F* hMuSamxy = new TH2F("hMuIOxy", " x,y", 40, -40., 40., 40, -40., 40.);
// Back histogram, i.e. all counts in coincedence 501-601
TH1F* hBack = new TH1F("hBack","Back (#mus)",130,0.,13.);
// Forward histogram, i.e. all counts in coincedence 502-602
TH1F* hForw = new TH1F("hForw","Forw (#mus)",130,0.,13.);
// Top histogram, i.e. all counts in coincedence 503-603
TH1F* hTop = new TH1F("hTop","Top (#mus)",130,0.,13.);
// Down histogram, i.e. all counts in coincedence 504-604
TH1F* hDown = new TH1F("hDown","Down (#mus)",130,0.,13.);
// Mu counter, i.e. all counts in coincedence 501-601
TH1F* hMu = new TH1F("hMu","Muons (#mus)",130,0.,13.);
Double_t xo,yo,zo,xi,yi,zi,xs,ys,zs;
// Sample position
zs = 0.0;
hEdeposited->Sumw2();
hEdepositCF->Sumw2();
hEdepTrig->Sumw2();
Long64_t nentries = fChain->GetEntriesFast();
/* nentries=50000;*/
Long64_t nbytes = 0, nb = 0;
for (Long64_t jentry=0; jentry<nentries;jentry++) {
tofFlag = 0;
/* Long64_t ientry = LoadTree(jentry);
if (ientry < 0) break;*/
nb = fChain->GetEntry(jentry); nbytes += nb;
// FILL IN HISTOGRAMS
hEdepositCF->Fill(save_ke[0]/1000.);
hBeamSpot->Fill(save_x[0], save_y[0]);
//for (Int_t i=0; i<det_n; i++)
// { if (det_ID[i]==623) { hEdeposited->Fill(save_ke[i]);}
// }
hTof->Fill(muTargetTime);
if (muTargetTime>0.23) tofFlag = 1;
//tofFlag = 1.;
// Hist in Muon detector (501) coincidence (601)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i]==501 && save_particleID[i]==-13) {
// Mu outer hit
xo=det_x[i];
yo=det_y[i];
zo=det_z[i];
hMuOxy->Fill(xo, yo);
// printf("Outer: %6.2f\t%6.2f\n",xo,yo);
hEdepositMu->Fill(det_edep[i]);
for (Int_t j=0; j<det_n; j++){
if (det_ID[j]==601 && save_particleID[j]==-13) {
printf("Inner %d\t%d\n",det_ID[j] ,save_particleID[j]);
//printf("Inner\n");
// Mu inner hit
xi=det_x[j];
yi=det_y[j];
zi=det_z[j];
hMuIxy->Fill(xi, yi);
hEdepositMu->Fill(det_edep[j]);
hMu->Fill(det_time_start[j]);
hDetz->Fill(det_z[j]);
hEventID->Fill(eventID);
// Propagate Mu trajectory on sample
xs=xi+((xi-xo)/(zi-zo))*(zs-zi);
ys=yi+((yi-yo)/(zi-zo))*(zs-zi);
hMuIOxy->Fill(xs-save_x[j], ys-save_y[j]);
hMuSamxy->Fill(save_x[j], save_y[j]);
// printf("%6.2f\t%6.2f\n",xs,ys);
break; //fill only once
}
}
}
//printf("\n");
}
// Hist in Back detector (501) coincidence (601)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i]==501 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
if (det_edep[i]>eCut){
for (Int_t j=0; j<det_n; j++){
if (det_ID[j]==601 && save_particleID[j]==22) {
hEdeposited->Fill(det_edep[j]);
if (det_edep[j]>eCut){
hBack->Fill(det_time_start[j]);
hDetz->Fill(det_z[j]);
hEventID->Fill(eventID);
}
break; //fill only once
}
}
}
}
}
// Hist in Forw detector (502) coincidence (602)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i]==502 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
if (det_edep[i]>eCut){
for (Int_t j=0; j<det_n; j++){
if (det_ID[j]==602 && save_particleID[j]==22) {
if (det_edep[j]>eCut){
hForw->Fill(det_time_start[j]);
hDetz->Fill(det_z[j]);
hEventID->Fill(eventID);
}
break; //fill only once
}
}
}
}
}
// Hist in Top detector (503) coincidence (603)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i]==503 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
if (det_edep[i]>eCut){
for (Int_t j=0; j<det_n; j++){
if (det_ID[j]==603 && save_particleID[j]==22) {
if (det_edep[j]>eCut){
hTop->Fill(det_time_start[j]);
hDetz->Fill(det_z[j]);
hEventID->Fill(eventID);
}
break; //fill only once
}
}
}
}
}
// Hist in Down detector (504) coincidence (604)
for (Int_t i=0; i<det_n; i++) {
if (det_ID[i]==504 && save_particleID[i]==22) {
hEdeposited->Fill(det_edep[i]);
if (det_edep[i]>eCut){
for (Int_t j=0; j<det_n; j++){
if (det_ID[j]==604 && save_particleID[j]==22) {
if (det_edep[j]>eCut){
hDown->Fill(det_time_start[j]);
hDetz->Fill(det_z[j]);
hEventID->Fill(eventID);
}
break; //fill only once
}
}
}
}
}
}
// Calculate Asymmetry
// Temporary F and B histograms
TH1F *hFtemp = (TH1F*) hForw->Clone(); hFtemp->SetName("hFtemp");
TH1F *hBtemp = (TH1F*) hBack->Clone(); hBtemp->SetName("hBtemp");
// Temporary T and D histograms
TH1F *hTtemp = (TH1F*) hTop->Clone(); hTtemp->SetName("hTtemp");
TH1F *hDtemp = (TH1F*) hDown->Clone(); hDtemp->SetName("hDtemp");
// Sum and difference F and B
TH1F *hSumFB = (TH1F*) hForw->Clone(); hSumFB->SetName("hSumFB");
hSumFB->Sumw2();
TH1F *hDifFB = (TH1F*) hForw->Clone(); hDifFB->SetName("hDifFB");
hDifFB->Sumw2();
// Sum and difference T and D
TH1F *hSumTD = (TH1F*) hTop->Clone(); hSumTD->SetName("hSumTD");
hSumTD->Sumw2();
TH1F *hDifTD = (TH1F*) hDown->Clone(); hDifTD->SetName("hDifTD");
hDifTD->Sumw2();
// Asymmetry histograms!
TH1F *hAsyFB = (TH1F*) hForw->Clone(); hAsyFB->SetName("hAsyFB");
hAsyFB->SetTitle("Muon decay asymmetry F-B; Time (#mus); Asymmetry");
hAsyFB->Sumw2();
TH1F *hAsyTD = (TH1F*) hTop->Clone(); hAsyTD->SetName("hAsyTD");
hAsyTD->SetTitle("Muon decay asymmetry T-D; Time (#mus); Asymmetry");
hAsyTD->Sumw2();
// Calculate difference and sum, then divide
hDifFB->Add(hFtemp,hBtemp,1.,-1.);
hSumFB->Add(hFtemp,hBtemp,1., 1.);
hAsyFB->Divide(hDifFB,hSumFB,1.,1.);
hDifTD->Add(hTtemp,hDtemp,1.,-1.);
hSumTD->Add(hTtemp,hDtemp,1., 1.);
hAsyTD->Divide(hDifTD,hSumTD,1.,1.);
if (FigFlag) {
TCanvas* c1= new TCanvas("c1","canvas 1");
c1->Divide(3,3);
c1->cd(1);
hBack->Draw();
hBack->SetLineColor(kBlack);
hForw->Draw("sames");
hForw->SetLineColor(kRed);
hTop->Draw("sames");
hTop->SetLineColor(kGreen);
hDown->Draw("sames");
hDown->SetLineColor(kBlue);
c1->cd(2);
hAsyFB->Draw();
hAsyFB -> Fit("pol0","Q","",0.1, 13.);
gStyle->SetOptStat(1001111);
gStyle->SetOptFit(0001);
gStyle->SetLineColor(2);
hAsyTD->Draw("sames");
hAsyTD -> Fit("pol0","Q","",0.1, 13.);
gStyle->SetOptStat(1001111);
gStyle->SetOptFit(0001);
gStyle->SetLineColor(2);
c1->cd(3);
hDetz->Draw();
c1->cd(4);
hMu->Draw();
c1->cd(5);
hEdeposited->Draw();
hEdepositMu->Draw("sames");
hEdepositMu->SetLineColor(kRed);
/* det_edep_pos->Draw("sames");
det_edep_pos->SetLineColor(kGreen);
det_edep_mup->Draw("sames");
det_edep_mup->SetLineColor(kPink);*/
c1->cd(6);
hMuIOxy->Draw();
hMuIOxy->Draw("cont0 same");
c1->cd(7);
hMuSamxy->Draw();
hMuSamxy->Draw("cont0 same");
} else {
hAsyFB -> Fit("pol0","NQ","",0.1, 13.);
}
TF1 *pol0;
pol0 = (TF1*)gROOT->GetListOfFunctions()->FindObject("pol0");
Double_t chi2=pol0->GetChisquare();
Double_t p1=pol0->GetParameter(0);
Double_t e1=pol0->GetParError(0);
Double_t NDet=hDetz->GetSum();
// printf("Chi=%g\tP1=%g +/- %g\n",chi2,p1,e1);
//printf("%g\t%g\t%g\t%g\n",p1,e1,chi2,NDet);
Double_t NhF = hBack->GetEntries();
Double_t NhB = hForw->GetEntries();
Double_t asymFB = (NhB-NhF)/(NhB+NhF);
Double_t NhT = hTop->GetEntries();
Double_t NhD = hDown->GetEntries();
Double_t asymTD = (NhT-NhD)/(NhT+NhD);
cout << "FB Asymmetry = " << asymFB << endl;
cout << "TD Asymmetry = " << asymTD << endl;
}
/*
ax=(x2-x1)/(z2-z1)
ay=(y2-y1)/(z2-z1)
x3=x2+ax*(z3-z2)
y3=y2+ay*(x3-z2)
*/

306
run/SiPixel/SiSpect.h Normal file
View File

@ -0,0 +1,306 @@
//////////////////////////////////////////////////////////
// This class has been automatically generated on
// Fri Oct 26 16:55:39 2007 by ROOT version 5.08/00
// from TTree t1/a simple Tree with simple variables
// found on file: musr_200003.root
//////////////////////////////////////////////////////////
#ifndef SiSpect_h
#define SiSpect_h
#include <TROOT.h>
#include <TChain.h>
#include <TFile.h>
class SiSpect {
public :
TTree *fChain; //!pointer to the analyzed TTree or TChain
Int_t fCurrent; //!current Tree number in a TChain
// Declaration of leave types
Int_t runID;
Int_t eventID;
Double_t BFieldAtDecay_Bx;
Double_t BFieldAtDecay_By;
Double_t BFieldAtDecay_Bz;
Double_t BFieldAtDecay_B3;
Double_t BFieldAtDecay_B4;
Double_t BFieldAtDecay_B5;
Double_t muIniPosX;
Double_t muIniPosY;
Double_t muIniPosZ;
Double_t muIniMomX;
Double_t muIniMomY;
Double_t muIniMomZ;
Double_t muIniPolX;
Double_t muIniPolY;
Double_t muIniPolZ;
Int_t muDecayDetID;
Double_t muDecayPosX;
Double_t muDecayPosY;
Double_t muDecayPosZ;
Double_t muDecayTime;
Double_t muDecayPolX;
Double_t muDecayPolY;
Double_t muDecayPolZ;
Double_t muTargetTime;
Double_t muTargetPolX;
Double_t muTargetPolY;
Double_t muTargetPolZ;
Double_t fieldNomVal;
Int_t det_n;
Int_t det_ID[100]; //[det_n]
Double_t det_edep[100]; //[det_n]
Int_t det_nsteps[100]; //[det_n]
Double_t det_length[100]; //[det_n]
Double_t det_time_start[100]; //[det_n]
Double_t det_time_end[100]; //[det_n]
Double_t det_x[100]; //[det_n]
Double_t det_y[100]; //[det_n]
Double_t det_z[100]; //[det_n]
Int_t save_n;
Int_t save_detID[100]; //[save_n]
Int_t save_particleID[100]; //[save_n]
Double_t save_ke[100]; //[save_n]
Double_t save_x[100]; //[save_n]
Double_t save_y[100]; //[save_n]
Double_t save_z[100]; //[save_n]
Double_t save_px[100]; //[save_n]
Double_t save_py[100]; //[save_n]
Double_t save_pz[100]; //[save_n]
// List of branches
TBranch *b_runID; //!
TBranch *b_eventID; //!
TBranch *b_BFieldAtDecay; //!
TBranch *b_muIniPosX; //!
TBranch *b_muIniPosY; //!
TBranch *b_muIniPosZ; //!
TBranch *b_muIniMomX; //!
TBranch *b_muIniMomY; //!
TBranch *b_muIniMomZ; //!
TBranch *b_muIniPolX; //!
TBranch *b_muIniPolY; //!
TBranch *b_muIniPolZ; //!
TBranch *b_muDecayDetID; //!
TBranch *b_muDecayPosX; //!
TBranch *b_muDecayPosY; //!
TBranch *b_muDecayPosZ; //!
TBranch *b_muDecayTime; //!
TBranch *b_muDecayPolX; //!
TBranch *b_muDecayPolY; //!
TBranch *b_muDecayPolZ; //!
TBranch *b_muTargetTime; //!
TBranch *b_muTargetPolX; //!
TBranch *b_muTargetPolY; //!
TBranch *b_muTargetPolZ; //!
TBranch *b_fieldNomVal; //!
TBranch *b_det_n; //!
TBranch *b_det_ID; //!
TBranch *b_det_edep; //!
TBranch *b_det_nsteps; //!
TBranch *b_det_length; //!
TBranch *b_det_time_start; //!
TBranch *b_det_time_end; //!
TBranch *b_det_x; //!
TBranch *b_det_y; //!
TBranch *b_det_z; //!
TBranch *b_save_n; //!
TBranch *b_save_detID; //!
TBranch *b_save_particleID; //!
TBranch *b_save_ke; //!
TBranch *b_save_x; //!
TBranch *b_save_y; //!
TBranch *b_save_z; //!
TBranch *b_save_px; //!
TBranch *b_save_py; //!
TBranch *b_save_pz; //!
SiSpect(TTree *tree=0);
virtual ~SiSpect();
virtual Int_t Cut(Long64_t entry);
virtual Int_t GetEntry(Long64_t entry);
virtual Long64_t LoadTree(Long64_t entry);
virtual void Init(TTree *tree);
virtual void Loop();
virtual Bool_t Notify();
virtual void Show(Long64_t entry = -1);
virtual void CreateIO(Bool_t FigFlag, Double_t eCut );
virtual void CoinIO( Bool_t FigFlag, Double_t eCut );
};
#endif
#ifdef SiSpect_cxx
SiSpect::SiSpect(TTree *tree)
{
// if parameter tree is not specified (or zero), connect the file
// used to generate this class and read the Tree.
if (tree == 0) {
//TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("data/lem4_1049.root");
//if (!f) {
//f = new TFile("musr_200003.root");
// f = new TFile("data/lem4_1051.root"); //1049
//}
tree = (TTree*)gDirectory->Get("t1");
}
Init(tree);
}
SiSpect::~SiSpect()
{
if (!fChain) return;
delete fChain->GetCurrentFile();
}
Int_t SiSpect::GetEntry(Long64_t entry)
{
// Read contents of entry.
if (!fChain) return 0;
return fChain->GetEntry(entry);
}
Long64_t SiSpect::LoadTree(Long64_t entry)
{
// Set the environment to read one entry
if (!fChain) return -5;
Long64_t centry = fChain->LoadTree(entry);
if (centry < 0) return centry;
if (fChain->IsA() != TChain::Class()) return centry;
TChain *chain = (TChain*)fChain;
if (chain->GetTreeNumber() != fCurrent) {
fCurrent = chain->GetTreeNumber();
Notify();
}
return centry;
}
void SiSpect::Init(TTree *tree)
{
// The Init() function is called when the selector needs to initialize
// a new tree or chain. Typically here the branch addresses of the tree
// will be set. It is normaly not necessary to make changes to the
// generated code, but the routine can be extended by the user if needed.
// Init() will be called many times when running with PROOF.
// Set branch addresses
if (tree == 0) return;
fChain = tree;
fCurrent = -1;
fChain->SetMakeClass(1);
fChain->SetBranchAddress("runID",&runID);
fChain->SetBranchAddress("eventID",&eventID);
fChain->SetBranchAddress("BFieldAtDecay",&BFieldAtDecay_Bx);
fChain->SetBranchAddress("muIniPosX",&muIniPosX);
fChain->SetBranchAddress("muIniPosY",&muIniPosY);
fChain->SetBranchAddress("muIniPosZ",&muIniPosZ);
fChain->SetBranchAddress("muIniMomX",&muIniMomX);
fChain->SetBranchAddress("muIniMomY",&muIniMomY);
fChain->SetBranchAddress("muIniMomZ",&muIniMomZ);
fChain->SetBranchAddress("muIniPolX",&muIniPolX);
fChain->SetBranchAddress("muIniPolY",&muIniPolY);
fChain->SetBranchAddress("muIniPolZ",&muIniPolZ);
fChain->SetBranchAddress("muDecayDetID",&muDecayDetID);
fChain->SetBranchAddress("muDecayPosX",&muDecayPosX);
fChain->SetBranchAddress("muDecayPosY",&muDecayPosY);
fChain->SetBranchAddress("muDecayPosZ",&muDecayPosZ);
fChain->SetBranchAddress("muDecayTime",&muDecayTime);
fChain->SetBranchAddress("muDecayPolX",&muDecayPolX);
fChain->SetBranchAddress("muDecayPolY",&muDecayPolY);
fChain->SetBranchAddress("muDecayPolZ",&muDecayPolZ);
fChain->SetBranchAddress("muTargetTime",&muTargetTime);
fChain->SetBranchAddress("muTargetPolX",&muTargetPolX);
fChain->SetBranchAddress("muTargetPolY",&muTargetPolY);
fChain->SetBranchAddress("muTargetPolZ",&muTargetPolZ);
fChain->SetBranchAddress("fieldNomVal",&fieldNomVal);
fChain->SetBranchAddress("det_n",&det_n);
fChain->SetBranchAddress("det_ID",det_ID);
fChain->SetBranchAddress("det_edep",det_edep);
fChain->SetBranchAddress("det_nsteps",det_nsteps);
fChain->SetBranchAddress("det_length",det_length);
fChain->SetBranchAddress("det_time_start",det_time_start);
fChain->SetBranchAddress("det_time_end",det_time_end);
fChain->SetBranchAddress("det_x",det_x);
fChain->SetBranchAddress("det_y",det_y);
fChain->SetBranchAddress("det_z",det_z);
fChain->SetBranchAddress("save_n", &save_n, &b_save_n);
fChain->SetBranchAddress("save_detID", save_detID, &b_save_detID);
fChain->SetBranchAddress("save_particleID", save_particleID, &b_save_particleID);
fChain->SetBranchAddress("save_ke", save_ke, &b_save_ke);
fChain->SetBranchAddress("save_x", save_x, &b_save_x);
fChain->SetBranchAddress("save_y", save_y, &b_save_y);
fChain->SetBranchAddress("save_z", save_z, &b_save_z);
fChain->SetBranchAddress("save_px", save_px, &b_save_px);
fChain->SetBranchAddress("save_py", save_py, &b_save_py);
fChain->SetBranchAddress("save_pz", save_pz, &b_save_pz);
Notify();
}
Bool_t SiSpect::Notify()
{
// The Notify() function is called when a new file is opened. This
// can be either for a new TTree in a TChain or when when a new TTree
// is started when using PROOF. Typically here the branch pointers
// will be retrieved. It is normaly not necessary to make changes
// to the generated code, but the routine can be extended by the
// user if needed.
// Get branch pointers
b_runID = fChain->GetBranch("runID");
b_eventID = fChain->GetBranch("eventID");
b_BFieldAtDecay = fChain->GetBranch("BFieldAtDecay");
b_muIniPosX = fChain->GetBranch("muIniPosX");
b_muIniPosY = fChain->GetBranch("muIniPosY");
b_muIniPosZ = fChain->GetBranch("muIniPosZ");
b_muIniMomX = fChain->GetBranch("muIniMomX");
b_muIniMomY = fChain->GetBranch("muIniMomY");
b_muIniMomZ = fChain->GetBranch("muIniMomZ");
b_muIniPolX = fChain->GetBranch("muIniPolX");
b_muIniPolY = fChain->GetBranch("muIniPolY");
b_muIniPolZ = fChain->GetBranch("muIniPolZ");
b_muDecayDetID = fChain->GetBranch("muDecayDetID");
b_muDecayPosX = fChain->GetBranch("muDecayPosX");
b_muDecayPosY = fChain->GetBranch("muDecayPosY");
b_muDecayPosZ = fChain->GetBranch("muDecayPosZ");
b_muDecayTime = fChain->GetBranch("muDecayTime");
b_muDecayPolX = fChain->GetBranch("muDecayPolX");
b_muDecayPolY = fChain->GetBranch("muDecayPolY");
b_muDecayPolZ = fChain->GetBranch("muDecayPolZ");
b_muTargetTime = fChain->GetBranch("muTargetTime");
b_muTargetPolX = fChain->GetBranch("muTargetPolX");
b_muTargetPolY = fChain->GetBranch("muTargetPolY");
b_muTargetPolZ = fChain->GetBranch("muTargetPolZ");
b_fieldNomVal = fChain->GetBranch("fieldNomVal");
b_det_n = fChain->GetBranch("det_n");
b_det_ID = fChain->GetBranch("det_ID");
b_det_edep = fChain->GetBranch("det_edep");
b_det_nsteps = fChain->GetBranch("det_nsteps");
b_det_length = fChain->GetBranch("det_length");
b_det_time_start = fChain->GetBranch("det_time_start");
b_det_time_end = fChain->GetBranch("det_time_end");
b_det_x = fChain->GetBranch("det_x");
b_det_y = fChain->GetBranch("det_y");
b_det_z = fChain->GetBranch("det_z");
return kTRUE;
}
void SiSpect::Show(Long64_t entry)
{
// Print contents of entry.
// If entry is not specified, print current entry
if (!fChain) return;
fChain->Show(entry);
}
Int_t SiSpect::Cut(Long64_t entry)
{
// This function may be called from Loop.
// returns 1 if entry is accepted.
// returns -1 otherwise.
return 1;
}
#endif // #ifdef SiSpect_cxx

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

65
run/SiPixel/vis.mac Normal file
View File

@ -0,0 +1,65 @@
# This is a macro file for visualizing G4 events.
# It can either be included in another macro or called with /control/exec vis.mac
# Create an OpenGL driver (i.e. a scene handler and viewer)
# Some useful choices: VRML2FILE, OGLSX, OGLIX, DAWNFILE, etc.
#/vis/open VRML2FILE
/vis/open OGLIX 600x600-0+0
#*/vis/open DAWNFILE
# To calculate volumes and masses uncomment the next two lines
#*/vis/open ATree
#*/vis/ASCIITree/verbose 4
# Create a new empty scene and attach it to handler
/vis/scene/create
# Add world volume, trajectories and hits to the scene
/vis/scene/add/volume
/vis/scene/add/trajectories
/vis/scene/add/hits
/vis/sceneHandler/attach
# Configure the viewer (optional)
/vis/viewer/set/viewpointThetaPhi 235 -45
/vis/viewer/set/lightsThetaPhi 120 60
#/vis/viewer/set/hiddenEdge true
#/vis/viewer/set/style surface
#/vis/viewer/zoom 0.5
# Style: s - surface, w - wireframe
# Note: "surface style" and "hiddenEdge true" remove transparency!
# Other viewpoints (25 55) (235 -45) (125 35)
# Store trajectory information for visualisation (set to 0 if too many tracks cause core dump)
/tracking/storeTrajectory 1
#At the end of each event (default behaviour)
#/vis/scene/endOfEventAction refresh
#At the end of run of X events - Data from X events will be superimposed
/vis/scene/endOfEventAction accumulate
#At the end of Y runs - Data from Y runs will be superimposed
/vis/scene/endOfRunAction accumulate
# Coloured trajectories for an easier particle identification:
# PDG IDs and colours: e- 11 red, e+ -11 blue, nu_e 12 yellow,
# mu+ -13 magenta, anti_nu_mu -14 green, gamma 22 grey
#
#/vis/modeling/trajectories/create/drawByCharge
#/vis/modeling/trajectories/drawByCharge-0/set 1 cyan
/vis/modeling/trajectories/create/drawByParticleID
#*/vis/modeling/trajectories/drawByParticleID-0/set gamma grey
/vis/modeling/trajectories/drawByParticleID-0/setRGBA mu+ 1 0 1 1
/vis/modeling/trajectories/drawByParticleID-0/setRGBA e+ 0 0 0.8 0.5
#*/vis/modeling/trajectories/drawByParticleID-0/setRGBA nu_e 0.7 0.7 0 1
#*/vis/modeling/trajectories/drawByParticleID-0/setRGBA anti_nu_mu 0.3 1.0 0 0.5
# Verbosity of hits
#/hits/verbose 2
# Output just the detector geometry
/vis/viewer/flush
/vis/reviewKeptEvents

View File

@ -0,0 +1,70 @@
# This is a macro file for visualizing G4 events.
# It can either be included in another macro or called with /control/exec vis.mac
# Create an OpenGL driver (i.e. a scene handler and viewer)
# Some useful choices: VRML2FILE, OGLSX, OGLIX, DAWNFILE, etc.
#/vis/open VRML2FILE
#*/vis/open OGLIX 600x600-0+0
/vis/open DAWNFILE
# To calculate volumes and masses uncomment the next two lines
#*/vis/open ATree
#*/vis/ASCIITree/verbose 4
# Create a new empty scene and attach it to handler
/vis/scene/create
# Add world volume, trajectories and hits to the scene
/vis/scene/add/volume
/vis/scene/add/trajectories
/vis/scene/add/hits
/vis/sceneHandler/attach
# Configure the viewer (optional)
#/vis/viewer/set/viewpointThetaPhi 235 -45
/vis/viewer/set/viewpointThetaPhi 80 30
#/vis/viewer/set/lightsThetaPhi 120 60
#/vis/viewer/set/hiddenEdge true
/vis/viewer/set/style surface
/vis/viewer/zoom 0.8
# Style: s - surface, w - wireframe
# Note: "surface style" and "hiddenEdge true" remove transparency!
# Other viewpoints (25 55) (235 -45) (125 35)
# Store trajectory information for visualisation (set to 0 if too many tracks cause core dump)
/tracking/storeTrajectory 1
#At the end of each event (default behaviour)
#/vis/scene/endOfEventAction refresh
#At the end of run of X events - Data from X events will be superimposed
#cks
#/vis/scene/endOfEventAction accumulate
#At the end of Y runs - Data from Y runs will be superimposed
#/vis/scene/endOfRunAction accumulate
# Coloured trajectories for an easier particle identification:
# PDG IDs and colours: e- 11 red, e+ -11 blue, nu_e 12 yellow,
# mu+ -13 magenta, anti_nu_mu -14 green, gamma 22 grey
#
#/vis/modeling/trajectories/create/drawByCharge
#/vis/modeling/trajectories/drawByCharge-0/set 1 cyan
/vis/modeling/trajectories/create/drawByParticleID
#*/vis/modeling/trajectories/drawByParticleID-0/set gamma grey
#/vis/modeling/trajectories/drawByParticleID-0/setRGBA gamma 1 1 1 0
/vis/modeling/trajectories/drawByParticleID-0/setRGBA mu+ 1 0 0 1
/vis/modeling/trajectories/drawByParticleID-0/setRGBA e+ 0 0 1 1
/vis/modeling/trajectories/drawByParticleID-0/setRGBA gamma 0 1 0 1
/vis/modeling/trajectories/drawByParticleID-0/setRGBA e- 1 0 1 1
/vis/modeling/trajectories/drawByParticleID-0/setRGBA nu_e 1 1 1 0 1
/vis/modeling/trajectories/drawByParticleID-0/setRGBA anti_nu_mu 1 1 1 0.5
#/vis/modeling/trajectories/drawByParticleID-0/set nu_e white
#/vis/modeling/trajectories/drawByParticleID-0/set anti_nu_mu white
# Verbosity of hits
#/hits/verbose 2
# Output just the detector geometry
/vis/viewer/flush

View File

@ -0,0 +1,63 @@
# This is a macro file for visualizing G4 events.
# It can either be included in another macro or called with /control/exec vis.mac
# Create an OpenGL driver (i.e. a scene handler and viewer)
# Some useful choices: VRML2FILE, OGLSX, OGLIX, DAWNFILE, etc.
#/vis/open VRML2FILE
#*/vis/open OGLIX 600x600-0+0
/vis/open DAWNFILE
# To calculate volumes and masses uncomment the next two lines
#*/vis/open ATree
#*/vis/ASCIITree/verbose 4
# Create a new empty scene and attach it to handler
/vis/scene/create
# Add world volume, trajectories and hits to the scene
/vis/scene/add/volume
/vis/scene/add/trajectories
/vis/scene/add/hits
/vis/sceneHandler/attach
# Configure the viewer (optional)
/vis/viewer/set/viewpointThetaPhi 235 -45
/vis/viewer/set/lightsThetaPhi 120 60
#/vis/viewer/set/hiddenEdge true
#/vis/viewer/set/style surface
#/vis/viewer/zoom 0.5
# Style: s - surface, w - wireframe
# Note: "surface style" and "hiddenEdge true" remove transparency!
# Other viewpoints (25 55) (235 -45) (125 35)
# Store trajectory information for visualisation (set to 0 if too many tracks cause core dump)
/tracking/storeTrajectory 1
#At the end of each event (default behaviour)
#/vis/scene/endOfEventAction refresh
#At the end of run of X events - Data from X events will be superimposed
/vis/scene/endOfEventAction accumulate
#At the end of Y runs - Data from Y runs will be superimposed
#/vis/scene/endOfRunAction accumulate
# Coloured trajectories for an easier particle identification:
# PDG IDs and colours: e- 11 red, e+ -11 blue, nu_e 12 yellow,
# mu+ -13 magenta, anti_nu_mu -14 green, gamma 22 grey
#
#/vis/modeling/trajectories/create/drawByCharge
#/vis/modeling/trajectories/drawByCharge-0/set 1 cyan
/vis/modeling/trajectories/create/drawByParticleID
#*/vis/modeling/trajectories/drawByParticleID-0/set gamma grey
/vis/modeling/trajectories/drawByParticleID-0/setRGBA mu+ 1 0 1 1
/vis/modeling/trajectories/drawByParticleID-0/setRGBA e+ 0 0 0.8 0.5
#*/vis/modeling/trajectories/drawByParticleID-0/setRGBA nu_e 0.7 0.7 0 1
#*/vis/modeling/trajectories/drawByParticleID-0/setRGBA anti_nu_mu 0.3 1.0 0 0.5
# Verbosity of hits
#/hits/verbose 2
# Output just the detector geometry
/vis/viewer/flush

63
run/SiPixel/visVRML.mac Normal file
View File

@ -0,0 +1,63 @@
# This is a macro file for visualizing G4 events.
# It can either be included in another macro or called with /control/exec vis.mac
# Create an OpenGL driver (i.e. a scene handler and viewer)
# Some useful choices: VRML2FILE, OGLSX, OGLIX, DAWNFILE, etc.
/vis/open VRML2FILE
#*/vis/open OGLIX 600x600-0+0
#/vis/open DAWNFILE
# To calculate volumes and masses uncomment the next two lines
#*/vis/open ATree
#*/vis/ASCIITree/verbose 4
# Create a new empty scene and attach it to handler
/vis/scene/create
# Add world volume, trajectories and hits to the scene
/vis/scene/add/volume
/vis/scene/add/trajectories
/vis/scene/add/hits
/vis/sceneHandler/attach
# Configure the viewer (optional)
/vis/viewer/set/viewpointThetaPhi 235 -45
/vis/viewer/set/lightsThetaPhi 120 60
#/vis/viewer/set/hiddenEdge true
#/vis/viewer/set/style surface
#/vis/viewer/zoom 0.5
# Style: s - surface, w - wireframe
# Note: "surface style" and "hiddenEdge true" remove transparency!
# Other viewpoints (25 55) (235 -45) (125 35)
# Store trajectory information for visualisation (set to 0 if too many tracks cause core dump)
/tracking/storeTrajectory 1
#At the end of each event (default behaviour)
#/vis/scene/endOfEventAction refresh
#At the end of run of X events - Data from X events will be superimposed
/vis/scene/endOfEventAction accumulate
#At the end of Y runs - Data from Y runs will be superimposed
/vis/scene/endOfRunAction accumulate
# Coloured trajectories for an easier particle identification:
# PDG IDs and colours: e- 11 red, e+ -11 blue, nu_e 12 yellow,
# mu+ -13 magenta, anti_nu_mu -14 green, gamma 22 grey
#
#/vis/modeling/trajectories/create/drawByCharge
#/vis/modeling/trajectories/drawByCharge-0/set 1 cyan
/vis/modeling/trajectories/create/drawByParticleID
#*/vis/modeling/trajectories/drawByParticleID-0/set gamma grey
/vis/modeling/trajectories/drawByParticleID-0/setRGBA mu+ 1 0 1 1
/vis/modeling/trajectories/drawByParticleID-0/setRGBA e+ 0 0 0.8 0.5
#*/vis/modeling/trajectories/drawByParticleID-0/setRGBA nu_e 0.7 0.7 0 1
#*/vis/modeling/trajectories/drawByParticleID-0/setRGBA anti_nu_mu 0.3 1.0 0 0.5
# Verbosity of hits
#/hits/verbose 2
# Output just the detector geometry
/vis/viewer/flush

View File

@ -1,102 +0,0 @@
-------------------- Download musrSim source code from svn
$> cd /tmp
$> mkdir test
$> cd test
$> svn co file:///afs/psi.ch/project/nemu/svn/lem/trunk/simulation/geant4/musrSim musrSim
$> cd musrSim
$> ll
$> ll doc/
-------------------- Compile musrSim
$> cd ..
$> mkdir mSim
$> cd mSim
$> cmake -DGeant4_DIR=/home/install/geant4.9.5/install/lib/Geant4-9.5.0 /tmp/test/musrSim/
$> gmake
-------------------- Prepare and run
$> g495
$> cd /tmp/test/musrSim
$> ll
$> cd run
$> ll
$> ln -s /afs/psi.ch/project/HighFieldMuSR/Magnet/OI-39370/OI_Archiv/Oxford_Instr/9048_2009/x10cm_z2m.table .
$> ln -s /afs/psi.ch/user/s/sedlak/HighFieldMuSR/Davide/TURTLE/Feb2010/FOR077_reggiani_Feb2010.dat .
$> emacs vis_14510.mac &
- show different blocks / commands
$> /tmp/test/mSim/musrSim vis_14510.mac
- show the Dawn output
$> /tmp/test/mSim/musrSim 14510.mac
- discuss the text output
-------------------- Now open the output file in Root:
$> root
root [0] TFile* f=new TFile("data/musr_14510.root")
root [1] .ls
root [2] t1->Print()
root [3] t1->Draw("muIniMomZ")
root [4] t1->Draw("muDecayPosZ")
root [5] t1->Draw("sqrt(muDecayPosX*muDecayPosX+muDecayPosY*muDecayPosY):muDecayPosZ")
root [6] t1->Draw("sqrt(muDecayPosX*muDecayPosX+muDecayPosY*muDecayPosY):muDecayPosZ","muDecayPosZ>-200")
root [7] t1->Draw("det_edep")
root [8] t1->Draw("det_edep","det_ID==102")
root [9] .q
------------------- musrSimAna
$> cd ../musrSimAna/
$> gmake
$> ln -s /tmp/test/musrSim/run/data .
$> emacs 14510b.v1190&
$> ./musrSimAna 14510 14510b nographic
$> cd data
$> ln -s /home/data_sim/hifi/his_14410_14410b.v1190.root .
$> ln -s /home/data_sim/hifi/his_14460_14460a.v1190.root .
$> cd ..
------------------------------
Now open the output file in Root:
$> root
root [0] TFile* f=new TFile("data/his_14510_14510b.v1190.root")
root [1] .ls
root [2] hMuDecayMap_1->Draw() // condition 1 oncePerEvent
root [3] hMuDecayMap_6->Draw() // condition 6 goodEvent_det
root [4] TFile* f=new TFile("data/his_14410_14410b.v1190.root")
root [5] hMuDecayMap_6->Draw() // condition 6 goodEvent_det
root [6] hdet_time10_6->Draw() // condition 6 goodEvent_det
root [7] hdet_time10_11->Draw() // condition 11 goodEvent_F_det
root [8] hdet_time10_13->Draw() // condition 13 goodEvent_U_det
root [9] hdet_time20_6->Draw() // condition 6 goodEvent_det
--> SetOptFit(1111111)
function "[3]*exp(x/2.19703)*(1+[2]*cos(x*[0]+[1]))" was fitted
Asymmetry = 0.42
To study pileup background --> natural decay of muons is required.
This was done in the file 14460:
root [10] TFile* f=new TFile("data/his_14460_14460a.v1190.root")
root [11] hdet_time20_6->Draw() // condition 6 goodEvent_det
--> SetOptFit(1111111)
function "[0]*exp(-x/2.19703)+[1]" was fitted
--> Remember that par0 = 375.8 (Normalisation)
--> Background from the fit: par1/par0 = 4.4 / 375.8 = 1.2%
root [12] hdet_time20_rotref_6->Draw() // condition 6 goodEvent_det
--> SetOptFit(1111111)
function "[2]*cos(x*[0]+[1]" is fitted
--> Asymmetry = 2* par2/Normalisation = 2 * 78.5 / 375.8 = 0.418
2nd way how to extract pileup background:
root [13] hdet_time10_bgr3_6->Draw() // condition 6 goodEvent_det
--> SetOptFit(1111111)
--> background = par0/Normalisation = 4.9 / 375.8 = 1.3%
3rd way how to extract background:
root [14] hdet_time10_bgr1_9->Draw() // condition 9 pileupEvent
--> SetOptFit(1111111)
--> background = par0/Normalisation = 4.5 / 375.8 = 1.2%
Where to the muons and pileup muons stop? :
root [28] humanDecayHistograms_6->Draw() // <--- accepted events
root [29] humanDecayHistograms_9->Draw() // <--- mu1 for pileup events
root [30] humanDecayPileupHistograms_9->Draw() // <--- mu2 for pileup events

Binary file not shown.