Requirements
The enviroment must be set up according to the guide
OpenCMT Image Builder: building the code
The source code for the Image Builder is stored in Baltig
Since the source code of the Image Builder can be downloaded only by the authorized developers, credentials for Baltig are necessary.
The simplest way is using RSA keys, the public key must be uploaded into Baltig and the private key must be saved into ${HOME}/.ssh/id_rsa
Once git client has been correctly configured the commands are:
git clone git@baltig.infn.it:muontomography/IB.git cd IB
These are the steps required for building the Image Builder and install it in the system:
mkdir build && cd build
cmake3 -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo -DULIB_USE_QT5=OFF -DPACKAGE_NAME=mutom \
-DPACKAGE_INSTALL_LIB_DIR=/usr/lib64 -DPACKAGE_INSTALL_INC_DIR=/usr/include/mutom \
-DPACKAGE_INSTALL_CMAKE_DIR=/usr/lib64/cmake/mutom \
-DBOOST_INCLUDEDIR=/usr/include/boost169 -DBOOST_LIBRARYDIR=/usr/lib64/boost169 ..
make
sudo make install
The libraries and header files are installed in the standard locations for the CentOS 7 system, so there's no need to further configurations.
OpenCMT Image Builder: testing the application
If the environment has been correctly set up, several data sets of tracks are available via NFS in /mnt/muotom-data/data/castor/geant.
A reconstruction test can be run with these commands:
mkdir Tests && cd Tests
LOR=18.3
AZI=0.865
VOX=1.83
HOUR=3
ANG=360
CASTOR_TYPE=19
FILEIN=/mnt/muotom-data/data/castor/geant/G4vmc_genCyl/muCastorMC_V19_missBars_2019_36hours.root
FILEOUT=CastorV19_vox${VOX}LoR${AZI}radx${LOR}cm_det_open${ANG}_${HOUR}h
castor ${FILEIN} ${FILEOUT} $(( HOUR * 60 )) 0 ${VOX} \
--execute muCT \
--precision 0.00001 \
--debug false \
--iterations="1 1 40" \
--algorithm.type 0 \
--algorithm.spectrum 1 \
--image.size="324 490 324" \
--image.position="-162 0 -162" \
--tracks.collection_size=$(( HOUR * 5000000 )) \
--tracks.stopped=true \
--tracks.passed=true \
--tracks.dump_root=false \
--tracks.select_y=true \
--tracks.y_in_max=1000 \
--tracks.y_out_min=0 \
--castor.type=${CASTOR_TYPE} \
--castor.init_mask=true \
--castor.update_mask=false \
--castor.iron=0.0114 \
--detector.expError=0 \
--detector.resolution="0.1 0.1 0.1" \
--detector.angAzimOpening=${ANG} \
--detector.angAzimOffset=0 \
--detector.angAzimNFolds=1 \
--detector.angAzimSym=true \
--lors.dump_root=false \
--lors.flagWeight=3 \
--lors.spacing="${AZI} ${LOR} ${AZI} ${LOR}"
Each interaction produces a VTK file, the last one is the required output.
The output of the recostruction must be processed with a special filter (AB trimmer):
IB_abtrim CastorV19_vox1.83LoR0.865radx18.3cm_det_open360_3h_img_40.vtk \
--size="5 5 5" --abtrim="0 5" --scale=1.83
The output can be rendered and manipulated with the tool Paraview, available on CentOS 7.
Working with files via NFS sometimes can be slow and error prone, expecially if the size of the files are huge.
A simple solution could be copying the file in a volume attached to the virtual machine. For further details refer to the Cloud Veneto guide