Message: Detection of optical photon Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Detection of optical photon 

Forum: Processes Involving Optical Photons
Date: 01 Jul, 2013
From: Dat Vu <Dat Vu>

Hi everybody, I'm trying to simulate some optical process. So I have one tube(its name is absorber, its logicalvolume is absorberLV, its phys vol is absorberPhys). At the end of the tube, I put 2 boxes ( they are SDBOX3 and SDBOX4). I want to count the number of photon reaching to or going through the 2 boxes versus the total number of photon created.

In my stacking action to count the total number of photon created, I use:

{  if(aTrack->GetDefinition()==G4OpticalPhoton::OpticalPhotonDefinition())
    { 
      if(aTrack->GetParentID()>0){
	 scinCounter++;
	  }
    }   
  return true;
}

In my sensitive detector, I tried 3 differents methods to count the number of photon reaching to the edge :

   Number 1: I set 2 boxes to be sensitive detector. I then check whether the photon is entering the volumne or not. If it does, I then record the kinetic energy of the photons. So each photon has 1 energy value. And the number of energy value correspond to the number of photon. After some runs, I check the number of photons detected in sensitive detector vs in stacking actions. The number of photons detected in SD is always bigger than in stacking actions. And it is a huge margin. 

{	if (aStep == 0) return false;
	if (aStep->GetTrack()->GetDynamicParticle()->GetDefinition()==G4OpticalPhoton::OpticalPhotonDefinition())
 {      
        G4StepPoint* preStep=aStep->GetPreStepPoint();

        if(preStep->GetStepStatus()==fGeomBoundary){
  G4TouchableHandle touch1 = preStep->GetTouchableHandle();                 
  photon_e.push_back(aStep->GetTrack()->GetKineticEnergy());        	       
 }
        }

else
	{
 		return false;
	}        
return true;
}

  Number 2: I set the absorber to be sensitive volume. The 2 boxes are just normal volume. I check whether the photons are leaving the absorber or not. It that is the case, get the energy of the photons. But this method give me zero photons leaving the volumne. 
{	if (aStep == 0) return false;
	if (aStep->GetTrack()->GetDynamicParticle()->GetDefinition()==G4OpticalPhoton::OpticalPhotonDefinition())
 {      
        G4StepPoint* postStep=aStep->GetPostStepPoint();
        if(postStep->GetStepStatus()==fGeomBoundary){
        G4TouchableHandle touch1 = postStep->GetTouchableHandle();                 
        photon_e.push_back(aStep->GetTrack()->GetKineticEnergy());        	       
 }
        }

else
	{
 		return false;
	}        
return true;
}

   Number 3: I set 2 boxes to be sensitive volume. I use this:

  if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="abso"&& aStep->GetPostStepPoint()->GetPhysicalVolume()->GetName()=="SDBOX3")

   I also gets zero photons.

I am confused by these results and wonder which one is the correct one.

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 Idea: Re: Detection of optical photon   (Zach Hartwig - 01 Jul, 2013)
 Add Message Add Message
to: "Detection of optical photon"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews