Suppose a new volume, or set of volumes have been recently defined. There are multiples ways to check that "it is really there". The Geant4 geometry package accepted it, with -presumably the right material, but, will Geant4 tracks will go through it, "for real"? Visualization, documented in Visualization, is one way. It often gives a blurry (finite screen resolution) image of deeply buried volumes. There is an other: throwing geantinos and recording their crossings into the volume of interest, such that a ``tomography" of this volume can be rendered, excluding the other component. These 3D coordinates are expressed in the Geant4 global coordinate system, allowing an (almost) direct comparison with some blue print.
A step by step guide on how to use Geantinos and study the output.¶
In this not-so fictional example, where we'd like to start placing muon detector in the Muon Alcove, located downstream of the hadron absorber. We know the Geant4 volume name of this alcove, we think some new volumes have been installed, but we'll check. We start by having a look at the macro .../macros/test3.mac, in the G4lbne source directory. This test macro keeps changing it, but it's essence stays the same. This is the macros we use to probing the geometry. What you need to insert in your own macro is:
/LBNE/primary/geantinoOpeningAngle 0.006 radian
/LBNE/primary/geantinoOpeningAngleMin 0.00000005 radian
/LBNE/primary/geantinoZOrigin -1000. mm
/LBNE/primary/geantinoSigmaZOrigin 0.0015 mm
To shoot geantinos, you got to use them. Hence the first card. For our problem, since we are at then of the 203 m. (+~15 m for horns/target), an opening angle of 6 mm rad should illuminate whatever is down there, in the muon alcove... We shoot from 1 meter upstream of the beginning of Horn1. Last card is a place holder, the accurate Z location does not matter much for our problem.
Next, we want to control the Geantino output file. The LBNESteppingAction class has a (poorly) documented feature: it allows us to record the crossing coordinates (y,y,z) of the Geantino with a pre-specified logical volume name. To turn this on, declare:
That first card states that the "Prop"gation, "CO"ntinuous mode will be selected. The next two letter are strictly mnmonics, place what ever suits you. This will produce and a table of x,y,z, x-out, y-out, z-out coordinates will be written out Plain ASCII. (I don't like ROOT very much, fo such small file set, anyway.. )
Next, we select the name of the volume that Geantinos tracks will encounter, moving forwards. We also specify the Geant4 volume from which we'll be moving out:
These two names are just examples, don't count of them being part of the current G4LBNE. Note that only the most significant (in term of lexical uniqueness) part of the volume names is needed, a partial match will work. For details, please read the code in LBNESteppingAction::CheckVolumeOverlap.
This method is equivalent to make ``Michel" volume sensitive. Except that no ``G4Hits" are created, and the User code associated with these transient hits needs not be written, greatly simplifying the development. Note also that the step by step coordinates for the first three Geantinos are printed on the log file.