Message: Scintillation yield depending on the particle type Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Scintillation yield depending on the particle type 

Forum: Processes Involving Optical Photons
Date: 27 Feb, 2013
From: Itamar <Itamar>

Hello,

In my simulation the scintillation yield of the scintillator supposed to be depended on the particle type. I am trying to defined different scintillation processes for them using the ScintillationYieldFactor, as explained in example 5.6 of the user's guide.

The code compiled and runs ok but it seems that it uses the same scintillation yield for all of the scintillation process and does not use the ScintillationYieldFactors I specified in the PhysicsList.

Is it because I am using geant4.9.3, and not geant4.9.4 ?

I attach here the relevant parts from the PhysicsList.

Thank you very much,

Itamar

..

void LXe_He_TANK1_Neutron1PhysicsList::ConstructOp()

{

// default scintillation process

G4Scintillation* theScintProcessDef = new G4Scintillation("Scintillation");

// theScintProcessDef->DumpPhysicsTable();

theScintProcessDef->SetTrackSecondariesFirst(true);

theScintProcessDef->SetScintillationYieldFactor(1.0); //

theScintProcessDef->SetScintillationExcitationRatio(0.0); //

theScintProcessDef->SetVerboseLevel(OpVerbLevel);

// scintillation process for alpha:

G4Scintillation* theScintProcessAlpha = new G4Scintillation("Scintillation");

// theScintProcessNuc->DumpPhysicsTable();

theScintProcessAlpha->SetTrackSecondariesFirst(true);

theScintProcessAlpha->SetScintillationYieldFactor(1.1);

theScintProcessAlpha->SetScintillationExcitationRatio(1.0);

theScintProcessAlpha->SetVerboseLevel(OpVerbLevel);

// scintillation process for proton:

G4Scintillation* theScintProcessProton = new G4Scintillation("Scintillation");

// theScintProcessNuc->DumpPhysicsTable();

theScintProcessProton->SetTrackSecondariesFirst(true);

theScintProcessProton->SetScintillationYieldFactor(2.0);

theScintProcessProton->SetScintillationExcitationRatio1.0);

theScintProcessProton->SetVerboseLevel(OpVerbLevel);

// scintillation process for neutron:

G4Scintillation* theScintProcessNeutron = new G4Scintillation("Scintillation");

// theScintProcessNuc->DumpPhysicsTable();

theScintProcessNeutron->SetTrackSecondariesFirst(true);

theScintProcessNeutron->SetScintillationYieldFactor(1.0);

theScintProcessNeutron->SetScintillationExcitationRatio(1.0);

theScintProcessNeutron->SetVerboseLevel(OpVerbLevel);

// scintillation process for heavy nuclei

G4Scintillation* theScintProcessNuc = new G4Scintillation("Scintillation");

// theScintProcessNuc->DumpPhysicsTable();

theScintProcessNuc->SetTrackSecondariesFirst(true);

theScintProcessNuc->SetScintillationYieldFactor(0.2);

theScintProcessNuc->SetScintillationExcitationRatio(1.0);

theScintProcessNuc->SetVerboseLevel(OpVerbLevel);

.

theParticleIterator->reset();

while( (*theParticleIterator)() )

{

G4ParticleDefinition* particle = theParticleIterator->value();

G4ProcessManager* pmanager = particle->GetProcessManager();

G4String particleName = particle->GetParticleName();

if (theScintProcessDef->IsApplicable(*particle))

{

if(particle->GetParticleName() == "GenericIon")

{

pmanager->AddProcess(theScintProcessNuc); // AtRestDiscrete

pmanager->SetProcessOrderingToLast(theScintProcessNuc,idxAtRest);

pmanager->SetProcessOrderingToLast(theScintProcessNuc,idxPostStep);

}

else if(particle->GetParticleName() == "alpha")

{

pmanager->AddProcess(theScintProcessAlpha);

pmanager->SetProcessOrderingToLast(theScintProcessAlpha,idxAtRest);

pmanager->SetProcessOrderingToLast(theScintProcessAlpha,idxPostStep);

}

else if(particle->GetParticleName() == "proton")

{

pmanager->AddProcess(theScintProcessProton);

pmanager->SetProcessOrderingToLast(theScintProcessProton,idxAtRest);

pmanager->SetProcessOrderingToLast(theScintProcessProton,idxPostStep);

}

else if(particle->GetParticleName() == "neutron")

{

pmanager->AddProcess(theScintProcessNeutron);

pmanager->SetProcessOrderingToLast(theScintProcessNeutron,idxAtRest);

pmanager->SetProcessOrderingToLast(theScintProcessNeutron,idxPostStep);

}

else

{

pmanager->AddProcess(theScintProcessDef);

pmanager->SetProcessOrderingToLast(theScintProcessDef,idxAtRest);

pmanager->SetProcessOrderingToLast(theScintProcessDef,idxPostStep);

}

 Add Message Add Message
to: "Scintillation yield depending on the particle type"

 Subscribe Subscribe

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