/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

Public Member Functions | Private Attributes
DsPhysConsEM Class Reference

ElectroMagentism physics. More...

#include <DsPhysConsEM.h>

List of all members.

Public Member Functions

 DsPhysConsEM (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~DsPhysConsEM ()
void ConstructParticle ()
void ConstructProcess ()

Private Attributes

double m_fluorCut
 FluorCut : cut for fluorescence from photons, electrons and bremsstrahlung photons:

Detailed Description

ElectroMagentism physics.

Taken from G4dyb

bv@bnl.gov Wed Apr 16 10:05:53 2008

Definition at line 21 of file DsPhysConsEM.h.


Constructor & Destructor Documentation

DsPhysConsEM::DsPhysConsEM ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 32 of file DsPhysConsEM.cc.

    : GiGaPhysConstructorBase(type,name,parent)
{
    declareProperty("FluorCut",m_fluorCut=250*eV,
                    "Cut for fluorescence from photons, "
                    "electrons and bremsstrahlung photons");
}
DsPhysConsEM::~DsPhysConsEM ( ) [virtual]

Definition at line 41 of file DsPhysConsEM.cc.

{
}

Member Function Documentation

void DsPhysConsEM::ConstructParticle ( )

Definition at line 46 of file DsPhysConsEM.cc.

{
}
void DsPhysConsEM::ConstructProcess ( )

Definition at line 50 of file DsPhysConsEM.cc.

{
    G4LowEnergyPhotoElectric* lowePhot = new G4LowEnergyPhotoElectric();
    G4LowEnergyIonisation* loweIon  = new G4LowEnergyIonisation();
    G4LowEnergyBremsstrahlung* loweBrem = new G4LowEnergyBremsstrahlung();

    // note LowEIon uses proton as basis for its data-base, therefore
    // cannot specify different LowEnergyIonisation models for different
    // particles, but can change model globally for Ion, Alpha and Proton.
   
    //fluorescence apply specific cut for fluorescence from photons, electrons
    //and bremsstrahlung photons:
    lowePhot->SetCutForLowEnSecPhotons(m_fluorCut);
    loweIon->SetCutForLowEnSecPhotons(m_fluorCut);
    loweBrem->SetCutForLowEnSecPhotons(m_fluorCut);
  
    theParticleIterator->reset();
    while((*theParticleIterator)()) {
        G4ParticleDefinition* particle = theParticleIterator->value();
        G4ProcessManager* pmanager = particle->GetProcessManager();
        G4String particleName = particle->GetParticleName();
        if(particleName =="gamma") {  
            // gamma    
            pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh());
            pmanager->AddDiscreteProcess(lowePhot);
            pmanager->AddDiscreteProcess(new G4LowEnergyCompton());
            pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion());
        }
        else if(particleName=="e-") { 
            // electron
            // process ordering: AddProcess(name, at rest, along step, post step)
            // -1 = not implemented, then ordering          
            pmanager->AddProcess(new G4MultipleScattering(),-1, 1, 1);
            pmanager->AddProcess(loweIon,                   -1, 2, 2);
            pmanager->AddProcess(loweBrem,                  -1, -1, 3);
        }
        else if(particleName=="e+") {
            // positron
            pmanager->AddProcess(new G4MultipleScattering(),-1,1,1);
            pmanager->AddProcess(new G4eIonisation(),       -1,2,2);
            pmanager->AddProcess(new G4eBremsstrahlung(),   -1,-1,3);
            pmanager->AddProcess(new G4eplusAnnihilation(),  0,-1,4);
        }       
        else if(particleName == "mu+" ||particleName == "mu-") {
            // muon
            // LOGINFO(dyb)<<"Construct processes for muon"<<G4endl;
            pmanager->AddProcess(new G4MultipleScattering(),-1, 1, 1);
            pmanager->AddProcess(new G4MuIonisation(),      -1, 2, 2);
            pmanager->AddProcess(new G4MuBremsstrahlung(),  -1, 3, 3);
            pmanager->AddProcess(new G4MuPairProduction(),  -1, 4, 4);
                  
            if( particleName == "mu-" )
                pmanager->AddProcess(new G4MuonMinusCaptureAtRest(), 0,-1,-1);
        } 
        else if ( !(particle->IsShortLived())&&
                  (particle->GetPDGCharge() != 0.0) &&
                  (particle->GetParticleName() != "chargedgeantino")) {
            // all other charged particles except geantino
            G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
            G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation();
            pmanager->AddProcess(aMultipleScattering,-1,1,1);
            pmanager->AddProcess(ahadronLowEIon,-1,2,2);
            //fluorescence switch off for hadrons :
            ahadronLowEIon->SetFluorescence(false);
        }
    }
}

Member Data Documentation

double DsPhysConsEM::m_fluorCut [private]

FluorCut : cut for fluorescence from photons, electrons and bremsstrahlung photons:

Definition at line 39 of file DsPhysConsEM.h.


The documentation for this class was generated from the following files:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 10:17:58 for DetSim by doxygen 1.7.4