Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Virtual xtal interface. #776

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
28 changes: 28 additions & 0 deletions src/IO/InterfileHeader.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -600,6 +600,12 @@ InterfilePDFSHeader::InterfilePDFSHeader()
num_transaxial_crystals_per_block = 0;
add_key("number of crystals_per_block in transaxial direction",
&num_transaxial_crystals_per_block);
num_virtual_axial_crystals_per_block = 0;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems we'd need some bucket stuff here as well

add_key("number of virtual crystals_per_block in axial direction",
&num_virtual_axial_crystals_per_block);
num_virtual_transaxial_crystals_per_block = 0;
add_key("number of virtual crystals_per_block in transaxial direction",
&num_virtual_transaxial_crystals_per_block);
num_axial_crystals_per_singles_unit = -1;
add_key("number of crystals_per_singles_unit in axial direction",
&num_axial_crystals_per_singles_unit);
Expand Down Expand Up @@ -1095,6 +1101,10 @@ bool InterfilePDFSHeader::post_processing()
num_axial_crystals_per_block = guessed_scanner_ptr->get_num_axial_crystals_per_block();
if (num_transaxial_crystals_per_block<=0)
num_transaxial_crystals_per_block = guessed_scanner_ptr->get_num_transaxial_crystals_per_block();
if (num_virtual_axial_crystals_per_block<=0)
num_virtual_axial_crystals_per_block = guessed_scanner_ptr->get_num_virtual_axial_crystals_per_block();
if (num_virtual_transaxial_crystals_per_block<=0)
num_virtual_transaxial_crystals_per_block = guessed_scanner_ptr->get_num_virtual_transaxial_crystals_per_block();
if (num_axial_crystals_per_singles_unit < 0)
num_axial_crystals_per_singles_unit =
guessed_scanner_ptr->get_num_axial_crystals_per_singles_unit();
Expand Down Expand Up @@ -1192,6 +1202,22 @@ bool InterfilePDFSHeader::post_processing()
num_transaxial_crystals_per_block, guessed_scanner_ptr->get_num_transaxial_crystals_per_block());
mismatch_between_header_and_guess = true;
}
if (
guessed_scanner_ptr->get_num_virtual_axial_crystals_per_block()>=0 &&
num_virtual_axial_crystals_per_block!= guessed_scanner_ptr->get_num_virtual_axial_crystals_per_block())
{
warning("Interfile warning: num_virtual_axial_crystals_per_block (%d) is expected to be %d.\n",
num_virtual_axial_crystals_per_block, guessed_scanner_ptr->get_num_virtual_axial_crystals_per_block());
mismatch_between_header_and_guess = true;
}
if (
guessed_scanner_ptr->get_num_virtual_transaxial_crystals_per_block()>0 &&
num_virtual_transaxial_crystals_per_block!= guessed_scanner_ptr->get_num_virtual_transaxial_crystals_per_block())
{
warning("Interfile warning: num_transaxial_crystals_per_block (%d) is expected to be %d.\n",
num_transaxial_crystals_per_block, guessed_scanner_ptr->get_num_transaxial_crystals_per_block());
mismatch_between_header_and_guess = true;
}
if ( guessed_scanner_ptr->get_num_axial_crystals_per_singles_unit() > 0 &&
num_axial_crystals_per_singles_unit !=
guessed_scanner_ptr->get_num_axial_crystals_per_singles_unit() )
Expand Down Expand Up @@ -1302,6 +1328,8 @@ bool InterfilePDFSHeader::post_processing()
num_transaxial_blocks_per_bucket,
num_axial_crystals_per_block,
num_transaxial_crystals_per_block,
num_virtual_axial_crystals_per_block,
num_virtual_transaxial_crystals_per_block,
num_axial_crystals_per_singles_unit,
num_transaxial_crystals_per_singles_unit,
num_detector_layers,
Expand Down
4 changes: 4 additions & 0 deletions src/IO/InterfilePDFSHeaderSPECT.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,9 @@ bool InterfilePDFSHeaderSPECT::post_processing()
const int num_axial_blocks_per_bucket = -1;
const int num_transaxial_blocks_per_bucket = -1;
const int num_axial_crystals_per_block = -1;
const int num_virtual_axial_crystals_per_block=0;
const int num_transaxial_crystals_per_block = -1;
const int num_virtual_transaxial_crystals_per_block = 0;
const int num_axial_crystals_per_singles_unit = -1;
const int num_transaxial_crystals_per_singles_unit = -1;
const int num_detector_layers = 1;
Expand All @@ -181,6 +183,8 @@ bool InterfilePDFSHeaderSPECT::post_processing()
num_transaxial_blocks_per_bucket,
num_axial_crystals_per_block,
num_transaxial_crystals_per_block,
num_virtual_axial_crystals_per_block,
num_virtual_transaxial_crystals_per_block,
num_axial_crystals_per_singles_unit,
num_transaxial_crystals_per_singles_unit,
num_detector_layers));
Expand Down
Loading