No changes in timing properties after changing the SCINTILLATIONTIMECONSTANT1

Hello everyone
I was simulating a scintillator detector and recording the global time after which the photoelectric effect occurs in the scintillator. It should depend on the decay time, I suppose, so I tried to change the decay time from 36ns to 36 microsecond but nothing was changed. I don’t know why this is so. Is it normal?
Screenshot from 2024-04-05 00-41-51
The plot is attached above and I am getting the same result after increasing the decay time. I have attached the code I have used to define the properties.

G4double LYSORefractionIndex[nEntries] = {1.9,1.9};
	G4double LYSOAbsorptionLength[nEntries] = {1.2*cm,1.2*cm};
	G4MaterialPropertiesTable* LYSOMPT = new G4MaterialPropertiesTable();
	G4double ScintEnergy[nEntries] = {3.26*eV,3.44*eV};
	G4double ScintFast[nEntries] = {1.0,1.0};

below is the code I used for storing the time.

const G4String currentPhysicalName 
    = aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName();

	G4Track* track = aStep->GetTrack();	
	const G4String particleName
	= aStep->GetTrack()->GetDefinition()->GetParticleName();
	if (currentPhysicalName == "Crystal"){
		G4double EdepStep = aStep->GetTotalEnergyDeposit();
		const G4String ProcessName1 = 
		aStep -> GetPostStepPoint() -> GetProcessDefinedStep() -> GetProcessName();
		if (EdepStep > 0.) eventAction->EdepInCrystal = eventAction->EdepInCrystal + EdepStep;
if (ProcessName1 == "phot") eventAction->absTime1 = aStep -> GetPreStepPoint() -> GetGlobalTime();


Kindly let me know what is the issue.

It looks like you are measuring the time to the first photoelectric reaction. But that is not what the decay constant controls. It controls the time decay of emission of the scintillation photons that result from the absorption of ionizing energy. You need to track the optical photons.

Dear @John_McFee
Thank you so much for your response. I understood it. I have one more doubt as you said I am measuring time to the first photoelectric effect. But I want to know the time stamp of every photoelectric effect that has occurred in the crystal. How can I do so?

I think I got it. Instead of passing my values to event action I can track them in stepping action and it would work.

I see one more thing here. I tried to collect the timestamps for single event. I got 1100 values for different time stamps when photoelectric absorption occurs. When I ran my program again, I got those same values numerically. Why those values are not changing when I run the program again?

  1. Yes, tracking photoelectric effect processes in stepping action is what you want to do.

  2. If you rerun the program and do not change the random number generator seed for the next run (i.e., use the default, whatever that is) you will get the same result each time.

1 Like

Thank you so much for your help @John_McFee. It certainly cleared my doubt. Another thing I tried was tracking the local time of optical photons in my crystal. As local time is the time taken from the generation of the particle to a particular event we are tracking, it is also not changing by changing the decay time. Does that mean local time does not account for the time is takes to generate a particle? As only global time is changing in my case.

Global time is a measure of the time since emission of the primary particle in an event. Thus, changing the scintillation decay time constant will affect it. Local time is the time since track creation. For an optical photon that would roughly be the time from its creation to the time at the current point in its track. So it should normally be a rather narrow distribution independent of the decay time constant.

1 Like

Thank you so much for youe help @John_McFee . I will keep these things in mind.

Maybe it’s Cherenkov photon?

Hi @WentaiLuo
It is not the case I guess, because I have deactivated the cherenkov process in my macro file.