[Gate-users] Back to Back source

Emmanuel BRARD emmanuel.brard at iphc.cnrs.fr
Sat Mar 5 00:11:45 CET 2011

Dear Gate users,

This issue might be related with our installation of Geant. I coudn't reproduce the malfunctioning with Gate 6 and G4.9.2 but I can with G4.9.3_b01. I added a subtraction test because I emit my back to back gamma within a disc (fixed z and 0 actually) I hope there is floating point issue here. However I have seen that Gate 6.1 is now released and support the last version of Geant4 so I will probably use this version with the "official" correction of the GateBacktoBack.cc source file. If everything works smoothing with that one there is no need for me to investigating any further though. 

I am currently compiling 6.1 on OSX so I can report issue (if any) if this is of any help to someone.

Root 5.28 /opt/root 
Geant 4.9.4.p01 /opt/Geant/
XCode Version 3.2.3 

MacOSX 10.6.6
Mach-O 64-bit executable x86_64



Le 22 févr. 2011 à 15:41, Seb a écrit :

>> I wrote all interaction points of the gammas (PDGEncoding == 22 and photonID == 1 || 2 )  to a file and then I use a CERN Root script I wrote for reverse ray tracing according to eventID. I simply see the emission point  (from the singles file) and the interaction points within my detector. Considering that I use no phantom and I am running in vaccum (with a value of 0 declared in the file which is then set to 1e -25 g/cm3 by Geant), the two points (source - first in det) should be a straight line. Well I also have a program which tells me when (eventID) the LOR would be too much outside the image I am imaging. 
>> This is pretty (when the stats. Is high enough) reliable even if the best way would be to write both the momentum projections of the gamma to the Geant4 terminal. Yet again I cannot do it here at the lab because of compilation issues, I could do it this week at home though.  Can you think of a faster way to do it ? (My tracking script was already working this is why I used it even if this is not its purpose).   
> Ok, to validate the method regarding the gamma colinearity  production, you need to compare the gamma momentum and anything else.
> A quick and dirty method to do that without any dedicated output :
> In the method  void GateBackToBack::GenerateVertex
> if( accolinearityFlag == true )
>   {
>   ......blablabla.....
>   }
> else
>   {   
>     G4ThreeVector gammaMom = particle->GetMomentum();
>     particle1->SetMomentum( -gammaMom.x(),-gammaMom.y(),-gammaMom.z() );
>     G4ThreeVector gammaMom1 = particle1->GetMomentum();
>         if(gammaMom1.x()/gammaMom.x() != -1 ||gammaMom1.y()/gammaMom.y() != -1 || gammaMom1.z()/gammaMom.z() != -1){
>     G4cout<<"gammaMom1.x() / gammaMom.x() = "<<gammaMom1.x()/gammaMom.x() <<G4endl;
>     G4cout<<"gammaMom1.y() / gammaMom.y() = "<<gammaMom1.y()/gammaMom.y() <<G4endl;
>     G4cout<<"gammaMom1.z() / gammaMom.z() = "<<gammaMom1.z()/gammaMom.z() <<G4endl;
>     }
>   }
> Cheers
> Seb

Emmanuel BRARD
Medical Physics - PhD Student
IPHC IMABIO Bat 25 - 23 rue du Loess
67037 Strasbourg Cedex 2
(0033/0) 3 88 10 66 60

More information about the Gate-users mailing list