Message: Re: Scintillation by protons doesn't work Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: Scintillation by protons doesn't work 

Forum: Processes Involving Optical Photons
Re: Question Scintillation by protons doesn't work (Kyrre Skjerdal)
Re: None Re: Scintillation by protons doesn't work (Daren Sawkey)
Date: 21 Aug, 2018
From: Kyrre Skjerdal <Kyrre Skjerdal>

On Tue, 21 Aug 2018 16:25:53 GMT, Daren Sawkey wrote:
> Hi,
> 
> With a per-particle scintillation yield, the yield Y=Y(E) defined with
> PROTONSCINTILLATIONYIELD etc is the total yield, not differential. When
> a particle changes energy from E1 to E2, the number of optical photons
> produced is Y(E1)-Y(E2). Try:
> 
>  G4double pEnergy[] = {1.0*MeV, 100.0*MeV};
>  G4double pYIELD[] = {14000., 1400000.};
> 
> -- Daren.
> 

Thank you for your reply! At least that error is now sorted out. Unfortunately I still get no optical photons produced from scintillation.

Could there be any other process that I should have turned on in order to get scintillation?

Here is my complete ConstructProcess from my optical physics list:
{
	G4cout << "NovoOpticalPhysics:: Add Optical Physics Processes"
           << G4endl;
	fWLSProcess = new G4OpWLS();

	fScintProcess = new G4Scintillation();
	//fScintProcess->SetScintillationYieldFactor(1.);
	//fScintProcess->SetTrackSecondariesFirst(true);

	fCerenkovProcess = new G4Cerenkov();
	fCerenkovProcess->SetMaxNumPhotonsPerStep(300);
	fCerenkovProcess->SetTrackSecondariesFirst(true);

	fAbsorptionProcess      = new G4OpAbsorption();
	fRayleighScattering     = new G4OpRayleigh();
	fMieHGScatteringProcess = new G4OpMieHG();
	fBoundaryProcess        = new G4OpBoundaryProcess();

	G4ProcessManager* pManager =
                G4OpticalPhoton::OpticalPhoton()->GetProcessManager();

	if (!pManager) {
		std::ostringstream o;
		o << "Optical Photon without a Process Manager";
		G4Exception("WLSOpticalPhysics::ConstructProcess()","",
                  FatalException,o.str().c_str());
	}

	pManager->AddDiscreteProcess(fAbsorptionProcess);

	pManager->AddDiscreteProcess(fRayleighScattering);
	pManager->AddDiscreteProcess(fMieHGScatteringProcess);

	pManager->AddDiscreteProcess(fBoundaryProcess);

	fWLSProcess->UseTimeProfile("delta");
	fWLSProcess->UseTimeProfile("exponential");

	pManager->AddDiscreteProcess(fWLSProcess);

	fScintProcess->SetScintillationYieldFactor(1.);
	fScintProcess->SetScintillationExcitationRatio(0.0);
	fScintProcess->SetTrackSecondariesFirst(true);
	fScintProcess->SetScintillationByParticleType(true);

	// Use Birks Correction in the Scintillation process

	G4EmSaturation* emSaturation = G4LossTableManager::Instance()->EmSaturation();
	fScintProcess->AddSaturation(emSaturation);
	G4String scintstr = "";
	auto particleIterator=GetParticleIterator();
	particleIterator->reset();
	while ( (*particleIterator)() ){

		G4ParticleDefinition* particle = particleIterator->value();
		G4String particleName = particle->GetParticleName();

		pManager = particle->GetProcessManager();
		if (!pManager) {
			std::ostringstream o;
			o << "Particle " << particleName << "without a Process Manager";
			G4Exception("WLSOpticalPhysics::ConstructProcess()","",
                    FatalException,o.str().c_str());
		}	

		if(fCerenkovProcess->IsApplicable(*particle)){
			pManager->AddProcess(fCerenkovProcess);
			pManager->SetProcessOrdering(fCerenkovProcess,idxPostStep);
		}
		if(fScintProcess->IsApplicable(*particle)){
			scintstr += particle->GetParticleName();
			scintstr += " ";
			pManager->AddProcess(fScintProcess);
			pManager->SetProcessOrderingToLast(fScintProcess,idxAtRest);
			pManager->SetProcessOrderingToLast(fScintProcess,idxPostStep);
		}

	}
	G4cout << "Scintillation set for " <<  scintstr << G4endl; 
}

When I run my code I get:

Scintillation set for B+ B- B0 Bc+ Bc- Bs0 D+ D- D0 Ds+ Ds- GenericIon He3 J/psi Upsilon alpha anti_B0 anti_Bs0 anti_D0 anti_He3 anti_alpha anti_deuteron anti_kaon0 anti_lambda anti_lambda_b anti_lambda_c+ anti_neutron anti_nu_e anti_nu_mu anti_nu_tau anti_omega- anti_omega_b- anti_omega_c0 anti_proton anti_sigma+ anti_sigma- anti_sigma0 anti_sigma_b+ anti_sigma_b- anti_sigma_b0 anti_sigma_c+ anti_sigma_c++ anti_sigma_c0 anti_triton anti_xi- anti_xi0 anti_xi_b- anti_xi_b0 anti_xi_c+ anti_xi_c0 chargedgeantino deuteron e+ e- eta eta_prime etac gamma geantino kaon+ kaon- kaon0 kaon0L kaon0S lambda lambda_b lambda_c+ mu+ mu- neutron nu_e nu_mu nu_tau omega- omega_b- omega_c0 pi+ pi- pi0 proton sigma+ sigma- sigma0 sigma_b+ sigma_b- sigma_b0 sigma_c+ sigma_c++ sigma_c0 tau+ tau- triton xi- xi0 xi_b- xi_b0 xi_c+ xi_c0

As you can see it looks like scintillation is turned on for protons. The cerekov effect seems to work, so I find this very strange.

This is how it looks like when I define the optical properties of my detector material:

	G4double scintEnergy[] = { 2.0*eV, 4.85*eV };
	const G4int scintNum = sizeof(scintEnergy)/sizeof(G4double);
	G4double scintRIND[]  = { 1.757 , 1.757 };
	assert(sizeof(scintRIND) == sizeof(scintEnergy));
	G4double scintABSL[]  = { 100.*cm, 100.*cm };
	assert(sizeof(scintABSL) == sizeof(scintEnergy));
	G4double pEnergy[] = {1.0*MeV, 100.0*MeV};
	G4double pYIELD[] = {14000., 1400000.};
	assert(sizeof(pYIELD) == sizeof(pEnergy));
	const G4int pNum = sizeof(pEnergy)/sizeof(G4double);

	fStilbeneMPT = new G4MaterialPropertiesTable();
	fStilbeneMPT->AddProperty("RINDEX", scintEnergy, scintRIND, scintNum);
	fStilbeneMPT->AddProperty("ABSLENGTH", scintEnergy, scintABSL, scintNum);  

	fStilbeneMPT->AddProperty("PROTONSCINTILLATIONYIELD", pEnergy, pYIELD, pNum);  
	fStilbeneMPT->AddProperty("ELECTRONSCINTILLATIONYIELD", pEnergy, pYIELD, pNum);
	fStilbene->SetMaterialPropertiesTable(fStilbeneMPT);

I hope anyone has any suggestions!

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

1 None: Re: Scintillation by protons doesn't work   (Daren Sawkey - 21 Aug, 2018)
(_ Ok: Re: Scintillation by protons doesn't work   (Kyrre Skjerdal - 22 Aug, 2018)
(_ None: Re: Scintillation by protons doesn't work   (Daren Sawkey - 22 Aug, 2018)
(_ Ok: Re: Scintillation by protons doesn't work   (Kyrre Skjerdal - 23 Aug, 2018)
 Add Message Add Message
to: "Re: Scintillation by protons doesn't work"

 Subscribe Subscribe

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