<div dir="ltr">HI David,<div><br></div><div>Thank you very much for your swift response to my question. It is very helpful. I will read the document carefully then and learn how to use the information stored in root files. I am also grateful to your help with my earlier question on the subscription issue. </div><div><br></div><div>Best,</div><div>Howard</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 7, 2022 at 3:20 AM David Leibold <<a href="mailto:D.Leibold@tudelft.nl">D.Leibold@tudelft.nl</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">



<div style="overflow-wrap: break-word;">
Dear Howard,
<div><br>
</div>
<div>you are using the imageCT output, and according to the <a href="https://opengate.readthedocs.io/en/latest/data_output_management.html?highlight=imageCT#image-ct-output" target="_blank">docs</a>:</div>
<div><br>
</div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<div>"The <em>imageCT</em> output is a binary matrix of float numbers that stores the number of Singles per pixel and is produced for each time slice"</div>
</blockquote>
<div><br>
</div>
<div>Please note that this does reflect what a realistic detector would measure. A common CBCT detector outputs the deposited energy per pixel. To obtain this, you would need to access the root output and convert it to energy integrated projections
 yourself.</div>
<div><br>
</div>
<div>Kind regards,</div>
<div>David Leibold</div>
<div><br>
</div>
<div><br>
<div><br>
<blockquote type="cite">
<div>On 7 Jul2022, at 03:40, Howard <<a href="mailto:lomahu@gmail.com" target="_blank">lomahu@gmail.com</a>> wrote:</div>
<br>
<div>
<div dir="ltr">
<div>Hi GATE users,</div>
<div><br>
</div>
<div>I have been using GATE to simulate CBCT. One question I have been thinking to ask is: what does each detector pixel (set as the crystal sensitive detector) record, photon energy or photo number? 
<br>
</div>
<div><br>
</div>
<div>Let's say the output of each run (one projection angle) is set as:</div>
<div><br>
</div>
<div># Specific CT Image output<br>
/gate/output/imageCT/enable<br>
/gate/output/imageCT/setFileName output_dir/proj<br>
</div>
<div><br>
</div>
<div>What if I use ROOT output format?<br>
</div>
<div><br>
</div>
<div># Generic ROOT output<br>
#/gate/output/root/enable<br>
#/gate/output/root/setFileName output_dir/results<br>
</div>
<div><br>
</div>
<div>My detector macro is set as follows for your reference.<br>
</div>
<div><br>
</div>
<div>####  General informations about the scanner<br>
# CT scanner for small animal imaging<br>
# 150 x 200 pixels in one module<br>
# Size of pixels : 0.4 x 0.3 x 3.0 mm3<br>
# Pixels are made up of silicon (no dead space between pixels)<br>
# This scanner is designed to be fixed (the phantom will rotate instead).<br>
# Let's position it perpendicular to the Z axis at a radial distance of 80 mm.<br>
<br>
<br>
## CTscanner system (this is the encompassing volume)<br>
# This first volume containing the scanner should have the same hard-coded name<br>
# as the one predefined in GATE (here CTscanner)<br>
# Create it as a box that can contain all pixels<br>
# Set it 80 mm away from the center of the world along the Z axis<br>
# Set material Air, and visualize it as a white wire frame<br>
/gate/world/daughters/name CTscanner<br>
/gate/world/daughters/insert box<br>
/gate/CTscanner/geometry/setXLength  60. mm<br>
/gate/CTscanner/geometry/setYLength  60. mm<br>
/gate/CTscanner/geometry/setZLength   3. mm<br>
<br>
/gate/CTscanner/placement/setTranslation 0. 0. 80. mm # original position<br>
<br>
#/gate/CTscanner/placement/setTranslation 0. -80. 0. mm # for parallel computing, 6/10/2022<br>
#/gate/CTscanner/placement/setRotationAxis 1 0 0 # for parallel computing, 6/10/2022<br>
#/gate/CTscanner/placement/setRotationAngle -90. deg # for parallel computing, 6/10/2022<br>
<br>
<br>
/gate/CTscanner/setMaterial Air<br>
/gate/CTscanner/vis/forceWireframe<br>
/gate/CTscanner/vis/setColor white<br>
<br>
## The first component of the CTscanner is the module<br>
# CTSCANNER #   ---->   #  MODULE  #<br>
# Here we will use only one module, so just create it identical to the encompassing volume<br>
/gate/CTscanner/daughters/name module<br>
/gate/CTscanner/daughters/insert box<br>
/gate/module/geometry/setXLength  60. mm<br>
/gate/module/geometry/setYLength  60. mm</div>
<div>/gate/module/geometry/setZLength   3. mm<br>
/gate/module/setMaterial Air<br>
/gate/module/vis/forceWireframe<br>
/gate/module/vis/setColor white<br>
<br>
## The second component of the CTscanner is the cluster (located inside the module)<br>
# There are 3 possible clusters: cluster_0, cluster_1 and cluster_2<br>
#  MODULE  #   ---->   # CLUSTER_0 #<br>
# Here we will use only one type of clusters, so again just create it identical to the mother volume<br>
/gate/module/daughters/name cluster<br>
/gate/module/daughters/insert box<br>
/gate/cluster/geometry/setXLength  60. mm<br>
/gate/cluster/geometry/setYLength  60. mm<br>
/gate/cluster/geometry/setZLength   3. mm<br>
/gate/cluster/setMaterial Air<br>
/gate/cluster/vis/forceWireframe<br>
/gate/cluster/vis/setColor white<br>
<br>
## The third component of the CTscanner is the pixel (located inside the cluster)<br>
# There are 3 possible pixels, one by cluster: pixel_0 (in cluster_0), pixel_1 (in cluster_1) and pixel_2 (in cluster_2)<br>
#  MODULE  #   ---->     # CLUSTER_0 #   ---->   # PIXEL_0 #<br>
# Here we will use only one type of pixels<br>
# The pixel size is 0.4 x 0.3 x 3 mm3<br>
# Visualize it as a solid object, color of your choice<br>
/gate/cluster/daughters/name pixel<br>
/gate/cluster/daughters/insert box<br>
/gate/pixel/geometry/setXLength 0.4  mm<br>
/gate/pixel/geometry/setYLength 0.3 mm<br>
/gate/pixel/geometry/setZLength 3. mm<br>
/gate/pixel/setMaterial Silicon<br>
/gate/pixel/vis/forceSolid<br>
/gate/pixel/vis/setColor red<br>
<br>
# Now we can repeat the pixel inside the cluster<br>
# We want 150 x 200 pixels<br>
# Note: the repeated objects will be automatically centered on the original position of the single volume<br>
# Set the correct number of repeated volumes and the repeat vector<br>
/gate/pixel/repeaters/insert cubicArray<br>
/gate/pixel/cubicArray/setRepeatNumberX 150<br>
/gate/pixel/cubicArray/setRepeatNumberY 200<br>
/gate/pixel/cubicArray/setRepeatNumberZ   1<br>
/gate/pixel/cubicArray/setRepeatVector 0.4 0.3 0. mm</div>
<div>## Attach to hard-coded CTscanner system (here only cluster_0 and pixel_0 are used)<br>
# These commands allow GATE to make a link between the arbitrary volumes you defined and the predefined components of<br>
# the system in use (here the CTscanner). It is used to make a link with the output modules associated to the system<br>
<br>
/gate/systems/CTscanner/module/attach module<br>
/gate/systems/CTscanner/cluster_0/attach cluster<br>
/gate/systems/CTscanner/pixel_0/attach pixel<br>
<br>
## Attach the pixel as the crystal sensitive detector<br>
# This command is used to specify which arbitrary volume is used as the sensitive volume.<br>
# All interactions occuring in this volume can be recorded and analyzed.<br>
/gate/pixel/attachCrystalSD<br>
</div>
<div><br>
</div>
<div>Any feedback is greatly appreciated!</div>
<div>Howard<br>
</div>
</div>
_______________________________________________<br>
Gate-users mailing list<br>
<a href="mailto:Gate-users@lists.opengatecollaboration.org" target="_blank">Gate-users@lists.opengatecollaboration.org</a><br>
<a href="https://urldefense.com/v3/__http://lists.opengatecollaboration.org/mailman/listinfo/gate-users__;!!PAKc-5URQlI!67bPBpIIzr875HeAUMeSrs7828w1G-bZ8m6naO_kMl-WbQbJhr7FgdgGTV-IPNGqrVtm2Q42MVT9EHaLrg$" target="_blank">https://urldefense.com/v3/__http://lists.opengatecollaboration.org/mailman/listinfo/gate-users__;!!PAKc-5URQlI!67bPBpIIzr875HeAUMeSrs7828w1G-bZ8m6naO_kMl-WbQbJhr7FgdgGTV-IPNGqrVtm2Q42MVT9EHaLrg$</a>
</div>
</blockquote>
</div>
<br>
</div>
</div>

</blockquote></div>