[807] | 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. |
---|