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

In This Package:

DsPhysConsIon Class Reference

Ion physics. More...

#include <DsPhysConsIon.h>

Inheritance diagram for DsPhysConsIon:

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

Public Types

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
enum  Status
enum  Status
enum  Status

Public Member Functions

 DsPhysConsIon (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~DsPhysConsIon ()
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_minEnergyBinaryCascadeLN
 MinEnergyBinaryCascadeLN: Minimum energy for binary cascade of light nuclei.
double m_maxEnergyBinaryCascadeLN
 MaxEnergyBinaryCascadeLN: Maximum energy for binary cascade of light nuclei.
double m_minEnergyBinaryCascadeGenHe3
 MinEnergyBinaryCascadeGenHe3: Minimum energy for binary cascade of generic ion and He3.
double m_maxEnergyBinaryCascadeGenHe3
 MaxEnergyBinaryCascadeGenHe3: Maximum energy for binary cascade of generic ion and He3.
double m_maxEnergyInelastic
 MaxEnergyInelastic: Maximum energy for inelastic processes.

Detailed Description

Ion physics.

bv@bnl.gov Wed Apr 16 12:11:32 2008

Definition at line 21 of file DsPhysConsIon.h.


Constructor & Destructor Documentation

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

Definition at line 26 of file DsPhysConsIon.cc.

00029     : GiGaPhysConstructorBase(type,name,parent)
00030 {
00031     declareProperty("MinEnergyBinaryCascadeLN",m_minEnergyBinaryCascadeLN=80*MeV,
00032                     "Minimum energy for binary cascade of light nuclei");
00033     declareProperty("MaxEnergyBinaryCascadeLN",m_maxEnergyBinaryCascadeLN=40*GeV,
00034                     "Maximum energy for binary cascade of light nuclei");
00035     declareProperty("MinEnergyBinaryCascadeGenHe3",m_minEnergyBinaryCascadeGenHe3=0*MeV,
00036                     "Minimum energy for binary cascade of generic ion and He3");
00037     declareProperty("MaxEnergyBinaryCascadeGenHe3",m_maxEnergyBinaryCascadeGenHe3=30*GeV,
00038                     "Maximum energy for binary cascade of generic ion and He3");
00039     declareProperty("MaxEnergyInelastic",m_maxEnergyInelastic=100*MeV,
00040                     "Maximum energy for inelastic processes");
00041 
00042 }

DsPhysConsIon::~DsPhysConsIon (  )  [virtual]

Definition at line 44 of file DsPhysConsIon.cc.

00045 {
00046 }


Member Function Documentation

void DsPhysConsIon::ConstructParticle (  ) 

Definition at line 49 of file DsPhysConsIon.cc.

00050 {
00051 }

void DsPhysConsIon::ConstructProcess (  ) 

Definition at line 53 of file DsPhysConsIon.cc.

00054 {
00055     G4ProcessManager* pmanager = 0;
00056     // Elastic Process
00057     G4HadronElasticProcess* theElasticProcess = new G4HadronElasticProcess();
00058     G4LElastic* theElasticModel = new G4LElastic();
00059     theElasticProcess->RegisterMe(theElasticModel);
00060   
00061     // Generic Ion
00062     pmanager = G4GenericIon::GenericIon()->GetProcessManager();
00063     // add process
00064     pmanager->AddDiscreteProcess(theElasticProcess);
00065 
00066     // preparing inelastic reactions for light nuclei 
00067     G4BinaryLightIonReaction* theIonCascade;
00068     G4BinaryLightIonReaction* theGenIonCascade;
00069 
00070     // binary cascade for light nuclei
00071     // NOTE: Shen XS only up to 10 GeV/n;
00072     theIonCascade= new G4BinaryLightIonReaction;
00073     //theIonCascade->SetMinEnergy(80*MeV);
00074     theIonCascade->SetMinEnergy(m_minEnergyBinaryCascadeLN);
00075     //theIonCascade->SetMaxEnergy(40*GeV);
00076     theIonCascade->SetMaxEnergy(m_maxEnergyBinaryCascadeLN);
00077 
00078     // Generic Ion and He3
00079     // NOTE: Shen XS only up to 10 GeV/n;
00080     theGenIonCascade = new G4BinaryLightIonReaction;
00081     //theGenIonCascade->SetMinEnergy(0*MeV);
00082     theGenIonCascade->SetMinEnergy(m_minEnergyBinaryCascadeGenHe3);
00083     //theGenIonCascade->SetMaxEnergy(30*GeV);
00084     theGenIonCascade->SetMaxEnergy(m_maxEnergyBinaryCascadeGenHe3);
00085 
00086     // Cross sections
00087     G4TripathiCrossSection* theTripathiCrossSection;
00088     G4IonsShenCrossSection* theShenCrossSection;
00089     theTripathiCrossSection = new G4TripathiCrossSection;
00090     theShenCrossSection = new G4IonsShenCrossSection;
00091 
00092 
00093     theParticleIterator->reset();
00094     while( (*theParticleIterator)() ) {
00095         G4ParticleDefinition* particle = theParticleIterator->value();
00096         G4ProcessManager* pmanager = particle->GetProcessManager();
00097         G4String particleName = particle->GetParticleName();
00098 
00099         if(particleName == "deuteron") {
00100             pmanager->AddDiscreteProcess(theElasticProcess);
00101 
00102             G4DeuteronInelasticProcess* theDeuteronInelasticProcess;
00103             theDeuteronInelasticProcess = new G4DeuteronInelasticProcess;   
00104       
00105             G4LEDeuteronInelastic* theLEDeuteronInelasticModel;
00106             theLEDeuteronInelasticModel = new G4LEDeuteronInelastic();
00107             //theLEDeuteronInelasticModel->SetMaxEnergy(100*MeV);
00108             theLEDeuteronInelasticModel->SetMaxEnergy(m_maxEnergyInelastic);
00109 
00110             theDeuteronInelasticProcess->AddDataSet(theTripathiCrossSection);
00111             theDeuteronInelasticProcess->AddDataSet(theShenCrossSection);
00112             theDeuteronInelasticProcess->RegisterMe(theLEDeuteronInelasticModel);
00113             theDeuteronInelasticProcess->RegisterMe(theIonCascade);
00114             pmanager->AddDiscreteProcess(theDeuteronInelasticProcess);
00115         }
00116         else if (particleName == "triton") {
00117             pmanager->AddDiscreteProcess(theElasticProcess);
00118 
00119             G4TritonInelasticProcess* theTritonInelasticProcess;
00120             theTritonInelasticProcess = new G4TritonInelasticProcess; 
00121       
00122             G4LETritonInelastic* theLETritonInelasticModel;
00123             theLETritonInelasticModel = new G4LETritonInelastic();
00124             //theLETritonInelasticModel->SetMaxEnergy(100*MeV);
00125             theLETritonInelasticModel->SetMaxEnergy(m_maxEnergyInelastic);
00126 
00127             theTritonInelasticProcess->AddDataSet(theTripathiCrossSection);
00128             theTritonInelasticProcess->AddDataSet(theShenCrossSection);
00129             theTritonInelasticProcess->RegisterMe(theLETritonInelasticModel);
00130             theTritonInelasticProcess->RegisterMe(theIonCascade);
00131             pmanager->AddDiscreteProcess(theTritonInelasticProcess);
00132         }
00133         else if (particleName == "alpha") {
00134             pmanager->AddDiscreteProcess(theElasticProcess);
00135 
00136             G4AlphaInelasticProcess* theAlphaInelasticProcess;
00137             theAlphaInelasticProcess = new G4AlphaInelasticProcess;
00138 
00139             G4LEAlphaInelastic* theLEAlphaInelasticModel;
00140             theLEAlphaInelasticModel = new G4LEAlphaInelastic();
00141             //theLEAlphaInelasticModel->SetMaxEnergy(100*MeV);
00142             theLEAlphaInelasticModel->SetMaxEnergy(m_maxEnergyInelastic);
00143 
00144             theAlphaInelasticProcess->AddDataSet(theTripathiCrossSection);
00145             theAlphaInelasticProcess->AddDataSet(theShenCrossSection);
00146             theAlphaInelasticProcess->RegisterMe(theLEAlphaInelasticModel);
00147             theAlphaInelasticProcess->RegisterMe(theIonCascade);
00148             pmanager->AddDiscreteProcess(theAlphaInelasticProcess);
00149         }
00150         else if (particleName == "He3") {
00151             pmanager->AddDiscreteProcess(theElasticProcess);
00152 
00153             G4HadronInelasticProcess* theHe3InelasticProcess;
00154             theHe3InelasticProcess = new G4HadronInelasticProcess("He3Inelastic", G4He3::He3());
00155       
00156             theHe3InelasticProcess->AddDataSet(theTripathiCrossSection);
00157             theHe3InelasticProcess->AddDataSet(theShenCrossSection);
00158             theHe3InelasticProcess->RegisterMe(theGenIonCascade);
00159             pmanager->AddDiscreteProcess(theHe3InelasticProcess);
00160         }
00161 
00162         else if (particleName == "GenericIon") {
00163             pmanager->AddDiscreteProcess(theElasticProcess);
00164 
00165             G4HadronInelasticProcess* theGenericIonInelasticProcess;
00166             theGenericIonInelasticProcess = new G4HadronInelasticProcess
00167                 ("IonInelastic", G4GenericIon::GenericIon());
00168 
00169             theGenericIonInelasticProcess->AddDataSet(theTripathiCrossSection);
00170             theGenericIonInelasticProcess->AddDataSet(theShenCrossSection);
00171             theGenericIonInelasticProcess->RegisterMe(theGenIonCascade);
00172             pmanager->AddDiscreteProcess(theGenericIonInelasticProcess);
00173         }
00174     }
00175 }


Member Data Documentation

double DsPhysConsIon::m_minEnergyBinaryCascadeLN [private]

MinEnergyBinaryCascadeLN: Minimum energy for binary cascade of light nuclei.

Definition at line 39 of file DsPhysConsIon.h.

double DsPhysConsIon::m_maxEnergyBinaryCascadeLN [private]

MaxEnergyBinaryCascadeLN: Maximum energy for binary cascade of light nuclei.

Definition at line 43 of file DsPhysConsIon.h.

double DsPhysConsIon::m_minEnergyBinaryCascadeGenHe3 [private]

MinEnergyBinaryCascadeGenHe3: Minimum energy for binary cascade of generic ion and He3.

Definition at line 47 of file DsPhysConsIon.h.

double DsPhysConsIon::m_maxEnergyBinaryCascadeGenHe3 [private]

MaxEnergyBinaryCascadeGenHe3: Maximum energy for binary cascade of generic ion and He3.

Definition at line 51 of file DsPhysConsIon.h.

double DsPhysConsIon::m_maxEnergyInelastic [private]

MaxEnergyInelastic: Maximum energy for inelastic processes.

Definition at line 54 of file DsPhysConsIon.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