slic/include
diff -u -r1.3 -r1.4
--- LCExtendedParticles.hh 18 Aug 2009 23:14:32 -0000 1.3
+++ LCExtendedParticles.hh 16 Dec 2009 00:11:47 -0000 1.4
@@ -26,7 +26,6 @@
private:
- //LCExtendedDecay m_decay;
G4Decay m_decay;
G4hIonisation m_ionise;
G4hMultipleScattering m_scatter;
slic/include
diff -u -r1.2 -r1.3
--- LCSUSYPhysics.hh 4 Aug 2009 22:50:41 -0000 1.2
+++ LCSUSYPhysics.hh 16 Dec 2009 00:11:47 -0000 1.3
@@ -8,6 +8,8 @@
// geant4
#include "G4VPhysicsConstructor.hh"
#include "G4ProcessManager.hh"
+#include "G4hIonisation.hh"
+#include "G4hMultipleScattering.hh"
namespace slic
{
@@ -25,7 +27,9 @@
private:
+ G4hMultipleScattering m_scatter;
LCSUSYDecay m_decay;
+ G4hIonisation m_ionise;
};
}
slic/src
diff -u -r1.5 -r1.6
--- LCSUSYPhysics.cc 8 Dec 2009 01:06:13 -0000 1.5
+++ LCSUSYPhysics.cc 16 Dec 2009 00:11:47 -0000 1.6
@@ -62,13 +62,23 @@
void LCSUSYPhysics::ConstructProcess()
{
theParticleIterator->reset();
- while( (*theParticleIterator)() )
+ while( ( *theParticleIterator ) () )
{
G4ParticleDefinition* pdef = theParticleIterator->value();
G4ProcessManager* pmgr = pdef->GetProcessManager();
if ( m_decay.IsApplicable( *pdef ) )
{
- pmgr->AddProcess( &m_decay, -1, -1, 1 );
+ if ( pdef->GetPDGCharge() != 0 )
+ {
+ pmgr->AddProcess( &m_scatter, -1, 1, 1 ); // multiple scattering
+ pmgr->AddProcess( &m_ionise, -1, 2, 2 ); // ionisation
+ pmgr->AddProcess( &m_decay, -1, -1, 3 ); // decay
+ }
+ else
+ {
+ pmgr->AddProcess( &m_scatter, -1, 1, 1 ); // multiple scattering
+ pmgr->AddProcess( &m_decay, -1, -1, 2 ); // decay
+ }
}
}
}
slic/src
diff -u -r1.4 -r1.5
--- LCExtendedParticles.cc 8 Dec 2009 01:06:13 -0000 1.4
+++ LCExtendedParticles.cc 16 Dec 2009 00:11:47 -0000 1.5
@@ -67,22 +67,23 @@
void LCExtendedParticles::ConstructProcess()
{
theParticleIterator->reset();
- while( (*theParticleIterator)() )
+ while( ( *theParticleIterator ) () )
{
G4ParticleDefinition* pdef = theParticleIterator->value();
G4ProcessManager* pmgr = pdef->GetProcessManager();
if ( pdef->GetParticleType() == "extended" || pdef->GetParticleType() == "susy" )
{
if (pdef->GetPDGCharge() != 0)
+ {
+ pmgr->AddProcess( &m_scatter, -1, 1, 1 ); // multiple scattering
+ pmgr->AddProcess( &m_ionise, -1, 2, 2 ); // ionisation
+ pmgr->AddProcess( &m_decay, -1, -1, 3 ); // decay
+ }
+ else
{
- // Don't think we want MS on unknown particles for now!
- // pmgr->AddProcess( &m_scatter, -1, 1, 1); // multiple scattering (must go first)
- pmgr->AddProcess( &m_ionise, -1, 1, 1 ); // ionisation
+ pmgr->AddProcess( &m_scatter, -1, 1, 1 ); // multiple scattering
pmgr->AddProcess( &m_decay, -1, -1, 2 ); // decay
}
- else {
- pmgr->AddProcess( &m_decay, -1, -1, 1 ); // decay
- }
}
}
}