[Gate-users] back-to-back gamma source

Eunsin Lee eunsin at mail.med.upenn.edu
Wed Aug 4 22:35:13 CEST 2010


Hi Seb,

Thank you for your patch! It seems to work..

Eunsin
******************************************************
Eunsin Lee
Postdoctoral Research Associate
PET Center, Department of Radiology
University of Pennsylvania School of Medicine
eunsin at mail.med.upenn.edu
(215) 349-5751 (office)
(979) 574-7235 (cell)
******************************************************




On Aug 3, 2010, at 7:58 AM, Seb wrote:

> Hi Eunsin,
> Please use this new class in the folder /source/physics/src to correct this bug.
> We will provide an official patch ASAP.
> Regards
> Seb JAN
> 
>> Dear Users,
>> 
>> I simulated a cylindrical PET system using point source (back-to-back gamma) at the center of the detector for a simple study..(with cylindrical phantom filled with just air).
>> If my understanding is correct, coincidence events should have back-to-back gamma's, which tell us LOR in r-z plane should be simply a line passing through the center (0,0). In other words Z1+Z2 should be very close to zero. Below shows actual z position detected for two gammas in each coincidence events in my simulation output. Looks like something else is going on...
>> Can anybody tell me what's missing?
>> 
>> 	    Z1                    Z2
>> 	-71.3593	46.7426
>> 	-71.5756	-50.5808
>> 	-71.5233	69.8813
>> 	-71.004		35.5772
>> 	-71.9038	15.7994
>> 	-73.7647	-4.99394
>> 	-71.5314	-11.8862
>> 	-70.284		-12.6473
>> 	-73.0036	63.4071	0	
>> 	-71.3191	61.7319	0	
>> 	-71.9782	-12.7522
>> 	-72.9756	-68.4205
>> 	-73.9974	39.802
>> 	-73.1717	2.25218
>> 	-71.4347	-44.9677
>> 	-71.7795	-73.2273
>> 	-70.6986	-19.3314
>> 	-73.6817	-7.85506
>> 	-73.5097	-1.3274
>> 	-70.4753	54.6905
>> 
>> Thanks,
>> Eunsin
>> _______________________________________________
>> Gate-users mailing list
>> Gate-users at lists.opengatecollaboration.org
>> http://lists.opengatecollaboration.org/mailman/listinfo/gate-users
>>  
> 
> /*----------------------
>  GATE version name: gate_v6
> 
>  Copyright (C): OpenGATE Collaboration
> 
>  This software is distributed under the terms
>  of the GNU Lesser General  Public Licence (LGPL)
>  See GATE/LICENSE.txt for further details
>  ----------------------*/
> 
> #include "GateBackToBack.hh"
> 
> //-------------------------------------------------------------------------------------------------
> GateBackToBack::GateBackToBack( GateVSource* source )
> {
>  m_source = source;
> }
> //-------------------------------------------------------------------------------------------------
> 
> //-------------------------------------------------------------------------------------------------
> GateBackToBack::~GateBackToBack()
> {
>  ;
> }
> //-------------------------------------------------------------------------------------------------
> 
> //-------------------------------------------------------------------------------------------------
> void GateBackToBack::Initialize()
> {
>  m_source->SetNumberOfParticles( 2 );
>  m_source->SetParticleTime( m_source->GetTime() );
> }
> //-------------------------------------------------------------------------------------------------
> 
> //-------------------------------------------------------------------------------------------------
> void GateBackToBack::GenerateVertex( G4Event* aEvent, G4bool accolinearityFlag )
> {
>  m_source->GeneratePrimaryVertex( aEvent );
>  G4PrimaryParticle* particle = aEvent->GetPrimaryVertex( 0 )->GetPrimary( 0 );
>  G4PrimaryParticle* particle1 = aEvent->GetPrimaryVertex( 0 )->GetPrimary( 1 );
> 
>  if( accolinearityFlag == true )
>    {
> 
>      G4double dev = CLHEP::RandGauss::shoot( 0.,
>                                              m_source->GetAccoValue() / 3.35 );
>      G4double Phi1 = ( twopi * G4UniformRand() )/2. ;
>      G4ThreeVector DirectionPhoton( sin( dev ) * cos( Phi1 ),
>                                     sin( dev ) * sin( Phi1 ), cos( dev ) );
>      DirectionPhoton.rotateUz( particle->GetMomentum() );
>      particle1->SetMomentum( -DirectionPhoton.x(),
>                             -DirectionPhoton.y(), -DirectionPhoton.z() );
>    }
>  else
>    {    
> 
> 
>      G4ThreeVector gammaMom = particle->GetMomentum();
>      particle1->SetMomentum( -gammaMom.x(),-gammaMom.y(),-gammaMom.z() );
> 
> 
>    }
> }
> //-------------------------------------------------------------------------------------------------



More information about the Gate-users mailing list