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?
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();
LYSOMPT->AddProperty("RINDEX",PhotonEnergy,LYSORefractionIndex,
nEntries);
LYSOMPT->AddProperty("ABSLENGTH",PhotonEnergy,LYSOAbsorptionLength,
nEntries);
G4double ScintEnergy[nEntries] = {3.26*eV,3.44*eV};
G4double ScintFast[nEntries] = {1.0,1.0};
LYSOMPT->AddProperty("SCINTILLATIONCOMPONENT1",ScintEnergy,ScintFast,nEntries);
LYSOMPT->AddConstProperty("SCINTILLATIONYIELD",33./keV);
LYSOMPT->AddConstProperty("RESOLUTIONSCALE",1.);
LYSOMPT->AddConstProperty("SCINTILLATIONTIMECONSTANT1",36.*ns);
LYSOMPT->AddConstProperty("SCINTILLATIONTIMECONSTANT2",64.*ns);
LYSOMPT->AddConstProperty("SCINTILLATIONYIELD1",1.);
crystalMaterial->SetMaterialPropertiesTable(LYSOMPT);
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.