1 | README file for the Geant4 BlineTracer module |
---|
2 | |
---|
3 | Author : Laurent Desorgher (desorgher@phim.unibe.ch) - 04/10/2003 |
---|
4 | |
---|
5 | ------------------------------------------------- |
---|
6 | |
---|
7 | The BlineTracer module allows to trace and visualise magnetic field |
---|
8 | lines in a Geant4 application where particle are tracked through the |
---|
9 | magnetic field (in future, these functionalities may be integrated in |
---|
10 | the Geant4 kernel). |
---|
11 | To use the tracer, the user should copy the classes provided here in |
---|
12 | his/her own application/example and create somewhere in his/her code |
---|
13 | an instance of a G4BlineTracer object. |
---|
14 | It can be anywhere (for example in the main code or in the user class |
---|
15 | defining the magnetic field): |
---|
16 | |
---|
17 | #include "G4BlineTracer.hh" |
---|
18 | G4BlineTracer* theBlineTool = new G4BlineTracer(); |
---|
19 | |
---|
20 | |
---|
21 | Design principles: |
---|
22 | |
---|
23 | The core of the tool is the method ComputeBlines() of G4BlineTracer class. |
---|
24 | In this method a bline is computed by tracking a ChargedGeantino in the user |
---|
25 | defined magnetic field and by using a Bline equation of motion (class |
---|
26 | G4BlineEquation, motion along the field) instead of a Lorentz equation. |
---|
27 | |
---|
28 | During the execution of this method : |
---|
29 | |
---|
30 | -The user defined equations of motion associated to the different |
---|
31 | global and local fields are replaced by instances of G4BlineEquation |
---|
32 | associated to the same fields. |
---|
33 | The G4BlineEquation class defines the differential equation of a |
---|
34 | magnetic field line. |
---|
35 | |
---|
36 | -User defined ChordFinders are replaced by new ChordFinders |
---|
37 | associated to the G4BlineEquation object. |
---|
38 | |
---|
39 | -The user primary generator action, run action, event action and |
---|
40 | stepping action are replaced by instances of the classes |
---|
41 | G4BlinePrimaryGeneratorAction, G4BlineTracer, G4BlineEventAction |
---|
42 | and G4BlineSteppingAction respectively. Other actions are set to |
---|
43 | a NULL pointer. |
---|
44 | |
---|
45 | After the execution of the method, the original user defined actions, equation |
---|
46 | of motions and chord-finders are restored. |
---|
47 | |
---|
48 | In other words, the deafult run-action is temporarly replaced by a |
---|
49 | G4BlineTracer run-action using the same Geometry, physics and magnetic fields |
---|
50 | but with a different equation of motion and user actions. |
---|
51 | |
---|
52 | The GeneratePrimaries() method of the G4BlinePrimaryGeneratorAction class |
---|
53 | call the GeneratePrimaries() method of the user defined PrimaryGeneratorAction |
---|
54 | for defining the start position and start time of tracking. |
---|
55 | Start position for user application and for Bline tracking are therefore |
---|
56 | controlled by the same UI commands. |
---|
57 | The type of particles to be tracked when tracing Blines is always set |
---|
58 | to Charged-Geantino. This allows to switch off the effect of electromagnetic |
---|
59 | and hadronics physics when tracing field lines. |
---|
60 | |
---|
61 | |
---|
62 | The G4BlineEventAction class is responsible to store computed magnetic field |
---|
63 | lines as a vector of Polylines and Polymarkers for later visualisation. |
---|
64 | These vectors can be drawn and reset at any time. |
---|
65 | |
---|
66 | The stepping action does nothing in this implementation but it can be used |
---|
67 | in future versions to limit field line tracing to physical volumes defined |
---|
68 | by the user. For this purpose a G4BlineStackingAction could also be |
---|
69 | implemented. |
---|
70 | |
---|
71 | User Manual: |
---|
72 | |
---|
73 | General description: |
---|
74 | |
---|
75 | The BlineTracer is controlled by the UI commands contained in the directory |
---|
76 | /vis/blineTracer. By calling the command 'computeBline', several magnetic field |
---|
77 | lines passing through user defined start positions are computed. |
---|
78 | Start positions are generated by the user primary generator action. |
---|
79 | By doing so, the definition of start positions is the same for usual particles |
---|
80 | tracking and magnetic field line tracking. |
---|
81 | |
---|
82 | A magnetic field line is computed as a track of a charged geantino that moves |
---|
83 | along the field line. The user can define the maximum length of a tracking step |
---|
84 | (only valid for Bline tracing purposes) by the use of the 'setMaxStepLength' |
---|
85 | command. |
---|
86 | By using small enough maximum step length, smooth magnetic field lines are |
---|
87 | obtained. By using the command 'stockLines' and 'stockPoints' the user |
---|
88 | can decide to store the series of tracking step positions defining |
---|
89 | a magnetic field line as a Polyline object and/or a PolyMarker object |
---|
90 | (circles) respectively. |
---|
91 | These objects are stored in vectors of PolyLines and PolyMarkers. |
---|
92 | By using the command 'draw', these vectors are added to the scene |
---|
93 | of the visualisation manager, provided that a scene handler and |
---|
94 | visualisation driver have been properly created. |
---|
95 | The scene is visualised by invoking the vis command '/vis/show'. |
---|
96 | Polyline objects are visualised as line segments joining the different |
---|
97 | step positions defining a line, while for a Polymarker object markers |
---|
98 | (here circles), are drawn at each step positions. |
---|
99 | By using the 'setColour' the user defines the visualisation colour |
---|
100 | that will be associated to the next computed magnetic field lines. |
---|
101 | By calling 'setPointSize' the user defines the size of visualisation markers |
---|
102 | that will be associated to the next computed magnetic field lines. |
---|
103 | The user can remove the vector of Polymarker and Polyline from the memory |
---|
104 | by invoking 'resetMaterialToBeDrawn'. |
---|
105 | When using small max step size and polymarkers for visualisation purposes, the |
---|
106 | thickness of a smooth magnetic field line is obtained. It is controlled by the |
---|
107 | Marker size parameter ('setPointSize') |
---|
108 | |
---|
109 | Command description: |
---|
110 | /vis/blineTracer/computeBline nb_of_lines : |
---|
111 | Parameters: integer nb_of_lines |
---|
112 | Description: Compute nb_of_lines different magnetic field lines |
---|
113 | |
---|
114 | /vis/blineTracer/setMaxStepLength max_step_length : |
---|
115 | Parameters: double max_step_length |
---|
116 | Description: Set the maximum tracking step length for computing |
---|
117 | magnetic field lines |
---|
118 | |
---|
119 | /vis/blineTracer/setColour red green blue |
---|
120 | Parameters: double red, green, blue |
---|
121 | Description: Define the colour for visualisation of the |
---|
122 | next computed magnetic field lines. The color is |
---|
123 | defined by a RGB code (red,green,blue) with all |
---|
124 | parameters smaller than 1. |
---|
125 | |
---|
126 | /vis/blineTracer/stockLines aBool |
---|
127 | Parameters: boolean aBool |
---|
128 | Desscription: If true the next computed field lines are stored |
---|
129 | as Polylines for further visualisation |
---|
130 | /vis/blineTracer/stockLines aBool |
---|
131 | Parameters: boolean aBool |
---|
132 | Desscription: If true the next computed field lines are stored |
---|
133 | as Polymarkers for further visualisation |
---|
134 | |
---|
135 | /vis/blineTracer/setPointSize point_size |
---|
136 | Parameters: double point_size |
---|
137 | DEscription: set the size of the visualisation markers |
---|
138 | that will be associated with the next computed |
---|
139 | magnetic field lines |
---|
140 | |
---|
141 | /vis/blineTracer/resetMaterialToBeDrawn |
---|
142 | Parameters: none |
---|
143 | Description: The vector of Polyline and Polymarker representing |
---|
144 | magnetic field lines to be visualised are removed |
---|
145 | from memory |
---|
146 | |
---|
147 | /tracking/storeTrajectory 1 : |
---|
148 | If the storeTrajectory parameter is not set no field lines are |
---|
149 | stored. |
---|
150 | |
---|
151 | Current limitations & known problems: |
---|
152 | |
---|
153 | The tool is working properly only for detectors parts where magnetic |
---|
154 | field are defined. It is planned in the future to stop the tracking of |
---|
155 | field lines in regions where no fields are existing. |
---|