SoftwareHints » History » Version 2
Dobbs, Adam, 02 February 2013 16:23
1 | 1 | Dobbs, Adam | h1. Software Hints and Tips |
---|---|---|---|
2 | |||
3 | h2. Running a tracker simulation |
||
4 | |||
5 | There is a dedicated directory holding top level scripts for producing tracker data within MAUS at: |
||
6 | |||
7 | <pre> |
||
8 | bin/user/scifi |
||
9 | </pre> |
||
10 | |||
11 | For example to run a MAUS simulation of the tracker in the presence of a magnetic field do the following from the MAUS root directory: |
||
12 | |||
13 | <pre> |
||
14 | source env.sh |
||
15 | cd bin/user/scifi |
||
16 | ./simulate_scifi.py --configuration_file datacard_mc_helical |
||
17 | </pre> |
||
18 | |||
19 | The equivalent command for no magnetic field (straight tracks) is: |
||
20 | |||
21 | <pre> |
||
22 | ./simulate_scifi.py --configuration_file datacard_mc_straight |
||
23 | </pre> |
||
24 | |||
25 | h2. Datacard variables |
||
26 | |||
27 | Datacard variables control the various parameters passed to MAUS. The variables assume the default values set in src/common_py/ConfigurationDefaults.py unless overridden in a datacard or elsewhere. Here are a few common variables: |
||
28 | |||
29 | * Number of spills. The number of spills to simulate can be set by editing the relevant datacard file and changing the variable 'spill_generator_number_of_spills'. |
||
30 | * The number of particles per spill is controlled by the beam variable. This has a number of sub-variables, two of which can be set to alter the number of particles per spill: |
||
31 | ** 'binomial_n' is the number of attempts at generating a track |
||
32 | 2 | Dobbs, Adam | ** 'binomial_p' is the probability an attempt succeeds |
33 | * Helical pattern recognition can be turned on or off by setting 'SciFiHelicalPROn' to 1 or 0 respectively |
||
34 | * Straight pattern recognition can be turned on or off by setting 'SciFiStraightPROn' to 1 or 0 respectively |
||
35 | 1 | Dobbs, Adam | |
36 | h2. Accessing the output data |
||
37 | |||
38 | Data is output by MAUS either as ROOT or JSON documents. In order for ROOT to understand the classes we have written a ROOT dictionary, built automatically by MAUS must first be loaded. In an interactive ROOT session this done with following command: |
||
39 | |||
40 | <pre> |
||
41 | .L $MAUS_ROOT_DIR/build/libMausCpp.so |
||
42 | </pre> |
||
43 | |||
44 | The equivalent command if using "PyROOT":http://root.cern.ch/drupal/content/pyroot is |
||
45 | |||
46 | <pre> |
||
47 | import libMausCpp |
||
48 | </pre> |
||
49 | |||
50 | An example ROOT session to open a data file would be: |
||
51 | |||
52 | <pre> |
||
53 | > .L $MAUS_ROOT_DIR/build/libMausCpp.so |
||
54 | > TFile f1("maus_output.root") |
||
55 | > TBrowser b |
||
56 | </pre> |
||
57 | |||
58 | The equivalent PyROOT session would be: |
||
59 | |||
60 | <pre> |
||
61 | > from ROOT import * |
||
62 | > import libMausCpp |
||
63 | > f1 = TFile("maus_output.root") |
||
64 | > b = TBrowser() |
||
65 | </pre> |
||
66 | |||
67 | 2 | Dobbs, Adam | The tracker MC data can then be found by browsing to: |
68 | <pre> |
||
69 | Spill:data:_spill:_mc:_sci_fi_hits |
||
70 | </pre> |
||
71 | |||
72 | The reconstructed data is stored under: |
||
73 | <pre> |
||
74 | Spill:data:_spill:recon:_scifi_event |
||
75 | </pre> |