GRIFFINCollaboration / detectorSimulations

GEANT4 simulation code for the GRIFFIN array and it's suite of ancillary detection systems.
7 stars 13 forks source link

Detector and Suppressor Assemblies #41

Closed tballast closed 10 years ago

tballast commented 11 years ago

This is an issue regarding the way the detectors and suppressors are currently assembled in the simulations. The current assemblies are:

assembly -> This holds everything that isn't a detector or suppressor (LN2 tank, electrodes, cold finger, etc.)

leftSuppressorCasingAssembly -> This holds four of the side suppressors. Each of the side suppressors comes in pairs. A right and a left. See fig 1. This holds the left side of each pair.

leftsuppressors Fig 1 - Left Side Suppressors.

rightSuppressorCasingAssembly -> This holds the right side of each side suppressor pair.

leftSuppressorExtensionAssembly -> The extension suppressors come in the same pairs that the side suppressors do. This holds the left extension suppressors

rightSuppressorExtensionAssembly -> This holds the right side of each extension suppressor pair.

suppressorBackAssembly -> this holds the four back suppressors.

extensionSuppressorShellAssembly -> This holds the shells for all of the extension suppressors.

backAndSideSuppressorShellAssembly -> This holds the shells for the back and side suppressors.

germaniumAssemblyCry[0-3] -> I believe that each element of this array holds one of the HPGe crystals.

The issue that I see with this configuration is the separation between the suppressors and the shells. The suppressor shells are never going to be placed on their own, and the suppressors will always have the shells on. So, they should all be inside one assembly. There may be a reason to group the left and right suppressors as it is currently done, but I think that the code would be a lot neater if we could group both the extension suppressors and the extension suppressor shells into one assembly, as well as the side/back suppressors and their shells. That way we do not need to place each one separately as we are currently doing. If anyone thinks that there is an even better way of doing it please bring it up.

evan012345 commented 11 years ago

@tballast Sounds reasonable. Just double check that the detector and crystal numbers (det and cry) in the SteppingAction are still correctly assigned after adding the shells. I would add the shells AFTER the sensitive material, just in case there is a volume name indexing thing.

The way we get the det and cry numbers is from the volume name, which looks like "av_1_impr_6_sodium_iodide_crystal_block_log_pv_0" the av=1 means assembly volume 1, and impr=6 means impression 6. In this example all the sodium_iodide detectors are identical, so we can use the impr number as the detector number. Easy. It's a little more complicated for GRIFFIN. For each detector we have 11 different assembly volumes. If av is between 1 and 11, this is det 1, if between 12 and 22, this is det 2, etc. Since each suppressor is identical for the four crystals, the impression number gives us the cry number.

This is not how we get the det and cry numbers for the Ge crystals. Since now, each crystal is not the same (different dead layers). germaniumAssemblyCry is unique for getting the det and cry numbers. Don't add anything to these assemblies.

This is the way it is currently done, doesn't mean this is the way it has to be done. Just make sure it assigns the det and cry numbers appropriately.