@@ -464,9 +464,12 @@ void GateRootSingleBuffer::Clear()
464464 septalNb = 0 ;
465465
466466 // initialize spatial resolution stddev fields
467- spatialRes2DStdDevX = 0 .;
468- spatialRes2DStdDevY = 0 .;
469- spatialRes2DStdDevZ = 0 .;
467+ if (GetSpatialRes2DStdDevFlag ())
468+ {
469+ spatialRes2DStdDevX = 0 .;
470+ spatialRes2DStdDevY = 0 .;
471+ spatialRes2DStdDevZ = 0 .;
472+ }
470473 for ( d = 0 ; d < ROOT_VOLUMEIDSIZE ; ++d )
471474 volumeID[d] = -1 ;
472475
@@ -494,10 +497,12 @@ void GateRootSingleBuffer::Clear()
494497 nCrystalConv=0 ;
495498 nCrystalCompt=0 ;
496499 nCrystalRayl=0 ;
497-
498- spatialRes2DStdDevX = 0 .;
499- spatialRes2DStdDevY = 0 .;
500- spatialRes2DStdDevZ = 0 .;
500+ if (GetSpatialRes2DStdDevFlag ())
501+ {
502+ spatialRes2DStdDevX = 0 .;
503+ spatialRes2DStdDevY = 0 .;
504+ spatialRes2DStdDevZ = 0 .;
505+ }
501506
502507 }
503508
@@ -559,12 +564,13 @@ void GateRootSingleBuffer::Fill(GateDigi* aDigi)
559564 nCrystalCompt =aDigi->GetNCrystalCompton ();
560565
561566 }
562-
563- // spatial resolution stddevs stored by digitizer (in internal units), convert to mm for output
564- spatialRes2DStdDevX = static_cast <Float_t>(aDigi->GetSpatialRes2DStdDevX ()/mm);
565- spatialRes2DStdDevY = static_cast <Float_t>(aDigi->GetSpatialRes2DStdDevY ()/mm);
566- spatialRes2DStdDevZ = static_cast <Float_t>(aDigi->GetSpatialRes2DStdDevZ ()/mm);
567-
567+ if (GetSpatialRes2DStdDevFlag ())
568+ {
569+ // spatial resolution stddevs stored by digitizer (in internal units), convert to mm for output
570+ spatialRes2DStdDevX = static_cast <Float_t>(aDigi->GetSpatialRes2DStdDevX ()/mm);
571+ spatialRes2DStdDevY = static_cast <Float_t>(aDigi->GetSpatialRes2DStdDevY ()/mm);
572+ spatialRes2DStdDevZ = static_cast <Float_t>(aDigi->GetSpatialRes2DStdDevZ ()/mm);
573+ }
568574
569575 aDigi->GetVolumeID ().StoreDaughterIDs (volumeID,ROOT_VOLUMEIDSIZE);
570576}
@@ -643,12 +649,13 @@ void GateSingleTree::Init(GateRootSingleBuffer& buffer)
643649 Branch (" energyIni" , &buffer.energyIni ," energyIni/F" );
644650
645651 }
646-
647- // spatial resolution stddevs (2D distribution) - in mm
648- Branch (" spatialRes2DStdDevX" , &buffer.spatialRes2DStdDevX , " spatialRes2DStdDevX/F" );
649- Branch (" spatialRes2DStdDevY" , &buffer.spatialRes2DStdDevY , " spatialRes2DStdDevY/F" );
650- Branch (" spatialRes2DStdDevZ" , &buffer.spatialRes2DStdDevZ , " spatialRes2DStdDevZ/F" );
651-
652+ if (buffer.GetSpatialRes2DStdDevFlag ())
653+ {
654+ // spatial resolution stddevs (2D distribution) - in mm
655+ Branch (" spatialRes2DStdDevX" , &buffer.spatialRes2DStdDevX , " spatialRes2DStdDevX/F" );
656+ Branch (" spatialRes2DStdDevY" , &buffer.spatialRes2DStdDevY , " spatialRes2DStdDevY/F" );
657+ Branch (" spatialRes2DStdDevZ" , &buffer.spatialRes2DStdDevZ , " spatialRes2DStdDevZ/F" );
658+ }
652659 // Initialized by default.TO DO: Mask option should be included or a flag
653660 Branch (" volumeID" , (void *)buffer.volumeID ," volumeID[10]/I" );
654661}
@@ -701,11 +708,14 @@ void GateRootCoincBuffer::Clear()
701708 RayleighCrystal2 = -1 ;
702709 strcpy (comptonVolumeName2," " );
703710 strcpy (RayleighVolumeName2," " );
704-
705- // initialize spatial resolution stddev fields for coincidences
706- spatialRes2DStdDevX = 0 .;
707- spatialRes2DStdDevY = 0 .;
708- spatialRes2DStdDevZ = 0 .;
711+
712+ if (GetSpatialRes2DStdDevFlag ())
713+ {
714+ // initialize spatial resolution stddev fields for coincidences
715+ spatialRes2DStdDevX = 0 .;
716+ spatialRes2DStdDevY = 0 .;
717+ spatialRes2DStdDevZ = 0 .;
718+ }
709719}
710720
711721
@@ -760,6 +770,8 @@ void GateRootCoincBuffer::Fill(GateCoincidenceDigi* aDigi)
760770 strcpy (comptonVolumeName2,((aDigi->GetDigi (1 ))->GetComptonVolumeName ()).c_str ());
761771 strcpy (RayleighVolumeName2,((aDigi->GetDigi (1 ))->GetRayleighVolumeName ()).c_str ());
762772
773+
774+ if (GetSpatialRes2DStdDevFlag ())
763775 // spatial resolution stddevs: average the two constituent digis and convert to mm for output
764776 {
765777 G4double sX1 = (aDigi->GetDigi (0 ))->GetSpatialRes2DStdDevX ();
@@ -902,12 +914,14 @@ void GateCoincTree::Init(GateRootCoincBuffer& buffer)
902914 Branch (" sinogramTheta" , &buffer.sinogramTheta ," sinogramTheta/F" );
903915 if ( GateCoincidenceDigi::GetCoincidenceASCIIMask (19 ) )
904916 Branch (" sinogramS" , &buffer.sinogramS ," sinogramS/F" );
905-
906- // spatial resolution stddevs (averaged per coincidence) - in mm
907- Branch (" spatialRes2DStdDevX" , &buffer.spatialRes2DStdDevX , " spatialRes2DStdDevX/F" );
908- Branch (" spatialRes2DStdDevY" , &buffer.spatialRes2DStdDevY , " spatialRes2DStdDevY/F" );
909- Branch (" spatialRes2DStdDevZ" , &buffer.spatialRes2DStdDevZ , " spatialRes2DStdDevZ/F" );
910-
917+
918+ if (buffer.GetSpatialRes2DStdDevFlag ())
919+ {
920+ // spatial resolution stddevs (averaged per coincidence) - in mm
921+ Branch (" spatialRes2DStdDevX" , &buffer.spatialRes2DStdDevX , " spatialRes2DStdDevX/F" );
922+ Branch (" spatialRes2DStdDevY" , &buffer.spatialRes2DStdDevY , " spatialRes2DStdDevY/F" );
923+ Branch (" spatialRes2DStdDevZ" , &buffer.spatialRes2DStdDevZ , " spatialRes2DStdDevZ/F" );
924+ }
911925 if ( GateCoincidenceDigi::GetCoincidenceASCIIMask (20 ) )
912926 Branch (" comptVolName1" , (void *)buffer.comptonVolumeName1 ," comptVolName1/C" );
913927 if ( GateCoincidenceDigi::GetCoincidenceASCIIMask (20 ) )
0 commit comments