| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

DsPhysConsEM Class Reference

ElectroMagentism physics. More...

#include <DsPhysConsEM.h>

Inheritance diagram for DsPhysConsEM:

[legend]
Collaboration diagram for DsPhysConsEM:
[legend]
List of all members.

Public Types

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
enum  Status
enum  Status
enum  Status

Public Member Functions

 DsPhysConsEM (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~DsPhysConsEM ()
void ConstructParticle ()
void ConstructProcess ()
virtual StatusCode initialize ()
virtual StatusCode finalize ()
virtual G4VPhysicsConstructor * physicsConstructor () const
virtual unsigned long release ()
StatusCode release (const IInterface *interface) const
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvInterface)=0
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvInterface)=0
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvInterface)=0
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvUnknown)
virtual unsigned long addRef ()=0
virtual unsigned long addRef ()=0
virtual unsigned long addRef ()=0
virtual unsigned long addRef ()
virtual const std::string & type () const =0
virtual const std::string & type () const
virtual const IInterfaceparent () const =0
virtual const IInterfaceparent () const
virtual StatusCode configure ()=0
virtual StatusCode configure ()
virtual StatusCode start ()=0
virtual StatusCode start ()
virtual StatusCode stop ()=0
virtual StatusCode stop ()
virtual StatusCode terminate ()=0
virtual StatusCode terminate ()
virtual StatusCode reinitialize ()=0
virtual StatusCode reinitialize ()
virtual StatusCode restart ()=0
virtual StatusCode restart ()
virtual Gaudi::StateMachine::State FSMState () const =0
virtual Gaudi::StateMachine::State FSMState () const
virtual StatusCode sysInitialize ()=0
virtual StatusCode sysInitialize ()
virtual StatusCode sysStart ()=0
virtual StatusCode sysStart ()
virtual StatusCode sysStop ()=0
virtual StatusCode sysStop ()
virtual StatusCode sysFinalize ()=0
virtual StatusCode sysFinalize ()
virtual StatusCode sysReinitialize ()=0
virtual StatusCode sysReinitialize ()
virtual StatusCode sysRestart ()=0
virtual StatusCode sysRestart ()
virtual unsigned long refCount () const =0
virtual const std::string & name () const =0
virtual const std::string & name () const
virtual void handle (const Incident &i)
IGiGaSvcgigaSvc () const
IGiGaSetUpSvcsetupSvc () const
INTupleSvcntupleSvc () const
INTupleSvcevtColSvc () const
IDataProviderSvcdetSvc () const
IDataProviderSvcevtSvc () const
IIncidentSvcincSvc () const
IChronoStatSvcchronoSvc () const
IHistogramSvchistoSvc () const
IAlgContextSvccontextSvc () const
DataObjectput (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
DataObjectput (DataObject *object, const std::string &address, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (const std::string &location, const bool useRootInTES=true) const
TYPE * getDet (IDataProviderSvc *svc, const std::string &location) const
TYPE * getDet (const std::string &location) const
bool exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
bool exist (const std::string &location, const bool useRootInTES=true) const
bool existDet (IDataProviderSvc *svc, const std::string &location) const
bool existDet (const std::string &location) const
TYPE * getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
TYPE * getOrCreate (const std::string &location, const bool useRootInTES=true) const
TOOL * tool (const std::string &type, const std::string &name, const IInterface *parent=0, bool create=true) const
TOOL * tool (const std::string &type, const IInterface *parent=0, bool create=true) const
SERVICE * svc (const std::string &name, const bool create=true) const
IUpdateManagerSvcupdMgrSvc () const
IDataProviderSvcfastContainersSvc () const
StatusCode Error (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Warning (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Print (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const MSG::Level lev=MSG::INFO) const
StatusCode Assert (const bool ok, const std::string &message="", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Assert (const bool ok, const char *message, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const GaudiException &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const std::exception &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg="no message", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
MsgStreammsgStream (const MSG::Level level) const
MsgStreamalways () const
MsgStreamfatal () const
MsgStreamerr () const
MsgStreamerror () const
MsgStreamwarning () const
MsgStreaminfo () const
MsgStreamdebug () const
MsgStreamverbose () const
MsgStreammsg () const
const Statisticscounters () const
StatEntitycounter (const std::string &tag) const
MSG::Level msgLevel () const
bool msgLevel (const MSG::Level level) const
void resetMsgStream () const
bool typePrint () const
bool propsPrint () const
bool statPrint () const
bool errorsPrint () const
long printStat (const MSG::Level level=MSG::ALWAYS) const
long printErrors (const MSG::Level level=MSG::ALWAYS) const
long printProps (const MSG::Level level=MSG::ALWAYS) const
void registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (const std::string &condition, CondType *&condPtrDest, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL)
StatusCode runUpdate ()
TransientFastContainer< T > * getFastContainer (const std::string &location, typename TransientFastContainer< T >::size_type initial=0)
const std::string & context () const
const std::string & rootInTES () const
double globalTimeOffset () const
virtual Gaudi::StateMachine::State targetFSMState () const
virtual StatusCode setProperty (const Property &p)
virtual StatusCode setProperty (const std::string &s)
virtual StatusCode setProperty (const std::string &n, const std::string &v)
StatusCode setProperty (const std::string &name, const TYPE &value)
virtual StatusCode getProperty (Property *p) const
virtual const PropertygetProperty (const std::string &name) const
virtual StatusCode getProperty (const std::string &n, std::string &v) const
virtual const std::vector<
Property * > & 
getProperties () const
PropertyMgrgetPropertyMgr ()
ISvcLocatorserviceLocator () const
ISvcLocatorsvcLoc () const
IMessageSvcmsgSvc () const
IToolSvctoolSvc () const
StatusCode setProperties ()
StatusCode service (const std::string &name, T *&svc, bool createIf=true) const
StatusCode service (const std::string &type, const std::string &name, T *&svc) const
void declInterface (const InterfaceID &, void *)
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
IAuditorSvcauditorSvc () const
IMonitorSvcmonitorSvc () const
void declareInfo (const std::string &name, const T &var, const std::string &desc) const
void declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const

Static Public Member Functions

static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Protected Types

typedef std::map< std::string,
StatEntity
Statistics
typedef std::map< std::string,
unsigned int > 
Counter
typedef std::vector< IAlgTool * > AlgTools
typedef std::pair< IInterface *,
std::string > 
ServiceEntry
typedef std::vector< ServiceEntryServices

Protected Member Functions

virtual unsigned long refCount () const
StatusCode releaseTool (const IAlgTool *tool) const
StatusCode releaseSvc (const IInterface *svc) const
int outputLevel () const
IntegerPropertyoutputLevelProperty ()
void initOutputLevel (Property &prop)

Static Protected Attributes

static const bool IgnoreRootInTES
static const bool UseRootInTES

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.

00035     : GiGaPhysConstructorBase(type,name,parent)
00036 {
00037     declareProperty("FluorCut",m_fluorCut=250*eV,
00038                     "Cut for fluorescence from photons, "
00039                     "electrons and bremsstrahlung photons");
00040 }

DsPhysConsEM::~DsPhysConsEM (  )  [virtual]

Definition at line 41 of file DsPhysConsEM.cc.

00042 {
00043 }


Member Function Documentation

void DsPhysConsEM::ConstructParticle (  ) 

Definition at line 46 of file DsPhysConsEM.cc.

00047 {
00048 }

void DsPhysConsEM::ConstructProcess (  ) 

Definition at line 50 of file DsPhysConsEM.cc.

00051 {
00052     G4LowEnergyPhotoElectric* lowePhot = new G4LowEnergyPhotoElectric();
00053     G4LowEnergyIonisation* loweIon  = new G4LowEnergyIonisation();
00054     G4LowEnergyBremsstrahlung* loweBrem = new G4LowEnergyBremsstrahlung();
00055 
00056     // note LowEIon uses proton as basis for its data-base, therefore
00057     // cannot specify different LowEnergyIonisation models for different
00058     // particles, but can change model globally for Ion, Alpha and Proton.
00059    
00060     //fluorescence apply specific cut for fluorescence from photons, electrons
00061     //and bremsstrahlung photons:
00062     lowePhot->SetCutForLowEnSecPhotons(m_fluorCut);
00063     loweIon->SetCutForLowEnSecPhotons(m_fluorCut);
00064     loweBrem->SetCutForLowEnSecPhotons(m_fluorCut);
00065   
00066     theParticleIterator->reset();
00067     while((*theParticleIterator)()) {
00068         G4ParticleDefinition* particle = theParticleIterator->value();
00069         G4ProcessManager* pmanager = particle->GetProcessManager();
00070         G4String particleName = particle->GetParticleName();
00071         if(particleName =="gamma") {  
00072             // gamma    
00073             pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh());
00074             pmanager->AddDiscreteProcess(lowePhot);
00075             pmanager->AddDiscreteProcess(new G4LowEnergyCompton());
00076             pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion());
00077         }
00078         else if(particleName=="e-") { 
00079             // electron
00080             // process ordering: AddProcess(name, at rest, along step, post step)
00081             // -1 = not implemented, then ordering          
00082             pmanager->AddProcess(new G4MultipleScattering(),-1, 1, 1);
00083             pmanager->AddProcess(loweIon,                   -1, 2, 2);
00084             pmanager->AddProcess(loweBrem,                  -1, -1, 3);
00085         }
00086         else if(particleName=="e+") {
00087             // positron
00088             pmanager->AddProcess(new G4MultipleScattering(),-1,1,1);
00089             pmanager->AddProcess(new G4eIonisation(),       -1,2,2);
00090             pmanager->AddProcess(new G4eBremsstrahlung(),   -1,-1,3);
00091             pmanager->AddProcess(new G4eplusAnnihilation(),  0,-1,4);
00092         }       
00093         else if(particleName == "mu+" ||particleName == "mu-") {
00094             // muon
00095             // LOGINFO(dyb)<<"Construct processes for muon"<<G4endl;
00096             pmanager->AddProcess(new G4MultipleScattering(),-1, 1, 1);
00097             pmanager->AddProcess(new G4MuIonisation(),      -1, 2, 2);
00098             pmanager->AddProcess(new G4MuBremsstrahlung(),  -1, 3, 3);
00099             pmanager->AddProcess(new G4MuPairProduction(),  -1, 4, 4);
00100                   
00101             if( particleName == "mu-" )
00102                 pmanager->AddProcess(new G4MuonMinusCaptureAtRest(), 0,-1,-1);
00103         } 
00104         else if ( !(particle->IsShortLived())&&
00105                   (particle->GetPDGCharge() != 0.0) &&
00106                   (particle->GetParticleName() != "chargedgeantino")) {
00107             // all other charged particles except geantino
00108             G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
00109             G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation();
00110             pmanager->AddProcess(aMultipleScattering,-1,1,1);
00111             pmanager->AddProcess(ahadronLowEIon,-1,2,2);
00112             //fluorescence switch off for hadrons :
00113             ahadronLowEIon->SetFluorescence(false);
00114         }
00115     }
00116 }


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 Mon Apr 11 20:53:28 2011 for DetSim by doxygen 1.4.7